C++之布尔类型和类型

2018-03-30  本文已影响130人  程序手艺人

布尔类型

三目运算符

#include <stdio.h>
int main() {

    int a = 1;
    int b = 2;
    (a < b ? a : b) = 3;

    printf("a=%d, b = %d\n", a, b);
}
t4-1.c: In function ‘main’:
t4-1.c:6:21: error: lvalue required as left operand of assignment
     (a < b ? a : b) = 3;

正常运行: a=3, b = 2

原因分析

注意: 三目运算符可能返回的值如果有一个是常量值,则不能作为左值使用.

C++中的引用

图1.png
int a = 4;
int& b = a;   //b为a的别名
b = 5;         //操作b就是操作a 

注意:普通引用在定义时必须用同类型的变量进行初始化

int a = 1;
int b = 2;
(a < b ? a : b ) = 3 ; // 正确, 返回a或b的引用,可作为左值
(a < b ? 1 : b ) = 4; // 错误,返回1或b的值,不能作为左值

小结

上一篇 下一篇

猜你喜欢

热点阅读