2012-03-10 67 views

回答

6

字符串文字"abcde"是字符数组。它有6个字节长,包括空终止符。

类型char*的变量是指针到一个字符。它的大小是指针的大小,在32位系统上是4字节。 sizeof是编译时操作,所以它只查看变量的静态类型,在这种情况下是char*。它不知道什么是指向。

†除可变长度数组,在C99语言标准

2

第一示例中引入的功能的情况下,sizeof()返回长度的纯字符串的。
第二个例子,sizeof()返回大小的指针 - > 32bits这样4个字节。

1

因为这里

printf("%d\n", sizeof("abcde")); 

是一个字符串,考虑空的6字节长。

char* str = "abcde"; 
printf("%d\n", sizeof(str)); 

是需要32位,因此4个字节:-)

指针
相关问题