黑马程序员技术交流社区
标题:
三目运算符的表达式2和表达式3可以是语句块吗?
[打印本页]
作者:
qiujunwen123
时间:
2015-12-12 23:32
标题:
三目运算符的表达式2和表达式3可以是语句块吗?
三目运算符的表达式2和表达式3可以是语句块吗?
我试了两个语句是可以执行的,语句块好像不行,有没有成功的?
#include<stdio.h>
int main(){
int a,b;
scanf("%d",&a);
scanf("%d",&b);
int temp=0;
//尝试三目运算符是否支持语句块?
a<b?{temp=a;a=b;b=temp;printf("%d>%d",a,b)}:{printf("%d>%d",a,b)}
//根据a,b大小,进行大数在前,小数在后输出
return 0;
}
作者:
alen2015
时间:
2015-12-13 00:29
可以,因为你的代码快结束时是printf函数去答应,代码快结束后局部变量全部销毁,两个代码快等同于两个printf函数,printf函数的返回值是整型,符合三目运算符表达式的要求规范,所以以上三目运算符是正确的!
作者:
qiujunwen123
时间:
2015-12-13 10:30
#include<stdio.h>
int main(){
int a,b;
scanf("%d",&a);
scanf("%d",&b);
int temp=0;
//尝试三目运算符是否支持语句块?
a<b?{temp=a;a=b;b=temp;printf("%d>%d",a,b);}:{printf("%d>%d",a,b);}
//根据a,b大小,进行大数在前,小数在后输出
return 0;
}
那为什么编译报错呢?
作者:
qiujunwen123
时间:
2015-12-13 10:32
#include<stdio.h>
int main(){
int a,b;
scanf("%d",&a);
scanf("%d",&b);
int temp=0;
//尝试三目运算符是否支持语句块?
a<b?{temp=a;a=b;b=temp;printf("%d>%d",a,b);}:{printf("%d>%d",a,b);}
//根据a,b大小,进行大数在前,小数在后输出
return 0;
}
那为什么编译报错呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2