正文

C++中的i++和++i的问题2007-05-25 13:49:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/otot/26132.html

分享到:

搞了半天区分不明白,现在总算知道一点了,记录下来。 main()     {                     int   i=1,k;                     k=i++;                     printf("k=%d,i=%d\n",k,i)   ;                         i=1;                     k=++i;                     printf("k=%d,i=%d\n",k,i)   ;                     i=1;                     i=i++   ;                     printf("i=%d\n",i)   ;                     i=1;                     i=++i;                     printf("i=%d\n",i)   ;                     i=1;                     printf("i++=%d\n",i++);                     i=1;                     printf("++i=%d\n",++i);                     i=1;                     printf("(i++)+(i++)=%d\n",(i++)+(i++));                     i=1;                     printf("(++i)+(++i)=%d\n",(++i)+(++i));                     getch();     }     结果:     k=1,i=2     k=2,i=2     i=2     i=2     i++=1     ++i=2     (i++)+(i++)=3     (++i)+(++i)=5         说明:     k=i++     k=i,i=i+1           而++i等价于k=(i=i+1)         在printf("i++=%d\n",i++);这种情况下i=i;         printf("i++=%d\n",++i);这中情况下temp=i+1,i=temp     printf("(i++)+(i++)=%d\n",(i++)+(i++));这中情况下temp1=i,temp2=i+1,i=temp1+temp2            temp在这里面是一个临时空间 其他的: int i=3;printf(“%d”,-i++);(A)3 (B)4 (C)-3 (D)-4 分析:此题考查运算符的优先级,负号运算符和++运算符同优先级,而结合方向为“自左至右”,即-i++相当于-??i++??,所以先取出i的值3,输出-i的值-3,然后i增值为4,而不是i先增值为4,然后输出-4,所以答案选择C。 求1+2!+3!+...+20!的和            main()            {            float n,s=0,t=1;            for(n=1;n<=20;n++)             {             t*=n;   //t=t*n             s+=t;   //s=s+t             }            printf("1+2!+3!...+20!=%e\n",s);            }

阅读(5264) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册