C语言问题提问
前者为38,后者为36
后者容易理解,a++,即先调用a进行运算,再自增1;但自增之前a=36已输出,故结果为6×6=36.
前者先对a进行了定义,但仍要先调用a=6计算6×6=36,这之后注意此时a=36;然后自增开始,先a++,a=37;再a++,a=38;直到此时“a=a++*a++; ”才运算结束,然后输出a=38.
此题关键在于弄清楚输出结果的时机以及“a++”与“++a”的区别
主要是理解a++是在语句执行结束才自增。
第一种情况,在a=a++*a++语句结束后,a自增两次为38,然后printf输出。
第二种情况,在printf语句时,a为36输出;在printf语句结束后,a自增两次为38.