数据类型
<1>C语言是有类型的语言
(1)C语言的要求
1. C语言的变量必须在使用前定义;
2. 变量要进行类型的确定和区分;
(2)C之后不同语言的发展方向:
1. C++/JAVA,更强调类型;(强调类型的语言更面向底层)
2. 而Python、JavaScript、PHP不看重类型甚至不需要事先定义;(面向运用,远离底层)
(3)C语言存在的问题
C语言需要类型,但对类型的安全检查并不足够;
<2>C语言类型
大体可分为四种:共五类,四类则是将逻辑bool类型合并到整数类型。
- 整型(逻辑bool)
- int,char,short,long,long long(bool);
- 浮点型
- float,double,long double;
- 指针
- 自定义类型
<3>类型不同的几个表现方面
- 类型名称
——int,long,double; -
输入输出时的格式化
——%d,%ld,%lf;
-
所表达的数的范围
char<short<int<float<double
-
内存占据大小
——1-16个字节;
-
内存中的表达形式
——二进制数(补码)、编码;
<4>sizeof
-
是一个运算符;
-
可以给出某个变量或类型在内存中所占据的字节数;
-
sizeof(int);
-
sizeof(i).
1)举例应用sizeof
#include<stdio.h>
int main(){
int a;
a=6;
printf("sizeof(int)=%ld\n",sizeof(int));
printf("sizeof(a)=%ld\n",sizeof(a));
return 0;
}
得出int,a均占据四个字节,32个bit;若类型改为double则占据8个字节;long double占据字节数为16。
-
注意:sizeof是静态运算符,因此在sizeof的括号中做运算无效;
-
举例以sizeof(a++)为例,接着输出a值,结果显示a的结果仍然为6;
-
以类型转换为例:sizeof(a+1.0)结果会显示占据8个字节,在此处字符类型将转换成double,double在内存中占据8个字节。