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;
 }
解释

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

运行结果显示如下
相关推荐
C语言小火车1 分钟前
红黑树(C/C++ 实现版)—— 用 “带配重的书架” 讲透本质
c语言·开发语言·c++·红黑树
阿里嘎多学长2 分钟前
2025-12-10 GitHub 热点项目精选
开发语言·程序员·github·代码托管
snow123f7 分钟前
Lambda 表达式怎么用
java·开发语言·线程
梓䈑8 分钟前
【C++】C++11(右值引用和移动语义、可变参数模板 和 包装器)
java·开发语言·c++
好评1249 分钟前
【C++】一篇吃透容器适配器三件套:从stack/queue/priority_queue到deque底层
c++·stl·queue·stack
LiamTuc11 分钟前
Java 抽象类详解
java·开发语言
计算机学姐12 分钟前
基于Python的高校后勤报修系统【2026最新】
开发语言·vue.js·后端·python·mysql·django·flask
GSDjisidi12 分钟前
日本IT行业|一些it資格证书分享解析,一篇通读
开发语言·面试·职场和发展
任子菲阳15 分钟前
学Java第五十五天——多线程&JUC
java·开发语言
yaoxin52112317 分钟前
265. Java 集合 - LinkedList vs ArrayList 插入性能实战对比分析
java·开发语言