一、int类型
值可以是正整数、负整数和零。
1.声明int变量
e.g. int a;
e.g. int a,b ,c; //int 后面列出多个变量名,变量名之间用逗号隔开。
2.为int变量赋值的三种路径
(1)e.g. int=a;
a=2;
(2)通过scanf()函数获得值。
(3)初始化变量直接在声明int变量中进行
e.g. int a=2;
int a=2,b=3;
3.int 类型常量
整数(C语言把不含小数点和指数的数作为整数)是整型常量。
4.输出int的值
printf()函数用%d指明并进行输出,e.g.int a=2; printf("%d",a);
二、char类型
1.声明char类型变量
char类型变量的声明方式与其他类型变量的声明方式相同。
2.字符常量和初始化
e.g.char a='A';
注:在C语言中,字符常量是用单引号括起来的单个字符。若"A"则为一个字符串,若A则为一个变量。
3.非打印字符
单引号只能打印出字符,数字,标点符号。
对于ASCII码中的退格,换行等字符无法打印出来,那么可以使用2种方法打印。
(1)使用ASCII码
(2)用转义序列,e.g. char a='\n';
4.输出字符
printf()函数用%c指明并进行输出。
如果用%d转换说明打印char类型变量的值,打印的是一个整数。
如果用%c转换说明打印字符。
#include <stdio.h>
int main(void)
{
char a;
scanf("%c",&a);
printf("%d %c",a,a);
return 0;
}
注:scanf()函数原理,先读取用户输入的字符,&符号表示把输入的字符赋给变量a。
注:signed char表示有符号类型,而unsigned char表示无符号类型,char类型处理小整数时很有用。若用于处理字符,无需加任何前缀。
三、_Bool类型
true=1
false=0
布尔类型也是一种整数类型,程序通过布尔值可选择执行哪部分的代码。
四、可移植类型
五、float、double和long double
(1).float类型必须至少能表示6位有效数字,占用32位
(2).double类型必须至少能表示10位有效数字,占用64位
(3).long double类型可以满足比double更高的精度要求
1.声明浮点型变量
浮点型变量的声明与整数类型变量一样。
float a=2;
float b,c;
float d=2,e=3;
double f;
long douoble g;
2.浮点型常量
e.g. 1.34e3 .2 .8e-5 100. 3.141592
注:编译器假定浮点型常量都是double类型的精度。
那么如何让编译器将浮点型常量看出float类型呢?在浮点数后面加上f或F后缀可以覆盖默认设置。
那么如何让编译器将浮点型常量看出long double类型呢?在浮点数后面加上l或L后缀可以覆盖默认设置。
3.输出浮点值
用printf()函数使用%f转换并输出十进制计数法的float和double类型浮点数,用%e输出指数计数法的浮点数。输出long double类型要使用%Lf、%Le或%La转换并输出。
但是,用scanf( )输入时,double类型浮点数要用%lf。
#include <stdio.h>
int main(void)
{
float a=35000.0;
double b=3.14e8;
printf("%f %e\n",a,a);
printf("%f %e\n",b,b);
return 0;
}
结果:
35000.000000 3.500000e+04
314000000.000000 3.140000e+09
4.浮点值的overflow和underflow
注:特殊的浮点值NaN。例acos()函数传递一个值,将返回一个角度,该角度的余弦就是传入函数的值。(cos不大于1)若传入的参数大于1,将返回NaN。
六、复数和虚数类型
C语言有三种复数类型:float_Complex、double_Complex、long double_Complex
C语言有三种虚数类型:float_Imaginary、double_Imaginary、long double_Imaginary
另:
一、类型大小
sizeof是C语言的内置运算符,以字节为单位给出指定类型的大小。用%zd转换说明匹配sizeof的返回类型。
#include <stdio.h>
int main(void)
{
printf("Type int has a size of %zd bytes.\n",sizeof(int));
return 0;
}
结果:Type int has a size of 4 bytes.
二、使用数据类型
把一个类型的数值初始化给不同的类型的变量时,编译器会把值转换成与变量匹配的类型。会导致部分数据丢失。
注:用%d显示float类型的值,其值不会被转换成int类型。