各种指针内容的考察
1 // 主要是考虑后面还有一个\0; 2 char array[] = "abcdefg"; 3 printf("%d\n", sizeof(array)); 4 5 // p是一个指针。 6 char *p = "abcdefg"; 7 printf("%d\n", sizeof(p)); 8 9 // 主要考虑的是数组当做参数时退化为指针,故传入的p任然是原指针p的拷贝,也是一个指针 10 void func(char p[10]) 11 { 12 printf("%d\n", sizeof(p)); 13 } 14 15 // p是装10个char类型数据的数组的引用,其结果类似于char p[10];printf("%d\n",sizeof(p)); 16 void func(char (& p)[10]) 17 { 18 printf("%d\n", sizeof(p)); 19 20 } 21 22 int main(void) 23 { 24 // 装有2个char数组 25 printf("%d\n", sizeof(char[2])); 26 // char类型的直接操作 27 printf("%d\n", sizeof(char &)); 28 return 0; 29 }
其中要特别注意数组当做参数时退化为指针和字符串后面还有一个’\0‘的情况