C语言的数据类型可分为三大类:整数,浮点数和字符类型。
2.3.1整数数据类型
整数数据类型用来存储整数类型的数据,当各位变量指向为整数类型时,内存中即会保留四个字节的空间,用来存储整数变量的值,除了可直接设置整数数值外,还可以采用8或16进制来设置,声明语法如下:
int sum=027;/*027Q等于23D*/
int b=0x2b
此外,整数也是可以拥有多种类型的数据,说明如下:
1).short
当一个整数声明为“short int”时,数据长度是16位。它的数据类型所占用的内存空间是比“int”整数小的范围。不过当选用的编译器是16位的系统时就没什么差别了。
2)long
当一个整数为“long int”时,在16位的编译器上,是大于int的存储范围,不过选择的编译器位32位就没有差别。
3)signed
它是有符号整数,用来指定一个整数可以有正负数类型。
4)unsigned
无符号整数,也就是说只要在数据类型前加上unsigned,那么该变量就只能存储正整数数据了。
在不同的编译器上会产生不同的整数数据长度。可以使用C语言的sizeof()函数来查看各种数据类型或变量的长度。
以下提出了C语言整数相关的声明信息:
整数修饰词声明和输出如例程下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
short int =32425;
int b=0;
long int c=274790;
unsigned long int d=287464;
printf("短整数为%d=%d字节\n",a,sizeof(a));
printf("整数为%d=%d字节\n",b,sizeof(b));
printf("长整数为%d=%d字节\n",c,sizeof(c));
printf("无符号整数为%d=%d字节\n",d,sizeof(d));
return 0;
}
2.3.2.浮点数类型
至于浮点数的表示方法有两种,一种是小数点,一种是科学计数法,如3.14,-100.45,6e-2,其中e或E是C语言中以10为底数的科学计数法。如6e-2,其中6为假数,-2为指数。
小数点表示法 | 科学计数法 |
0.06 | 6e-2 |
-543.236 | -5.43236e+2 |
1)float单精度浮点数
数据长度为4字节,有效范围为1.2*10^-38~1.2*10^+38.
2)double双精度浮点数
数据长度为8字节,有效范围为2.2*10^-308~1.8*10^+308.
不论是float还是double,当以printf函数输出时,采用的输出格式化字符都是“%发”格式化字符,和整数“%d“是一样的作用。以科学记数法输出格式化字符为”%e”。
浮点数的声明和例程如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
float f_a=123.11223344f;
double d_a=123.12345;
printf("单精度浮点数表示=%f\n",f_a);
printf("双精度浮点数表示=%e\n",d_a);
printf("单精度浮点数科学计数法=%f_a\n",f_a);
printf("双精度浮点数科学计数法=%e_a\n",d_a);
return 0;
}
2.3.3字符数据类型
字符数据在内存中是以整数数值来存储的,每一个字符占用一个字节(8位)的数据长度,所以数值范围为“0~2^8-1"之间,例如字符”A“的数值为”65“,字符”0“为”48”。声明时必须用单引号括起来,代表一个字符。
字符的输出格式有两种,利用“%c”可以输出字符,或利用“%d”输出ASCII码的整数值。
字符数据的输出和加法运算功能如下所示:
#include<stdio.h>
#include<stdlib.h>int main()
{
char a='A'; /*声明一个字符变量*/
printf("大写字符=%c的ASCII码=%d\n",a,a);
char b=a+32;
printf("小写字符=%c的ASCII码=%d\n",b,b);
return 0;
}
下表是各种转义符和对应的ASCII码:
转义符的说明和应用例程:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a=042;/*八进制的ASCII码 */
printf("八进制的042所代表的字符符号=%c\n",a);
printf("%c双引号%c\n",a,a);
return 0;
}
#include <stdio.h>
int main()
{
int age = 15;
int height = 162;
float weight = 82.5;
char isfat = 'y';
printf("年龄:%d 岁\n", age);
printf("身高:%d CM\n", height);
printf("体重:%f KG\n", weight);
printf("是否属于肥胖儿童:%c\n", isfat);
/*%d,%f,%c此类符号在后面会有讲解*/
return 0;
}
运行结果: