各种类型值在所点内存空间一览表:
整型:int,long,char
sizeof(int)=4 //这里以字节为单位,int 型占4字节,刚好一个32位机的寄存器位长
sizeof(unsigned int)=4 //加个unsigned标志不会改变内存空间大小
sizeof(int *)=4
sizeof(char)=4
sizeof(char *)=4
sizeof(long)=4
sizeof(long *)=4
浮点型:float,double
sizeof(float)=4
sizeof(float *)=4 //所有的近指针都为4字节.
sizeof(double)=8
sizeof(double *)=4
结构型:
typedef struct STUDENT
{//整型和整型合并,字符型和字符型合并.
int i1:6;//整型按位合并,超过32位则再加一个4字节
long l1:8;
long lng:28;
char ch1:4;//字符型按字节合并,超过4字节,则再加4字节
char ch2:7;
int i2:5;
long l2:6;
}student;
sizeof(student)=16
/*
计算方法:
i1,l1共14位,共用一个int内存.不再合并lng,超过14+28超过32
lng共28位,独用一个int内存.
ch1用一个char内存的第一个字节
ch2用一个char内存的第二个字节
ch1,ch2共用一个char内存
i2,l2同理,共11位,共用一个int 内存.
总共有int + int + char +int 共4*4个字节.
即16位
*/
sizeof(student *)=4
typedef struct LINK
{
char p;
char *lp;
char *rp;
}link;
sizeof(link)=12//4 byte * 3=12
sizeof(link *)=4//近指针都是4字节.