C语言语法之占用字节

指针占用字节

指针即为地址,存的是变量的地址,在同一架构下地址长度都是相同的(cpu的最大寻址内存空间),所以不同类型的指针长度都一样。

指针占用几个字节跟语言无关,而是跟系统的寻址能力有关,16为地址指针即为2个字节,32位系统是4个字节,64位系统为8个字节。

用sizeof求长度:

#include<stdio.h>
void main(void)
{
    printf("%d %d %d\n",sizeof(int),sizeof(double),sizeof(char));
}

在vc6++上输出的因该是 4 8 1
TC2.0编译输出的是 2 8 1

指针存的是一个地址,在32位操作系统里面,最大寻址空间位0~2^32-1,即4个字节(32位)就可以表示,相应的在64位操作系统环境中用8个字节表示指针。指针本身所占空间大小与所指对象所占空间大小无关,只与操作系统有关。

 

int  占用字节

int占用字节数跟编译器相关,不同的编译器,规定是不一样。ANSI标准定义int是占2个字节,TC是按ANSI标准的,它的int是占2个字节的。但是在VC里,一个int是占4个字节的

posted @ 2014-07-08 08:13  ivantang  阅读(1119)  评论(0编辑  收藏  举报