1.sizeof();
sizeof()//是个单目运算符,用来计算操作数在内存中占据的字符数,其操作数既可以是括在圆括号中的类型标识符,其返回值是size_t即无符号正整数
sizeof();
(1).根据系统的不同 整数字节值不同
(2).sizeof();不是函数,是运算符
2.unsigned int num;
此时的num为整数变量 其二进制最高位不为符号位
3,类型强制转换
(1)printf按照%d,%f来解析二进制数据,不进行类型指定,就会出错。
(2)强制类型转换,会将类型转换成恰好的解析类型,就可以得到正确的结果例如printf(“%d,(int)1.0”); 才会输出正确的结果
(3)说明!强制转换所得到的只是中间变量,原变量值保持不变。强制转换是在cpu中的寄存器中并不是在内存中改变。
4,强制转换精读损失
(1)实数float往整数int转换的时候,会有精确度缺失。
(2)数据溢出,
unsigned char类型只有8个位 最高显示255
超过255便会溢出
#include<stdio.h>
#include<limits.h>//求极限值的头文件
void main()
{
printf("%d\n", UCHAR_MAX);//输出结果显示为255
printf("%d\n", CHAR_MAX);//输出的结果显示为127
int num = 128;
char ch = 65;
printf("%c\n", ch);
ch = num;
printf("%d\n", ch);//超出char的范围产生溢出char最大的范围是127
getchar();
}