1.C语言中条件运算符的优先级高于赋值运算符。
条件运算符的结合方向为“自右向左”。 还有自右向左运算的有:赋值运算符,单目运算符。
a.如条件表达:
y = x > 10? x / 10 : x > 0 ? x : - x 从右至左结合,等价于:
y = x > 10? x/10 : (x > 0? x :-x)
b.如赋值表达:
a=1,b=2,c=3
a+=b*=c 从右往左运算,所以先算b=b*c,然后再算a=a+b;
所以整体就是:a=a+(b*c) 结果为7
c.如单目表达:
*p++,这时*和++同级别,先算右边,再左边。
所以*p++等价于*(p++),而不是(*p)++。
2.C语言中强行赋值转换类型不遵循四舍五入。
如 x=4.9
printf("%d\n",(int)x) 结果为:4
3.在Xcode编译器中,在连续使用两次getchar函数时,输入的值中间不应该有 “,”或者有空格
例如:
char c1, c2; c1 = getchar(); c2 = getchar(); printf("%d%d\n",c1,c2);
a.若输入:ab b.若输入:a,b
则输出:97,98 则输出:97,,
4.利用putchar输出一些他叔的控制符。 输出一般的字符:putchar(""); //中间为双引号
putchar(‘\n‘); 表示输出一个换行; 输出控制符:printf(‘‘); //中间为单引号
putchar(‘\r‘); 表示输出回车;
putchar(‘\b‘); 表示输出退格;
5.scanf函数与printf函数
scanf("%d%c%f",&a,&b,&c); //注意,scanf函数""中间的没有逗号,printf函数有。
printf("%d,%c,%f",a,b,c);