指针变量的储单元的大小?

来源:百度知道 编辑:UC知道 时间:2024/07/01 07:40:29
main()
{
int i;
int *p = &i;
printf("%d",sizeof(p));
}
我32位CPU,
在VC测试: 4
在TC测试: 2
请问,指针变量存储单元的大小与什么有关?

指针大小和当前系统的地址总线位数一样,TC运行在16位模拟器中,所以指针大小是16位即2个字节,vc就是32位的,int类型的大小也和这个一样是变的,其它类型的大小不会变的

与数据类型有关。。
数据类型:int long float double char
这些有关。

与编译器有关,TC是16位的编译器,分配int类型数据是2字节

TC和VC所支持的语言标准不同,跟16位和32位编程无关。
TC支持纯C语言,纯C语言里的6种int型数据中只有long和unsigned long型长度是4字节,另外4种长度是2字节,而VC里支持的C语言全部6种int型数据长度全部是4字节。我们知道,指针的长度和其相应的数据类型长度相等,所以int型指针在TC里是2字节,在VC里是4字节。