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;
}
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;
}
相关文章推荐
- C和C++中的主要数据类型和字节大小
- c++高级---C++主要数据类型在计算机中所占字节大小
- C和C++中的主要数据类型和字节大小
- C++主要数据类型在计算机中所占字节大小
- C++主要数据类型在计算机中所占字节大小
- C++主要数据类型在计算机中所占字节大小
- C和C++中的主要数据类型和字节大小
- C++主要数据类型在计算机中所占字节大小
- C++在不同操作系统的基本数据类型字节大小(转)
- Microsoft visual C++ 2010学习版中C语言基本数据类型所占字节大小(系统为64位win8.1)
- c++中32位64位操作系统基本数据类型字节大小
- C++ 基本语法之变量(指针)与数据类型(占用字节大小)
- C/C++学习笔记16:常见数据类型的大小
- C++中printf、sprintf等函数读写64位字节数据类型
- 32位 64位操作系统下基本数据类型字节大小
- C/C++基本数据类型所占字节数
- C/C++中基本数据类型所占内存大小
- 不同语言基本数据类型(int、char、float、double....)对应字节大小
- C/C++基本数据类型所占字节数及内存字节对齐
- Object c/swift,java,c/c++在32位和64位各个平台上基本数据类型 所占有的字节数