![](https://csdnimg.cn/release/download_crawler_static/86843851/bg4.jpg)
char str4[8]={'a','b','s','e','f','g','h','j'};
sizeof(str1)=4;
sizeof(*str1)=1;
strlen(str1)=5;
sizeof(str2)=6;
strlen(str2)=5;
sizeof(str3)=8;
strlen(str3)=1;
sizeof(str4)=8;
strlen(str4)=13;
strlen(*str1) 出错
strlen(str4)有可能为不小于 8 的其他数字,取决于内存中的数据,因为 strlen 是计算变量值
为起点的内存地址到第一个'\0'的距离,但'\0'出现位置我们是未知的。
6 月 12 日 17:49 | 添加评论 | 固定链接 | 写入日志 | C/C++
关于 Sizeof
sizeof 是 C 语言的一种单目操作符,如 C 语言的++、--等。它并不是函数。sizeof 操作符以
字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数
的存储大小由操作数的类型决定。其实可以简单的理解 sizeof 是征对"类型"的。
sizeof 使用形式:sizeof(type),数据类型必须用括号括住。如 sizeof(int)。
2、用于变量
sizeof 使用形式:sizeof(var_name)或 sizeof var_name
变量名可以不用括号。如 sizeof (var_name),sizeof var_name等都可以。带括号的用法更