其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
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(结构体)要特别小心,要想想是不是自己想要的结果。



相关文章

相关软件