| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2450 人关注过本帖
标题:细节问题,不太明白
只看楼主 加入收藏
海之渊
Rank: 2
等 级:论坛游民
威 望:1
帖 子:37
专家分:29
注 册:2018-11-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
细节问题,不太明白
假如a,b,c的值都是5,那么表达式a++=b-2+c的值是多少?
搜索更多相关主题的帖子: 表达式 多少 
2019-02-15 20:22
海之渊
Rank: 2
等 级:论坛游民
威 望:1
帖 子:37
专家分:29
注 册:2018-11-3
收藏
得分:0 
最后的值我认为是9
2019-02-15 20:27
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
收藏
得分:4 
这个表达式是对的么?
2019-02-15 20:49
海之渊
Rank: 2
等 级:论坛游民
威 望:1
帖 子:37
专家分:29
注 册:2018-11-3
收藏
得分:0 
不对吗?这是我给别人举的一个例子,结果自己却糊涂了,求指教.
2019-02-15 20:51
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
收藏
得分:0 
我认为表达式是8诶

[此贴子已经被作者于2019-2-16 09:12编辑过]

2019-02-16 09:11
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
收藏
得分:4 
这个表达式跑不起来

126邮箱联系方式:no1xijin@126. com
2019-02-16 13:55
海之渊
Rank: 2
等 级:论坛游民
威 望:1
帖 子:37
专家分:29
注 册:2018-11-3
收藏
得分:0 
是啊,这是为什么?
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-02-16 16:15
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
收藏
得分:0 
++a=b-2+c
可以运行。
我大胆推测一下:
a++=b-2+c,中的a++在表达式中是一个常数,无法给常数赋值,自然就运行不了。为啥是常数呢,猜测为:a++先把变量取值出来,再进行加1运算即a++等价于a+1,其的结果是一个常数,而非变量。
++a=b-2+c,中的++a在表达式中是一个变量a,因此可以运行。为啥是是变量呢,猜测为:++a先把变量值加1,再将值存于变量a中即++a等价于a=a+1,将该表达式写全就是(a=a+1)=b-2+c,即先给变量a赋值a+1,再用b-2+c的值覆盖原来a的值。

观察以下代码的运行结果查看推测依据:
程序代码:
#include <stdio.h>
int main()
{ 
    int a,b,c;
    a=b=c=5;
    printf("1--%d\n",a+1);
    printf("2--%d\n",(a=a+1)=b-2+c); 
    printf("3--%d\n",a); 
    return 0;
}



126邮箱联系方式:no1xijin@126. com
2019-02-16 17:23
海之渊
Rank: 2
等 级:论坛游民
威 望:1
帖 子:37
专家分:29
注 册:2018-11-3
收藏
得分:0 
不对,
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-02-16 17:55
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
收藏
得分:0 
自己运行我上述代码试试看,上述的程序能跑起来,这怎么解释。
以下再给你一个代码,等号左边是逗号表达式的,依然能够运行。
程序代码:
#include <stdio.h>
int main()
{ 
    int a,b,c;
    a=b=c=5;
    (b,a)=1; // 逗号表达式
    printf("1--%d\n",a+1);
    printf("2--%d\n",(a=a+1)=b-2+c); 
    printf("3--%d\n",a); 
    return 0;
}

126邮箱联系方式:no1xijin@126. com
2019-02-16 19:08
快速回复:细节问题,不太明白
数据加载中...
 
   



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

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