您的位置:首页 > 编程语言 > C语言/C++

C和C++中三目运算符对比

2016-01-23 22:10 274 查看

比较

C中三目运算符返回的是变量的值,三目运算符不能作为左值使用

C++中三目运算符返回的是变量的引用,所以既可以作为左值也可以作为右值使用

#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
a>b?a:b = 10;//直接给表达式的返回值赋值
printf("%d\n",a);
printf("%d\n",b);
getchar();
return 0;
}


警告:当三目运算符有可能返回常量时,返回的是值,也就是如下a>b?1:b = 1;表达式编译不过

C中三目运算符如何返回变量

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a = 1;
int b = 2;
*(a>b?&a:&b) = 10;
printf("%d\n",a);
printf("%d\n",b);
return 0;
}


让表达式返回指针,然后通过指针修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: