A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

三目运算符的表达式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;
}

3 个回复

倒序浏览
可以,因为你的代码快结束时是printf函数去答应,代码快结束后局部变量全部销毁,两个代码快等同于两个printf函数,printf函数的返回值是整型,符合三目运算符表达式的要求规范,所以以上三目运算符是正确的!
回复 使用道具 举报
#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;
}




那为什么编译报错呢?
回复 使用道具 举报
#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;
}




那为什么编译报错呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马