小编Jay*_*Yay的帖子

为什么即使我通过引用传递,我的变量的值也不会改变

#include <iostream>

char toupper(char& letter){
    switch(letter){
        case 'a':
            return 'A';
            break;
        case 'b':
            return 'B';
            break;
        case 'c':
            return 'C';
            break;
        default:
            return letter;
        }
}

int main()
{

char labRat = 'a';
std::cout << toupper(labRat) << std::endl;
std::cout << labRat;

return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

#include <iostream>

char toupper(char& letter){
    switch(letter){
        case 'a':
            return 'A';
            break;
        case 'b':
            return 'B';
            break;
        case 'c':
            return 'C';
            break;
        default:
            return letter;
        }
}

int main()
{

char labRat = 'a';
std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
84
查看次数

三元运算符的右结合性

std::cout << (true ? "high pass" : false ? "fail" : "pass")
Run Code Online (Sandbox Code Playgroud)

是相同的

std::cout << (true ? "high pass" : (false ? "fail" : "pass"))
Run Code Online (Sandbox Code Playgroud)

既然三元运算符是右结合的,为什么我们不先进行右运算呢?不应该pass打印而不是high pass

c++ operators operator-precedence associativity

0
推荐指数
1
解决办法
498
查看次数