运行结果是3 2 -1
&&运算符的判断逻辑是如果前面的为真,那么需要判断后面的,同为真,才返回真。
如果前面的为假,那么后面的运算不需要执行,直接返回假。
++i 的运算逻辑是先执行i=i+1的 *** 作,然后对i之后的值进行判断
i++的运算逻辑是先进行值i的判断,然后执行值的增加i=i+1。
因此,运行的逻辑是这样的:
z=3开始进行判断是否大于0,如果是进行自减变为2,然后判断x+1后的值是否小于5,如果是的话,那么y进行自减1。
因此第一遍循环之后的值z , x , y 分别是
2,1,4
第二遍循环之后的值z,x,y分别是
1,2,3
第三遍循环之后的值z,x,y分别是
0,3,2
第四遍循环的时候,z--小于0为假,不进行++x的运算,因此z,x,y的值为
-1, 3, 2
在这个题目中,上面的自定义函数prtv实际上是虚晃一q,因为在主函数中并没有调用这个自定义函数。在主函数中,定义的指针变量初始化为指向a[1],然后在输出语句中因为指针先后移一位然后再取他的值,所以,程序运行的结果是输出一个数字2,图中写出的结果是正确的。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)