| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 634 人关注过本帖
标题:a++ 和++a
只看楼主 加入收藏
To_bekill
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2010-2-25
结帖率:0
收藏
已结贴  问题点数:1 回复次数:3 
a++ 和++a
程序1
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)+(a++);
    printf("x=%d\n",x);
printf("a=%d\n",a);
}

运行结果
x=6
a=5


程序2
#include<stdio.h>
void main()
{
int a=3,x;
x=(++a)+(a++);
    printf("x=%d\n",x);
printf("a=%d\n",a);
}

运行结果
x=8
a=5




程序3
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)+(a++)+(++a);
    printf("x=%d\n",x);
printf("a=%d\n",a);
}

运行结果
x=10
a=6


程序4
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)+(++a)+(a++);
    printf("x=%d\n",x);
printf("a=%d\n",a);
}

运行结果
x=12
a=6
这里为什么是12不是11啊?第一个(a++)=3,然后(++a)等于4,后面的那个(a++)不是也等于4么?可答案为什么是12啊???

程序5
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)*(a++);
    printf("x=%d\n",x);
printf("a=%d\n",a);
}

运行结果
x=9
a=3



程序6
#include<stdio.h>
void main()
{
int a=3,x;
x=(++a)*(a++);
    printf("x=%d\n",x);
printf("a=%d\n",a);
}

运行结果
x=16
a=5


程序7
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)*(a++)*(++a);
    printf("x=%d\n",x);
printf("a=%d\n",a);
}

运行结果
x=36
a=6



程序8
#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)*(++a)*(a++);
    printf("x=%d\n",x);
printf("a=%d\n",a);
}

运行结果
x=64
a=6

第一个(a++)的值都为3,(++a)的值为4,然后(a++)=4,可结果!!!!!!!!!!!!!
搜索更多相关主题的帖子: void include 
2010-03-04 11:58
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
不要去想这些无聊的问题~~~你知道哪个是先引用后加,哪个是反过来就行了。。。
2010-03-04 14:15
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
想要得到正确的结果,分步写就行了,不要写在一个表达式中。否则,后果不可预料(不同编译器还可能是不同的结果)

★★★★★为人民服务★★★★★
2010-03-04 14:45
雾里偷花
Rank: 2
来 自:社会
等 级:论坛游民
帖 子:45
专家分:33
注 册:2009-10-27
收藏
得分:0 
不懂
2010-03-04 15:07
快速回复:a++ 和++a
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012100 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved