关于C语言自增问题
发布网友
发布时间:2022-06-12 14:08
我来回答
共1个回答
热心网友
时间:2023-10-09 12:24
第一题挺简单的,++优先级是很高的(所有单目运算符的优先级都很高,仅次于扩号),所以要在所有++运算完之后再运算+法,也就是说,在运算+之前,i已经进行了两次自増,由3增到了5,然后再相加,k当然就等于10了。
第二题,你是不是看错题了?或者书印刷错误?这个k的值应该是8啊。C语言采用的是“最长匹配原则”,也就是在保证表达式有意义的前提下,从左到右尽可能多地将字符组成一个运算符,所以i+++(++i)等于是(i++)+(++i);i++是先引用后自増,运算完i++后,i变成4,但是i++表达式的值却是3,然后接着运算++i,这时是先自増后引用,i=4的前提下自増,i就变5了,所以++i的表达式的值是5,然后运算+法,所以之后,k=8,i=5。