需要声明的是:本篇来自《C Primer Plus》阅读整理,因为作者最近在看这本书学习c语言,本人也是萌新一个,有不足之处希望大家多多斧正。
int类型
1)类型大小
int类型占16位或32位,取值范围视计算机系统而异,一般取值范围为-32768~32767,一般而言,系统用一个特殊符号的值表示一个有符号的正整数。
2)声明变量
int a,b,c;//此为声明变量
int a=100;//此为初始化变量(就是为变量赋一个初始值)
1nt a,b=100; //该方式不推荐,容易让人搞混有没有给a赋值,实际a没有赋值
3)打印、输入int类型的值
printf("%d %o %x",a,a,a);//分别以10进制,8进制,16进制打印变量a的值
//要显示各进制数的前缀0、0x、0X,必须分别使用%#o,%#0x,%#0X
scanf("%d",&a);//输入
4)其他整数类型
c语言提供3个附属关键字修饰基本整数类型:short、long、和unsigned。
1.c语言整数类型从小到大排序为(有符号类型):short(也可以写成short int),int,long(long int),long long(long long int,c99标准新加入的),需要注意的是,更大类型的整数可以表示的整数范围更大,占用的存储空间也更大,但大小不一定比更小类型的大,一定不比更小类型的小。
2.unsigned表示该类型没有符号,这种类型与有符号类型表示的范围不同,例如:16位
unsighned int允许的取值范围是0~65535。这是因为用于表示正负号的位现在用于表示另一个二进制位,所以无符号整数可以表示更大的数。
3.sighned,添加在任何有符号类型的前面,强调使用有符号类型的意图。
4.现在个人计算机上最常见的设置是,long long类型占64位,long占32位,int占32或16位(根据计算机的自然字长而定),short占16位 。
5.各类型输出方式汇总
#include<stdio.h>
int main(){
short a=10;
int b=10;
long c=10;
long long d=10;
printf("%hd %ho %hx %hu\n",a,a,a,a,a);
/*依次为short类型正常输出格式,8进制,16进制,unsighned类型*/
printf("%d %o %x %u\n",b,b,b,b);
/*依次为int类型正常输出格式,8进制,16进制,unsighned类型*/
printf("%ld %lo %lx %lu\n",c,c,c,c);
/*依次为long类型正常输出格式,8进制,16进制,unsighned类型*/
printf("%lld %llo %llx %llu\n",d,d,d,d,d);
/*依次为long long类型正常输出格式,8进制,16进制,unsighned类型*/
return 0;
}
需要注意的是使用错误的转换说明会得到意想不到的结果,程序员还需要将打印的值与转换说明相对应,因为编译器不会识别这个错误。
字符类型
char 类型
1)类型大小及一些解释
char类型用于存储字符,但从技术层面看,char是整数类型,因为char存储的是整数而不是字符,通过ASCII码来进行转换。通常char类型被定义为8位的存储单元,也就是一个字节。
2)声明变量
char response;
char all latan;
char grade;
grade='A';//正确
grade="A";//错误,此时A是一个字符串
grade=A;//错误,此时A是一个字符串
3)打印、输入char类型的值
char a;
scanf("%c",&a);
printf("%c",a);
需要注意的是printf的转换说明决定了数据的显示方式,而不是数据的存储方式。也就是说用%d打出的字符,将以对应的ASCII码值被输出。
浮点类型
float、double、long double类型
1)类型大小及一些解释
float类型(单精度)至少能表示6位有效数字,通常系统储存一个浮点数要占用32位,其中8位用于表示指数的值和符号,剩下24位用于表示非指数部分及其符号。double类型(双精度),至少表示10位有效数字,一般情况下占用64位,long double类型用以满足比double类型更高的精度要求,c只保证long double类型至少与double类型的精度相等。
2)声明变量
float a;
double b;
long double c;
3)打印、输入浮点类型的值
float a;
double b;
long double c;
printf("%f %f %lf",a,b,c);
printf("%e %a %le");
/*用e和E可以打印指数记法的浮点数,如果系统支持16进制的浮点数,可以用a或A代替e或E*/
printf("%5.2f",a)//这里面的5代表最多输出5位,“.2”代表小数点后输出两位
复数和虚数类型
1)各复数和虚数类型
3种复数类型:float_Complex、double_Complex、long double_Complex
3种虚数类型:float_Imaginary、double_Imaginary、long double_Imaginary
Bool类型
用于表示布尔值,即逻辑值true和false。c语言用值1表示true,用值0表示false,它仅仅占据1位空间.