早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C关于自加结果#includevoidmain(){intj=5,k=5,h=5,q,r,s;q=(++j);r=(++k)+(++k);s=(++h)+(++h)+(++h);printf("%d,%d,%d\n",q,r,s);}运行结果是6,14,22为什么S=22而不是24?

题目详情
C 关于自加结果#include void main() { int j=5,k=5,h=5,q,r,s; q=(++j); r=(++k)+(++k); s=(++h)+(++h)+(++h); printf("%d,%d,%d\n",q,r,s); } 运行结果是6,14,22 为什么S=22而不是24?
▼优质解答
答案和解析
上面那位分析是正确的. 不过他的说法有些问题,因为你使用的是VC6.0的编译环境. 这题目S=7+7+8=22的结果.计算编译规则是按照((hh1+)(hh1+)+)hhh1+ 这里的h为原h,hh为h+1,hhh为hh+1.数值. 简单的说计算机先将第一个(++h)和第二个(++h)读入寄存器,完成两次自加后等于7. 然后两7相加为14,将14存入一个缓存中,第三个(++h)得值为8, 最后14+8等于22. 希望答案你满意