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

本文详细介绍了C和C++中的基本数据类型及其字节大小,包括char、int、float、double等,并增加了C++特有的bool和wchar_t类型。文中还讨论了不同类型指针的大小,并提供了测试代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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; 
  } 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值