C程序求详解

来源:百度知道 编辑:UC知道 时间:2024/06/02 02:13:49
小弟初学C语言,在i++与++i 这个地方老搞混淆,现有以下程序,将各位高手以这个案例 详细解释一下 这段程序的执行过程。 不胜感激。

main()
{
int j;
for(j=10;j>3;j--)
{if(j%3) j--;
--j; --j;
printf("%d",j);
}
}

楼主的例程没有办法区分i++与++i的不同:
++i表示先对i加1再执行关于i的操作,如:i=2,++i/3=1
而i++表示先执行关于i的操作再对i加1:i=2,i++/3=0
这段程序可以表示它们的区别:
main()
{
int i,j;
for(i=0,j=0;i<10;)
{
printf("i++=%d\n",i++);
printf("++j=%d\n",++j);
}
}
如果你用调试软件单步执行会更清楚。

4. 自增、自减运算符

自增1,自减1运算符:自增1运算符记为“++”,其功能是使变量的值自增1。

自减1运算符记为“--”,其功能是使变量值自减1。

自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式:

++i i自增1后再参与其它运算。

--i i自减1后再参与其它运算。

i++ i参与运算后,i的值再自增1。

i-- i参与运算后,i的值再自减1。

在理解和使用上容易出错的是i++和i--。 特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。

【例3.16】

main(){

int i=8;

printf("%d\n",++i);

printf("%d\n",--i);

printf("%d\n",i++);

printf("%d\n",i--);

printf("%d\n&qu