[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 */
View Code

 

  从上面的测试来看,各种数据类型的大小都是固定的,我们声明变量的时候就是在告诉编译器我要申请这么大的一块内存,而这块内存的标号就是这个变量的名字。所以变量和内存是两码事,我们是通过变量向内存里边读写数据而不是向这个变量在读写数据。 
  学习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

 

posted @ 2018-05-24 15:56  孤坟  阅读(275)  评论(0)    收藏  举报