标题:求助大佬(其实这个不是大佬都行!!太萌新的问题了
只看楼主
喜风
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2022-10-2
结帖率:33.33%
已结贴  问题点数:20 回复次数:9 
求助大佬(其实这个不是大佬都行!!太萌新的问题了
我想用C语言算逗号表达式,就是这个(a=2,b=5,a+b++,a+b)的结果,然后自信地敲了一串代码
#include<stdio.h>
int main()
{
int a,b,c;
a=2;
b=5;
c=(a=2,b=5,a+b++,a+b);
printf("%d\n",c);
return 0;
}

当然这一串狗屁不通的代码是没有什么好结果的,结果就是没有结果,都运行不了。。。。
搜索更多相关主题的帖子: 代码 printf int main 结果 
2022-10-02 22:31
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:5 
2022-10-03 07:53
snowman666
Rank: 1
等 级:新手上路
帖 子:15
专家分:7
注 册:2022-9-3
得分:5 
我也想问一下,第三个表达式a+b++还是等于7,但这时b变成6了,所以才在第四个表达式a+b输出8。我想问一下是这样吗
2022-10-03 19:46
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
回复 3楼 snowman666
对,评估值 与 副作用 是两个概念。
比如 int a = 0;
那么 a++ 这个表达式的评估值是 0,副作用是 a 的值变为了1。
2022-10-03 20:50
喜风
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2022-10-2
得分:0 
回复 2楼 吹水佬
为什么我的运行不出来
2022-10-03 21:04
喜风
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2022-10-2
得分:0 
回复 2楼 吹水佬
不过还是非常感谢您的帮助!!!
2022-10-03 21:05
喜风
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2022-10-2
得分:0 
回复 4楼 rjsp
谢谢您!!!
2022-10-03 21:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 7楼 喜风
主要是大家理解不了你说的“都运行不了”是什么意思。
如果编译失败,那你应该贴出编译器给出的错误信息;
如果运行报错,那你应该贴出报错信息;
如果运行后控制台界面一闪而过,那也应该说“运行成功,但……”。

你的行为就像跟医生说“我有病”,但死活不肯说是头痛还是脚疼,却让医生开药一样
2022-10-04 09:10
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:101
专家分:643
注 册:2021-7-1
得分:5 
既然是逗号表达式,c=(a=2,b=5,a+b++,a+b);把表达式的每句都执行一遍呗,返回最后表达式的值,这也没什么错误,合规合法。
2022-10-04 10:27
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
等价于
a=2;
b=5;
a+b++;
c=a+b;

/images/2011/147787/2011051411021524.jpg" border="0" />
2022-10-10 14:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510185-1-1.html




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

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