C语言学习笔记之数据类型

1、整数类型

1.1 类型
类型位数
short(或short int)16位
int16位或32位
long (或long int)32位
long long(或long long int)64位

注意:
(1)如果在long类型等于int类型的系统中编写代码,当确实需要32位整数是,应使用long类型,以便使程序移植到int类型为16位的机器上后仍然可以正常工作。
(2)通常,数字常量以int类型存储,如果使用1000000这样的数字int类型不能表示时,编译器会视其为long int类型,如果仍然不够,会视其为long long int类型。
(3)如果希望把一个数字常量作为long类型对待,可以使用‘l’或‘L’后缀。使用’L’后缀是更好的选择,因为‘l’与数字1很相近。
(4)与之类似,可以使用‘ll’或者‘LL’后缀标识long long类型。

1.2 数制
数制表示方法
八进制前缀‘0’
十进制无前缀
十六进制前缀‘0x’或者‘0X’

这种使用不同数制系统的选择是为了方便而提供的,它并不影响数字的存储。无论16、020、0x10,计算机内部都是使用二进制编码进行存储。

2、字符类型

表示方法例子
单引号char ch = ‘A’;
ASCII码char ch = 65;
转义序列char ch = ‘\n’;
反斜杠 +数字char ch = ‘\020’;

注意:
(1)上述‘反斜杠 +数字’表示方法中,数字为八进制或者十六进制,如果没有用‘x’前缀,则为八进制,

char ch1 = '\020';   
char ch2 = '\20';  
char ch3 = '\x10';

所以上述三个例子效果相同。

(2)C语言将字符常量视为int类型存储。

char grade = 65;    \*对于ASCII,这是可以的;但这是一种不好的编程风格*\
char grade2 = 'A';  \*与上一条有类似的效果*\

char grade = 'FATE';
printf("%c", grade);    //将打印出‘E’,因为C将这四个独立的8位
                        //ASCII码存储在一个32位的单元中。所以如果
                        //把这个字符常量赋给一个char变量,那么只有
                        //最后8位会起作用。

(3)如果再转义序列和其对应的ASCII码之间做出选择,应该使用转义序列,因为转义字符更容易记忆,而且移植性更好。
(4)当需要使用数值编码时,使用‘\032’而不是032。首先,‘\032’能更清晰的表达程序员表示一个字符编码的意图;其次,‘\032’这样的转义序列可以嵌入到C字符串中,比如字符串“hello!\007\n”中就嵌入了‘\007’。

3、浮点数类型

3.1 浮点类型

float:系统的基本浮点类型。至少能精确表示6位有效数字。
double:范围(可能)更大的浮点类型。能表示比float类型更多的有效数字以及更大的指数。
long double:范围(可能)更大的浮点类型。能表示比double类型更多的有效数字以及更大的指数。

3.2 表示方法
float a = -1.34E-12;    //e或者E表示10的指数
float b = 2.23e21;
float c = 0xa.1fp10;    //p或者P表示2的指数(十六进制表示法)

4、复数和虚数类型(用的不多,省略)

注意:
char类型肯定是1字节,因为C把char类型的长度定义为1个字节。所以在char类型长为16位,double类型长为64位的系统中,sizeof将报告double类型有4字节长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值