1、数据类型的分类-掌握
数据类型
2、基本数据类型-掌握
整型 signed(有符号:正负数) unsingned(无符号数 正数)
逻辑类型 bool (true、false)
bool 不是基本类型需要引入 #include #include int main(){ bool a; a =true; if(a){ printf("true %d",a); }else{ printf("fasle %d",a); }}
** gcc -E bool.c -o bool.i** 查看引入的stdboo.h
# 868 "/usr/include/stdio.h" 3 4# 2 "bool.c" 2# 1 "/usr/lib/gcc/x86_64-linux-gnu/7/include/stdbool.h" 1 3 4# 3 "bool.c" 2# 3 "bool.c"int main(){# 4 "bool.c" 3 4 _Bool# 4 "bool.c" a;a =# 5 "bool.c" 3 4 1# 5 "bool.c" ; if(a){ printf("true %d",a); }else{ printf("fasle %d",a); }}大家可以使用 vim /usr/lib/gcc/x86_64-linux-gnu/7/include/stdbool.h 跟进去看一下系统是怎样实现的bool
字符型 char
类型 长度 值域
char 1 -128~127 或0~255
signed char 1 -128~127
unsigned char 1 0~255
使用char数据类型的变量需要特别注意数据类型的值域,防止数据越界char c1=128; //出错 数据越界char c1=129; //出错 数据越界unsigned char c2=-1; //出错 数据越界#include int main(){ unsigned char a =1; printf("char a = %d,%c ",a,a); return 0;}
short类型
类型 长度 值域
short(signed short) 2 -32768~32767
unsigned short 2 0 ~65535
int 类型
类型 长度 值域
int(signed int) 4 -2147483648~2147483647
unsigned int 4 0~4294967295
#include #include int main(){ printf("%ld,%ld,%ld",sizeof(char),sizeof(short),sizeof(int)); printf ("char:%d - %d",SCHAR_MIN,SCHAR_MAX); printf ("short:%d - %d",SHRT_MIN,SHRT_MAX); printf ("int:%d - %d",INT_MIN,INT_MAX); return 0;}1,2,4char:-128 - 127short:-32768 - 32767int:-2147483648 - 2147483647如果使用 %d 会出现“format‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long int’ [-Wformat”原因: %md, m为指定的输出字的宽度,如果数据位数小于m则左端补以空格,若大于m,刚按实际位输出%ld ,输出长度整型数据
实型 float double
枚举型 enum**二、构造类型:**数组结构体 struct共同体 union**三、指针类型****四、空类型 void**