标签:
C语言18个经典问题答录这个大家都看过,自己也仔细看了一遍,另外,将一点感悟加注了一下。
但要注意到 array 和 &array 的类型是不同的。array为一个指针,而&array是指向数组int [100]的指针。array 相当于 &array[0],而 &array 是一个指向 int[100] 的指针,类型是 int(*)[100]。类型为:类型 (*)[数组大小],所以&a+1大小为:首地址+sizeof(a)。
$ cat main.c
#include <stdio.h>
int main()
{
char a;
printf("sizeof(a) = %d\n", sizeof(a));
printf("sizeof('a') = %d\n", sizeof('a'));
printf("sizeof(char) = %d\n", sizeof(char));
printf("sizeof(int) = %d\n", sizeof(int));
return 0;
}
$ gcc main.c
daniel@ubuntu:~/test$ ./a.out
sizeof(a) = 1
sizeof('a') = 4
sizeof(char) = 1
sizeof(int) = 4
$ g++ main.c
$ ./a.out
sizeof(a) = 1
sizeof('a') = 1
sizeof(char) = 1
sizeof(int) = 4标签:
原文地址:http://blog.csdn.net/lida2003/article/details/7194266