|
|
c中的数据类型 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
/*作者:陈亮 日期:2004-45-25 */ (注:)以下内容都是说在32位的操作系统下的 C的常用数据类型: 一、首先要搞清的基本问题: 1.在计算机中内存的基本单位是byte,这就意谓着C中所有的数据类型也是以byte为基本单位的. 2.1 byte(字节) = 8 bit(位); 1kb(千字节) = 1024 byte(字节). 3.INTER的内存是以4kb边界对齐的.(一页内存). 4.计算机中所有的东西都是以二进制来进行存储的. 如果编程中遇到什么很怪的问题,不妨试试从以上的角度来考虑一下。 二、基本数据类型 char 占用内存1byte int 占用内存4byte short 占用内存2byte long 占用内存4byte float 占用内存4byte double 占用内存8byte 三、指针类型 1.指针类型只能存放地址(我觉得这是理解指针的最重要方面)。 2.不论什么指针类型都占用4byte的内存.(也就是说它可以指向的最大内存为4G) 3.所以任何的指针类型都可以进行相互转换. 4.那么指针类型的类型又有什么作用呢?它的作用只是说明此指针指向地址的内容的类型。比如: (1)int *p; 那么p++就会加4(看二的int). 当用*p的时候,它会读所指向地址的连续4个字节 (2)char *p; 那么p++就会加1(看二的char).当用*p的时候,它会读所指向地址的1个字节 (3)而像(int*)p这样的转换的意思也只是将p所指向地址的内容的类型改变为int.这样它在p++时就会加4 ,当用*p时它就会读所指向地址的连续4个字节. 四、结构体 struct mytest{ int i; char c; }; sizeof(struct mytest) = 8; 为什么会这样呢?因为要以4byte过界对齐(这样在CPU取地址时速度会快很多)。 所以在使用sizeof(结构体)要特别小心,要想想是不是自己想要的结果。

|
|
相关文章:相关软件: |
|