#include
int main(int argc, char* argv[])
{
char a[] = "hello world!";
char *b;
char c[3];
char *d = "world";
printf("sizeof a=%d\n", sizeof(a)); // 返回数组大小
printf("sizeof b=%d\n", sizeof(b)); // 返回指针大小
printf("sizeof c=%d\n", sizeof(c)); // 返回指针大小
printf("sizeof d=%d\n", sizeof(d)); // 返回数组大小
return 0;
}
C++32位机器上程序的输出结果为:
a=13
b=4
c=3
d=4
Bash由此可见,sizeof(数组名)会返回数组的大小(数组元素数量*sizeof(数组类型))(对于字符串数组包含末尾的空),而sizeof(指针变量名)会返回指针变量本身的大小。