[C].数据类型

C语言规定在使用一个数据之前,必须定义数据的类型,因为数据类型决定了数据占用内存的字节数.取值范围以及在其上可以进行的操作等.
0.数据类型的本质是什么?
其实数据类型的本质就是“固定内存块大小的别名”,为什么这么说呢? 我们可以做一个测试用例:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() { 5 printf("sizeof(int) : %d\n", sizeof(int)); 6 printf("sizeof(float) : %d\n", sizeof(float)); 7 printf("sizeof(double) : %d\n", sizeof(double)); 8 printf("sizeof(long) : %d\n", sizeof(long)); 9 printf("sizeof(char) : %d\n", sizeof(char)); 10 system("pause"); 11 return 0; 12 } 13 /* 14 结果: 15 sizeof(int) : 4 16 sizeof(float) : 4 17 sizeof(double) : 8 18 sizeof(long) : 4 19 sizeof(char) : 1 20 21 */
从上面的测试来看,各种数据类型的大小都是固定的,我们声明变量的时候就是在告诉编译器我要申请这么大的一块内存,而这块内存的标号就是这个变量的名字。所以变量和内存是两码事,我们是通过变量向内存里边读写数据而不是向这个变量在读写数据。
学习C语言最重要的就是要搞懂内存的概念,C语言与其他高级语言比如C#,java不同,C语言是弱类型的语言,对数据类型没有那么严格的检查。所以自己要务必分清楚数据类型和变量的关系,往往就是因为概念不清晰而导致BUG。




基本类型书写
整数
- 默认为10进制 ,10 ,20。
- 以0开头为8进制,045,021。
- 以0b开头为2进制,0b11101101。
- 以0x开头为16进制,0x21458adf。
小数
单精度常量:2.3f 。
双精度常量:2.3,默认为双精度。
在浮点型常量里我们也可以加上后缀。
FloatNumber=1.6E10F; /*有符号浮点型*/
LongDoubleNumber=3.45L; /*长双精度型*/
后缀可大写也可小写。
说明:
1. 浮点常数只有一种进制(十进制)。
2. 所有浮点常数都被默认为double。
3. 绝对值小于1的浮点数, 其小数点前面的零可以省略。如:0.22可写为.22, -0.0015E-3可写为-.0015E-3
字符型常量
用英文单引号括起来,只保存一个字符'a'、'b' 、'*' ,还有转义字符 '\n' 、'\t'。
字符串常量
用英文的双引号引起来 可以保存多个字符:"abc"。
部分内容出处:
http://www.runoob.com/cprogramming/c-data-types.html
https://blog.csdn.net/u014622185/article/details/49640281
https://blog.csdn.net/abaloon/article/details/8173552

浙公网安备 33010602011771号