易截截图软件、单文件、免安装、纯绿色、仅160KB

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

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语言中的知识,我只是在工作中经常见到或用到,但从未深究为什么,今天才却道原来简简单单下面孕育这无穷的知识点和我的盲点,是该边学习边记录了。
预处理器(Preprocessor)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
         #define ......

Linux下C语言实现字符串子串替换


    由于LINUX
C没有对字符串子串替换功能,所以我自己写了一个str_replace函数,实现了字符串替换.
请大家参考.
/*
 * FUNCTION     : str_replace
 *
ABSTRACT     : replace child string in a string.
 *
PARAMETER  &nbs ......

C/C++中的日期和时间

摘要:
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。
关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间 ......

如何在Linux使用Eclipse + CDT开发C/C++程序?

A. 为什么要在Linux使用Eclipse开发C/C++程序?
Linux是一个以C/C++开发为主的平台,无论是Kernel或是Application,主要都使用C/C++开发。传统在Linux下开发程序,是在文字模式下,利用vi等文字编辑器撰写C/C++程序存盘后,在Command line下使用gcc编译,若要debug,则使用gdb。
这种开发方式生产力并不高,若只是开发学 ......

20100527 C陷阱与缺陷读书笔记(一、二章)

  第一章:词法“陷阱”
  字母本身没有意思,但是将字母组成的单词就被赋予了意义。在C语言中,字符组合成了整个代码,由字符书写带来的笔误会带来不少麻烦。作为程序员,不能指望靠编译器来提醒。因此,需要注意:
  1.C语言中,符号之间的空白(包括空格符,制表符,换行符) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号