C语言i++

来源:百度知道 编辑:UC知道 时间:2024/06/17 04:03:23
main()
{int i=1;int j=1;
printf("%d\n",(i++)*i);
printf("%d",(j++)*(j++));
}
帮分析下i,j的变化

首先应该知道 ++i与i++的区别
前者表示i的值加1之后在进行其他的运算,
后者表示i进行其他运算后i的值在加1.
第一个printf语句,首先因为优先级的关系先计算i++ 然后才与i相乘,此时的i因为经过i++的运算值变为2了,所以第一个语句的结果是2,
一个printf语句,前半部分就不说了,跟i的情况一样;后面带括号的j此时也是2,不同的是是j又进行了j++,但j++的意思j参与运算后的值加1,所以此时j还是以2进行运算的,结果还是2

输出为
2
2