字符类型char
* 一个字节
* 用来存储小范围的整数(-128~127),和字符(所有ASCII字符,128个)。
整数类型int
* 四个字节
* 用来存储整数,范围:2^-31~2^31。
长整形long
* long int
* 用来存储整数
* 32位系统上,占用四个字节
* 64位系统上,占用八个字节
长长整形 long long
* 用来存储整数
* 8个字节
单精度浮点类型float
* 用来存储带小数部分的数据
* 4个字节
* 表示方法:按科学记数法存储,也就是需要存储“尾数”和“指数”
float x = 1.75E5;
//1.75E5就是1.75乘以10的5次方,只需保存尾数(1.75)和指数(5)
float y = 1.123456789;
//精度只能取值到 1.1234568, 在第7位(整数部分不算)是四舍五入后的值。
表示范围:-3.4*10^38~+3.4*10^38 (不需记忆)
精度:最长7位有效数字(是指7位10进制位)
双精度浮点类型 double
* 用来存储带小数的数据
* 8个字节
* 表示范围:-1.7*10^308~1.7*10^308(不需记忆)
* 精度:最长16位有效数字(是指16位10进制位)
char变量的输入
scanf("%c", &c); //输入 100 ,实际只读了字符1
printf("%c\n", c); //输出 1
printf("%d\n", c); //输出49, 字符'1'的ASCII值就是49
int变量的输入
int a;
scanf("%d", &a); //输入100
printf("a=%d\n", a); //输出a=100
scanf("%d", &a); //输入a, 不是整数,输入失败!a依旧保持原来的值
printf("a=%d\n", a); //输出a=100
char变量使用%d输入[ERROR]
char a, b;
scanf("%d", &a); //输入 256 ,按4个字节存储,第2个字节保存到b变量中!
printf("a=%d,b=%d\n", a, b); //输出a=0,b=1
float变量的输入
scanf("%f", &x); //输入3.14
printf("x=%f", x); //输出 x=3.140000
double变量的输入
scanf("%lf", &x); //输入3.14
printf("x=%f", x); //输出 x=3.140000
printf("x=%lf", x); //输出 x=3.140000
输入double类型变量的值, 必须使用lf 而不是f, 否则输入失败。
输出double类型变量的值,则可以使用lf或者f, 没有区别。
scanf注意:
1. 当使用%s读取字符串串时,遇到空白字符(空格、制表符,回车符)就结束
2. 使用%c读取字符时,任何字符都能读取,但只读一个
3. 使用%d,%f,%lf 读取nt , float, double类型数据时,会自动转换成对应数据,
但是如果遇到其他字符(比如a),就会读取失败
char数据类型的其他输入输出函数
getchar
char c;
c = getchar(); //输入一个字符
printf("c=%c\n", c);
putchar
char c = 'a';
putchar(c); //输出1个字符, printf(“%c”, c);
getc
char c;
c = getc(stdin); //输入一个字符, stdin表示“标准输入设备”,默认是键盘
printf("c=%c\n", c);