第四章
运算符
除法运算符:浮点类型的除法运算得出一个浮点结果,而整数除法运算得出一个整数结果。整数不能有小数,因此,在C语言中,整数除法的运算中小数部分都被丢弃,这个过程称为截尾。
注意:计算机不能真正用整数去除浮点数,所以编译器将两个操作数转变一致的类型。在这种情况下,做除法运算之前将整数转为浮点数。
增量和减量运算符
假设x=5,则
- y=++x*++x: y=49,x=7 先进行两次x的自增1,x为7。++x为6,此时++x(后面一个)为x自增后的7,再是7*7=49.
- y=x++*x++: y=25,x=7 先取x的值进行“*”运算,再进行两次自增1。先是5*5=25,再x++为6,此时(后面一个)为x自增后的7。
实例:
a=6
a=(++a) + (a++) -------a=a+(a++)------>a=7+7
a=15 a=a++=14+1=15
a=6
a=a+(++a) + (--a) - (a++)
a=7+7+(--a) - (a++)
=14+6 - (a++)
=20-6+1
=15
逻辑运算符
&&(只要一个为假,即为假) 逻辑与 a && b
|| (一真一假即为假) 逻辑或 a || b
优先级比较
从低到高依次为:赋值运算符、&&和||、关系运算符、算术运算符、!(非)
数据类型强制转换运算符
- 自动类型转换
- 在表达式里,有符号和无符号的char和short类型都将自动转换为int
- 在包含两种数据类型的任何运算里,两个值都被转换成两种类型里较高的级别,称为提升
- 类型级别从高到低:double、float、long、int
- 在赋值语句里,计算的最后结果被转换成将要被赋予值的那个变量的类型,这个过程可能导致提升,也可能导致降级
- 当作为函数的参数被传递时,char和short会被转化为int,float会被转换为double。
第五章 选择结构的程序设计
用if语句设计选择结构程序
if语句:1是真,0是假;if else;嵌套if
例:
#include<stdio.h>
int main(void) {
int age;
scanf("%d", &age);
if(age>18) {
printf("您已经是成年人了!");
}
else {
printf(“您还是个未成年人!”);
}
}
switch语句
#include<stdio.h>
int main(void){
int a;
scanf("%d", &a);
switch(a) {
case 0:
printf("输入了0\n");
break;//不使用break会向下漏水
case 1:
printf("输入了1\n");
break;
default:
printf("输入了其他的\n");
}
}
goto语句:可以转向同一函数内任意指定位置执行
例:
#include<stdio.h>
int main(void) {
int x;
scanf("%d", &x);
if(x<0) {
g:
printf("负数\n");
}
if(x>0) {
printf("正数\n");
goto g:
}
}