c语言问号冒号判断顺序
……?……:……
式A?B:C值为:若A为真,则B;若A为假,则C。
但有一点是值得注意的,那就是问号表达式的结合性,问号表达式是从右往左的运算方向
尤其是当问号表达式嵌套使用时得注意这个问题,例如
代码:
int a=1,b=2,c=3,d=4;
printf("%d",a<b?a:c<d?c:d);
正确结果是:1
因为先执行的是c<d?c:d,会返回c,然后执行a<b?a:c
因此得到的结果就是1(可以在编译器上实验一下)
编程问号代表什么意思
问号是条件运算符的意思,跟冒号组合使用。条件运算符优先级高于赋值、逗号运算符,低于其他运算符。
表达式为:表达式1?表达式2:表达式3。先求解表达式1,若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
正则表达式@.*?@是什么意思
俩个@中间的.*?是非贪婪的匹配,点可以匹配任意字符,星号是前边的字符有0-n个均匹配,问号是则是0-1;至于两边的@,不是元字符,没什么意义,整体的意思应该是匹配任意的以@开始和结束的的字符串。
c++里一个单冒号代表什么意思
单个冒号有以下几种用法:1和2是c++独有的 1,表示继承,class A: public B 2,表示构造函数成员初始化开始, public A(): a(0){}假设class A有private 成员 int a; 3,在问号表达式中使用,a > b? a: b,和c语言含义没用区别 4,在结构体中使用,表示该成员只占若干bit而不是整型大小,和c语言含义相同 struct S{int i:3;}i只占用3个bit