C++ //练习 4.23 因为运算符的优先级问题,下面这条表达式无法通过编译。根据4.12节中的表(第147页)指出它的问题在哪里?应该如何修改?

C++ Primer(第5版) 练习 4.23

练习 4.23 因为运算符的优先级问题,下面这条表达式无法通过编译。根据4.12节中的表(第147页)指出它的问题在哪里?应该如何修改?

cpp 复制代码
string s = "word";
string p1 = s + s[s.size() - 1] == 's' ? "" : "s";
环境:Linux Ubuntu(云服务器)
工具:vim
代码块
cpp 复制代码
/*************************************************************************
	> 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;
 }
解释

条件运算符级别较低,需要加括号

运行结果显示如下
相关推荐
basketball6161 分钟前
C++ 中的 ptrdiff_t 详解
开发语言·c++
wunaiqiezixin8 分钟前
互斥锁与自旋锁的区别
c++
月亮邮递员61617 分钟前
Markdown语法总结
开发语言·前端·javascript
printfLILEI18 分钟前
php中的类与对象以及反序列化
linux·开发语言·php
曹牧18 分钟前
C#:主线程能够捕获到子线程中的异常
开发语言·数据库·c#
代码中介商19 分钟前
深入解析STL中的stack、queue与priority_queue
开发语言·c++
彦为君24 分钟前
JavaSE-07-异常机制
java·开发语言·后端·python·spring
OxyTheCrack40 分钟前
【Golang】简述make与new内置函数以及两者的区别
开发语言·golang
Rain5091 小时前
mini-cc 的 MCP 协议:给 AI 装个 USB-C 接口
c语言·开发语言·前端·人工智能·架构·node.js·ai编程
华科大胡子1 小时前
AI开发者的网络卡点:Anthropic连接超时
开发语言·php