标签:
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