05 C语言数据类型
1、数据类型
编程语言对数据类型分为两派:一种认为要注重,一种认为可以忽视。
C语言类型
1、整数 : char < short < int < long < long long ,bool
2、浮点数:float < double < long double
3、指针
4、自定义
类型的不同
sizeof
1、运算符表示变量所占字节大小
2、运算符是在编译前生效,括号里面并不会真的执行
2、整数
#include<stdio.h>
int main(int argc,char const *argv[]){
printf("sizeof(char) = %d\n",sizeof(char));
printf("sizeof(short) = %d\n",sizeof(short));
printf("sizeof(int) = %d\n",sizeof(int));
printf("sizeof(long) = %d\n",sizeof(long));
printf("sizeof(long long) = %d\n",sizeof(long long));
}
char = 1、short = 2、long long = 8
int 类型 取决于寄存器的位数
3、整数的内部表达
采用补码的形式对整数进行存储,补码的意义就是正数+负数会得到一个溢出的0
对a取负 -> 2^n - a
4、整数的范围
unsigned 可以改变计算机对数据的看法,视为无符号类型。
补码的范围是 - 2^(n-1) ~ 2^(n-1)-1
10000000 - 01111111
5、整数的格式化
6、浮点类型
7、字符类型
char类型,如果按照%d的形式输出,则视为一个整数。如果按照%c的形式输入输出的话,则视为一个字符。
8、逃逸字符
9、类型转换
1、运算的过程中,如果两个数据类型不一致,会转换成范围更大的那一个。
2、printf会自动转换成int类型,所以输出char和short的时候需要%c & %hd。
3、scanf函数识别严格,必须按照%d,%c给对应的数据类型赋值。
4、强制类型转换当中,是创造新的值,并不会改变原有的变量。并且强制类型转换优先级高于四则运算。
10、逻辑类型
不要在赋值运算当中进行组合表达式
逗号表达式比赋值还要低,从逗号右边进行。