C语言数据类型
-
数据类型
变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。
基本类型:
它们是算术类型,包括两种类型:整数类型和浮点类型。
枚举类型:
它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。
void 类型:
类型说明符void表明没有可用的值。
派生类型:
它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。- 整数类型
表达式sizeof(type)得到对象或类型的存储字节大小。
%lu为32位无符号整数 - 浮点类型
变量的名称可以由字母、数字和下划线字符组成。必须以字母或下划线开头,区分大小写。
float 4个字节 单精度浮点值,单精度:1位符号 8位指数 23位小数
double 8个字节 双精度浮点值 :1位符号 11位指数 52位小数
小数 单精度常量:2.3f
双精度常量:2.3 默认为双精度
字符型常量
用英文单引号括起来只保存一个字符‘a’ ‘\n’ 、’\t’
字符串常量
用英文双引号引起来 包含多个字符 - 整数类型
-
类型转换
1)数据类型转换
一个表达式里含有不同的常量和变量,在计算时自动转换成一种类
型。也可以对数据类型进行强制转化。
2)自动转换规则
a) 浮点数赋给整型,该浮点数小数被舍去
b) 整数赋给浮点型,数值不变,但是被存储到相应的浮点型变量中。
3) 强制类型转换形式
(类型说明符)(表达式)
#include<stdio.h>
int main()
{
float f,x=3.6,y=5.2;
int i=4,a,b;
a=x+y;
b=(int)(x+y);
f=10/i;
printf("a=%d,b=%d,f=%f,x=%f\n",a,b,f,x);
}
例中先计算 x+y 值为 8.8,然后赋值给 a,因为a为整型,所以自取整数部分8,a=8;
接下来 b 把 x+y 强制转换为整型;
最后 10/i 是两个整数相除,结果仍为整数2,把2赋给浮点数f;
x为浮点型直接输出。