gcc 中 sizeof(char*) 和 (int*)分别占用几个字节 /原因是什么?
code:#include<stdio.h>
int main(void)
{
char a[20] = "you are a boy!";
char *p = a;
char **ptr = &p;
printf("**ptr = %c\n", **ptr);
ptr++;
printf("**ptr = %c\n",**ptr);
return 0;
}
出现问题如下:1,ptr 指针类型是 char **,指针指向类型是 char *, 使用第一个printf函数后会输出数组a中的第一个单元内容y ,在ptr++之后再次使用printf结果为:错误。原因是什么?
分析如下:在 ptr++之前 其内容是:&p ,之后应当是::&p + N,重点是这个N是多少,1or4,还是其他?
2,在GCC中实验printf("%d", sizeof(int *)); pintf("%d",sizeof(char*));两个函数输出都是4,这是为什么/ 难道他们的长度一样吗?
[ 本帖最后由 小曹 于 2011-8-12 20:24 编辑 ]