本文目录一览:
C语言的学习问题 44 (sj5-x22)
强制类型转换运算符将一个表达式转换成所需类型:例如
(double) (将a转换成double类型)
(int)(x+y) (将x+y的值转换成整型)
(float)(5%3)(将5%3的值转换成float)
即其一般形式为:
(类型名)(表达式)
表达式要用括号括起来,如果不是表达式,则不需要括号括起来,所以选项C错了
C语言表达式
执行到那一句才有相应的效果,问号表达式可以改写成if-else:
x = a b ? i++ : i++;
等同于:
if(a b)
x = i++;
else
x = i++;
所以最后x等于3,i自增了一次等于4。
为什么一定要去研究那些没用的旮旯呢,我从来不记什么结合方向和运算符优先级别,对于问号表达式,我只知道:
x = a b ? i++ : i–;
如果a b,那么x = i++,否则x = i–,而整个表达式取了哪一个i的值,那个i的相关副作用运算(如果有的话,比如自增自减)才发生作用。如果你实在想不透就把它改写成上面那样的if-else语句,一目了然,没必要学孔已己样咬文嚼字在那些拐角旮旯里浪费时间。
BTW:你们的考试考运算符结合方向?天……
C语言 44题为什么等于3
因为p1与p2都是指向同一数组的指针,p1-p2就是两者之间相隔的元素个数,a[2]和a[5]相差3个元素,所以结果为3
原创文章,作者:MRER,如若转载,请注明出处:https://www.506064.com/n/134557.html