C语言中的三元条件算子
C语言中的三元条件算子,c,turbo-c,C,Turbo C,(k
(k
此特定表达式给出编译时错误,表示需要左值。问题在于k++
。无法理解这个表达中的错误 输入
k < m ? k++ : m = k;
更好地利用
if (k < m) {
k++;
} else {
m = k;
}
if(k
相反
您可以在此处查看C优先级表,例如:
术语“左值”和“右值”主要是指“作业左边可以写的东西”和“作业右边只能写的东西”。“到岸价”
一个更容易理解
语义的示例:
:对于uint8\t k
,什么是条件?k:k+1
平均值
- 前面的部分
是一个左值,类型为k
uint8\u t
- 不过,后一个表达式
有点棘手。作为算术表达式的结果,它是一个右值。而且它不是一个k+1
,而是一个uint_8
和uint8\u t
的常见类型是int
。那么在总体int
是一个类型为条件下?k:k+1
的右值表达式int
k < m ? k++ : m = k;
更好地利用
if (k < m) {
k++;
} else {
m = k;
}
if(k
相反
您可以在此处查看C优先级表,例如:
术语“左值”和“右值”主要是指“作业左边可以写的东西”和“作业右边只能写的东西”。“到岸价”
一个更容易理解
语义的示例:
:对于uint8\t k
,什么是条件?k:k+1
平均值
- 前面的部分
是一个左值,类型为k
uint8\u t
- 不过,后一个表达式
有点棘手。作为算术表达式的结果,它是一个右值。而且它不是一个k+1
,而是一个uint_8
和uint8\u t
的常见类型是int
。那么在总体int
是一个类型为条件下?k:k+1
的右值表达式int