您的位置:首页 > 编程语言 > C语言/C++

C和C++中的主要数据类型和字节大小

2013-05-08 20:59 274 查看
C和C++中的主要数据类型和字节大小(

C/C++的写法是不科学和不严谨的。因为C和C++虽然语义,但是设计思想是结构化与面向对象. C标准规范与C++的标准规范也是两个文本。近来仔细研究了它们的数据类型,才知道其来龙去脉,真正做到其实所以然。

1、C语言定义了5种基本数据类型

char(字符), int(整数), float(单精度), double(双精度),void;

在32位机器上,sizeof的其值分别为:

sizeof(char)=1, sizeof(int)=4, sizeof(float)=4, sizeof(double)=8;

sizeof(char*)=4;(任何类型指针变量为32位即4个字节)

2、C++语言于C基础上增加2种数据类型:

bool(布尔),wchar_t(宽字符);

在32位机器上,sizeof的其值分别为:

sizeof(bool)=1, sizeof(wchar_t)=2, sizeof(bool*)=sizeof(wchar_t*)=4;

3、数据类型的基本修饰符:

signed(有符号), unsigned(无符号),long(长整),short(短整)

4、测试代码:

size_t nchar=sizeof(char);

size_t nfloat=sizeof(float);

size_t ndouble=sizeof(double);

size_t nint = sizeof(int);

a.Format("C语言数据类型长度:char=%d,float=%d,double=%d,int=%d",nchar,nfloat,ndouble,nint);

AfxMessageBox(a);

nint = sizeof(int*);

nchar = sizeof(char*);

ndouble = sizeof(double*);

nfloat = sizeof(float*);

a.Format("C语言指针类型长度:char*=%d,float*=%d,double*=%d,int*=%d",nchar,nfloat,ndouble,nint);

AfxMessageBox(a);

size_t nbool=sizeof(bool);

size_t nwchar=sizeof(wchar_t);

a.Format("C++新增数据类型长度:bool=%d,wchar_t=%d,bool*=%d,wchar_t*=%d",nbool,nwchar,sizeof(bool*),sizeof(wchar_t*));

AfxMessageBox(a);

5.理解代码

//A

采用32位寻址方式,则数组char**[4][4]占用字节=4*4*4字节(32bit)=64字节

//B

#include "stdio.h"

int main()

{

int *p;

printf("%d", sizeof(p));

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: