为什么我的指针和变量大小不一样?
如题#include<stdio.h>
int main()
{
char a = 'f';
int f = 123;
char *pa = &a;
int *pb = &f;
printf("a = %c\n",*pa);
printf("f = %d\n",*pb);
printf("sizeof pa = %d\n",sizeof(pa));
printf("sizeof a =%d\n",sizeof(a));
printf("sizeof pb = %d\n",sizeof(pb));
printf("sizeog f= %d\n",sizeof(f));
}
结果如下
指针存放的是变量的地址,不是这个变量本身。地址又是什么呢?简单理解,地址就是一个数。你可以这样把指针标识的地址打印出来:printf(" pa = %d\n",pa) 最后你会发现结果是6356743(可能与这个不同)。但就是一个整数。
因此,指针变量存放的是一个地址。它的大小,只要能够放下代表地址的整数即可。 指针变量存变的是地址,就一般的环境来说地址占int大小
你在你的环境中加上这么一句测试看看就知道了:
printf("sizeof int = %d\n",sizeof(int));
页:
[1]