C语言基本类型声明、初始化、大小及格式说明符总结

C语言基本类型声明、初始化、大小及格式说明符总结


类型

声明及初始化

大小(byte)

格式说明符

char

char a=’2’;

char a=50,b=062,c=0x32;

char a=’\062’,b=’\x32’;

char a=’\n’,b=’\012’,c=’\x0a’;

字面量和常量:4

变量:1

%c

short

(unsigned) short (int) a=50,b=062,c=0x32,d=50u;

2

%hd、%hu、%ho、%#ho、%hx、%#hx

int

(unsigned) int a=50,b=062,c=0x32,d=’2’;

4

%d、%u、%o、%#o、%x、%#x

long

(unsigned) long a=50,b=062,c=0x32,d=50L;

4

%ld、%lu、%lo、%#lo、%lx、%#lx

long long

(unsigned) long long a=50,b=062,c=0x32,d=50LL;

8

%lld、%llu、%llo、%#llo、%llx、%#llx

float

float a=0.1,b=.1,c=1.,d=1e2,e=1.0e2,f=1.0f;

4

%f、%e、%a

double

double a=0.1,b=.1,c=1.,d=1e2,e=1.0e2;

8

%f、%e、%a

long double

long double a=0.1,b=.1,c=1.,d=1e2,e=1.0e2;

8

%lf、%le、%la

 注意:0.格式说明符中是o(大写为O)不是零,是l(大写为L)不是1。

             1.大小为标准的32位机器中的情况,不同机器的int和long大小可能会有差异。

             2.还有一些新增的类型如_Bool、_Complex、_Imaginary此次并未列出。

             3.尽管同一种类型可以有这么多种表示方式,但请尽量选择表达最清楚的方式。

             4.无符号类型尽量少用,因为C蛋疼的隐式类型转换会让你大吃一斤(比如:if(50u>-50))!!!

             5.注意每种类型的取值范围(溢出问题)及表示精度(什么很大的数和很小的数相运算就是精度这个问题啰),就是根据数据占有的位个数来计算啦,整数要考虑符号位,浮点数要考虑浮点编码(单精度1,8,23,双精度1,11,52)。

             6.考虑到代码移植性的话,会用到inttypes.h和stdint.h的东西(什么int32_t,long64_t就是这里边的东西啦)。

             7.不管什么联合类型、枚举类型、用户自定义的结构体类型或是带了函数(过程)的抽象数据类型,甚至是所谓高端的面向对象的类,都是由这些基础数据类型(元类型)构建的,所以嘛基础一定要稳哟!

不过话又说话来,规矩都是人定的,拘泥于别人搞的这些繁杂的语法规则总是让人不爽,关键还是要抓住本质,小而美才是极好的!!!

你可能感兴趣的:(C,/,C++)