【发布时间】:2013-08-24 02:27:34
【问题描述】:
char c[] = "Hello";
char *p = "Hello";
printf("%i", sizeof(c)); \\Prints 6
printf("%i", sizeof(p)); \\Prints 4
我的问题是:
为什么这些打印出不同的结果? c[] 不是也声明了一个指向数组第一个字符的指针(因此大小应该为 4,因为它是一个指针)?
【问题讨论】:
-
指针与数组不同。
-
这可能会有所帮助:c-faq.com/aryptr/aryptrequiv.html
-
这是数组名称被转换/衰减为指向数组第一个元素的指针的规则的少数例外之一。