知识点1【数据类型转换】
1、自动类型转换
案例:有符号 和无符号的转换
void test02()
{
int data1 = -20;
unsigned int data2 = 10;
//有符号data1和无符号data2参加计算的时候
//会先将data1转换成无符号(-20的补码很大的正数)
//很大的数 + 10 必然 >0
if(data1+data2 > 0)
{
printf(">0n");
}
else if(data1+data2<0)
{
printf("<0n");
}
}
运行结果:>0
案例:int double的转换
void test03()
{
int data1 = 10;
printf("%dn",sizeof(data1+3.14));//8字节
}
int main(int argc,char *argv[])
{
test03();
return 0;
}
案例:char 和short的类型转换
void test04()
{
char ch = 'a';
short data = 20;
//由于char short自身字节数 过小 很容易溢出
//所以 只要char short参加运算 都会将自身转换成int
printf("%dn", sizeof(ch + ch));//4
printf("%dn", sizeof(ch + data));//4
printf("%dn", sizeof(data + data));//4
}
案例:强制类型转换
void test05()
{
float x = 3.14f;
int j = 0;
//强制 类型转换 只是临时的转换 当前语句有效 在后面的语句中不会更改x的值
j = (int)x;
printf("j = %d,x = %fn", j, x);//
}
int main(int argc,char *argv[])
{
test05();
return 0;
运行结果:
知识点2【运算符】
1、算术运算符
a /b (a,b可以为整数,也可以为浮点数 如果a b为整数 表示取整 如果 a b只要有一个为浮点数 则表示除法运算) 取整 %取余 必须为整数
void test06()
{
printf("%dn", 5/2);//取整 2
printf("%dn", 5%2);//余数 1
}
int main(int argc,char *argv[])
{
test06();
return 0;
}
运行结果:
案例:键盘