C语言数据类型
- 1、整型变量
- 2、浮点型变量
- 3、字符型变量
- 4、有符号数和无符号数
1、整型变量
#include <stdio.h>int main(void)
{
/* int a; //定义一个整型变量aint b; //定义一个整型变量bint c; //定义一个整型变量c
*/
/* int a,b,c; //也可以这样定义a = 25;b = 6;
*/
int a = 25,b = 6,c;//也可以这样定义c = a / b;printf("c = %d\n",c);printf("a = %d,b = %d\n",a,b);return 0;
}
c = 4
a = 25,b = 6
C语言中的整形对应数学中的整数,整形变量是用来描述一个整数值的,整形变量经过计算,后也只能是整数(整型),不可能出现小数(浮点型).
C语言中整形有三种:
(1)int 整形
(2)short int,又叫做short,短整形(<=整形)
(3)long int,又叫做long,长整型(>=整形)
区别:范围不同
2、浮点型变量
C语言中浮点型对应数学中的小数。浮点型有float和double两种。使用方式相同,不同在于表示范围和精度。
float表示的范围小,精度低(小数点后6位);
而double表示范围大,精度高(小数点后16位)
范围是说表示的数有多大,精度是指这个数的分辨率有多细
注意:printf中打印float或double类型,要是用%f,不能用%d。
#include <stdio.h>int main(void)
{float a = 3.1415926;double b = 222.55684971354658713658;printf("a = %f\n,b = %3.20f",a,b);//3.20表示整数位.小数位return 0;
}
a = 3.141593
,b = 222.55684971354660000000
a本来是3.1415926,结果输出是3.141593,可见发float精确到小数点后6为。double同理。
3、字符型变量
字符型对应ASCII字符。ASCII字符是一种编码,就是用数字编码来表示一个符号的一种方法。本质上说,字符型其实也是整形,只是这些整形数被用来表示一些字符的ASCII编码值,所以叫做字符型。字符型一般用8位二进制表示,无符号字符型范围是0~255。字符型其实是一种比short还短的整形,所以它可以和int相运算。
#include <stdio.h>int main(void)
{char cl = 'A';printf("cl = %d ,cl = %c\n",cl,cl);cl = cl + 5;printf("cl = %d ,cl = %c\n",cl,cl);return 0;
}
cl = 65 ,cl = A
cl = 70 ,cl = F
可见字符可以由2种打印方式,可以用整数型打印,也可以用字符型打印。
4、有符号数和无符号数
数学中数是有符号的,有整数和负数之分。所以计算机中的数据类型也有符号,分为有符号数和无符号数。
有符号数:
① 整形:
signed int(简写为 int)
signed long,也写作signed long int,(简写为long)
signed short,也写作signed short int(简写为short)
signed(表示signed int)
②浮点型:
signed float(简写为float)
signed double(简写为double)
③字符型:
signed char(简写为char)
无符号数:
整形:整形有无符号数,用来表示一些编码编号之类的东西。譬如身份证号,房间号 unsigned int(没有简写)unsigned long int(简写unsigned long) unsigned short int(简写为unsigned short)
浮点数:没有无符号浮点数。也就是说,小数一般只用在数学概念中,都是有符号的。
字符型:字符型有无符号数unsigned char(没有简写)
注意:对于整形和字符型来说,有符号数和无符号数表示的范围是不同的。
譬如字符型,有符号数范围是-128~127,无符号数的范围是0~255