C++ Primer(第5版) 练习 4.23
练习 4.23 因为运算符的优先级问题,下面这条表达式无法通过编译。根据4.12节中的表(第147页)指出它的问题在哪里?应该如何修改?
string s = "word";
string p1 = s + s[s.size() - 1] == 's' ? "" : "s";
环境:Linux Ubuntu(云服务器)
工具:vim
代码块
/*************************************************************************
> File Name: ex4.23.cpp
> Author:
> Mail:
> Created Time: Tue 06 Feb 2024 11:31:29 AM CST
************************************************************************/
#include<iostream>
using namespace std;
int main(){
string s = "word";
string p1 = s + ((s[s.size() - 1] == 's') ? "" : "s");
cout<<p1<<endl;
return 0;
}
解释
条件运算符级别较低,需要加括号