| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 949 人关注过本帖
标题:关于?:的相关问题
只看楼主 加入收藏
Deza_Mearine
Rank: 2
等 级:论坛游民
帖 子:9
专家分:24
注 册:2017-11-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
关于?:的相关问题
#include<stdio.h>
int main(void)
{
    int a, b, c;
    int x=5, y=10;
    a=(--y=x++)?-y:++x;
    b=y++;
    a=x;
    printf("%d, %d, %d", a, b, c);
    return 0;
}

a = (- - y = x + +) ? - y: + + x;
这句为什么运行不了,不是括号中的是是非0就等与- y
0就是+ + x 么
是不是因为- - y的原因呢
搜索更多相关主题的帖子: int return 运行 括号 原因 
2017-12-05 18:16
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
收藏
得分:10 
int x = 3;
int a = x++;        //a = 3
int b = ++x;        //b = 4

那句 --y = x++ 其实就相当于 y = x++
因为 y 已经等于 x++ 了,所以现在 y 的值是 5
-y 也就是 -5
括号里返回 true,则 a = -5

可能是我水平不够,比起很多个 *,我更讨厌三元运算符,好好写个 if else 是能死吗?
lz 的帖子让我对三元运算符又有了新的认识。。。

[此贴子已经被作者于2017-12-5 19:04编辑过]

2017-12-05 19:02
Deza_Mearine
Rank: 2
等 级:论坛游民
帖 子:9
专家分:24
注 册:2017-11-14
收藏
得分:0 
这是一道题目,我也很无奈,
谢谢你的解释,我现在知道了,
可是编译器运行不了 ?:那句,是什么原因呢?
2017-12-05 19:49
Deza_Mearine
Rank: 2
等 级:论坛游民
帖 子:9
专家分:24
注 册:2017-11-14
收藏
得分:0 
回复 2楼 Jonny0201
这是一道题目,我也很无奈,
谢谢你的解释,我现在知道了,
可是编译器运行不了 ?:那句,是什么原因呢?
2017-12-05 19:51
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
收藏
得分:0 
回复 4楼 Deza_Mearine
可能编译器不同,我这里可以通过
2017-12-05 21:22
Deza_Mearine
Rank: 2
等 级:论坛游民
帖 子:9
专家分:24
注 册:2017-11-14
收藏
得分:0 
回复 4楼 Deza_Mearine
好的,谢谢了啊
2017-12-05 22:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:10 
以下是引用Jonny0201在2017-12-5 21:22:28的发言:

可能编译器不同,我这里可以通过

楼主说的是“这句为什么运行不了”,不是编译不了,虽然我还是没明白“运行不了”是个什么意思,每次运行时就停电?

回正题,你能编译通过的话,只可能是你用的不是C编译器(很可能是C++编译器),++y在C语言中属于右值,不可以被赋值。很难想象有C编译器会出这种低级错误。
2017-12-05 22:07
Deza_Mearine
Rank: 2
等 级:论坛游民
帖 子:9
专家分:24
注 册:2017-11-14
收藏
得分:0 
回复 7楼 rjsp
运行不了就是那句话编译器提示有错误的意思,我刚学习C语言,可能有些相关的术语还不太准确
2017-12-05 23:03
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
收藏
得分:0 
回复 7楼 rjsp
你说的没错,我在选择语言的时候默认选择都是 C++,因为也能运行 C 的代码。对于 C 的基础,我很差
所以并不是编译器问题
关于能否过编译的问题,楼主以该层主的回答为准
如果楼主用的是 VS 的话,可以尝试把后缀改成 .cpp
2017-12-06 00:51
快速回复:关于?:的相关问题
数据加载中...
 
   



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

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