评论

收藏

[C++] c语言学习记录4

编程语言 编程语言 发布于:2021-12-13 23:12 | 阅读数:648 | 评论:0

strlen函数与sizeof操作符
1.strlen函数是用来计算字符串长度的大小(只针对字符串)
strlen函数c标准文档:​ DSC0000.png
看不懂英文介绍没关系
DSC0001.png
我们知道c字符串会自动在字符串末尾添加‘\0’用来标志字符串的结尾('\0'字符大ASCII是0,因此把‘\0’该为‘0’也是一样的),而字符串结束标志‘\0’是不进行计算,例如:‘abcdef’,实际上是‘abcdef\0’。当然我们也可自己加‘\0’,例如:
#include <stdio.h>int main(){  char p[30] = "abcdef\0abc";//'\0'算一个字符  int len = strlen(p);//让我们求一下p长度  printf("%d", len);  return 0;}
显然len值为6 DSC0002.png
来让我们看看如下代码运行结果
int main(){  char p[30] = "\0abcdef\0abc";//'\0'算一个字符  int len = strlen(p);//让我们求一下p长度  printf("%d", len);  return 0;}
显然len值为0
DSC0003.png
由此可知strlen函数针对字符串结束标志‘\0’前有多少个字符就计算多少个字符。
2.sizeof操作符是计算变量大小的(不止针对字符串)
sizeof就是返回一个对象或者类型所占的内存字节数
int main(){  char p[30] = "\0abcdef\0abc";//'\0'算一个字符  int len = sizeof(p);//让我们求一下p长度  printf("%d", len);  return 0;}
这时候len的值就不是0,而是30
DSC0004.png
我们可以用sizeof计算各种数据类型的大小
DSC0005.png
总结:strlen函数是针对字符‘\0’且只对字符串有效,而sizeof操作符是对对象或数据类型返回其所占的空间大小。







关注下面的标签,发现更多相似文章