Kob*_*obi 2 c unix string sizeof
Sizeof打印出6:
printf("%d\n", sizeof("abcde"));
Run Code Online (Sandbox Code Playgroud)
但它打印出4:
char* str = "abcde";
printf("%d\n", sizeof(str));
Run Code Online (Sandbox Code Playgroud)
有人可以解释原因吗?
字符串文字"abcde"
是一个字符数组.它长6个字节,包括空终止符.
类型的变量char*
是指向字符的指针.它的大小是指针的大小,在32位系统上是4个字节. sizeof
是一个编译时操作†,所以它只查看变量的静态类型,在这种情况下是char*
.它不知道指向了什么.
†除了可变长度数组外,C99语言标准中引入了一项功能
归档时间: |
|
查看次数: |
999 次 |
最近记录: |