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

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

运行结果显示如下
相关推荐
小青龙emmm1 天前
2025级C语言第四次周测题解
c语言·开发语言·算法
树在风中摇曳1 天前
【牛客排序题详解】归并排序 & 快速排序深度解析(含 C 语言完整实现)
c语言·开发语言·算法
minji...1 天前
算法---模拟/高精度/枚举
数据结构·c++·算法·高精度·模拟·枚举
Vic101011 天前
Java 序列化与反序列化:深入解析与实践
java·开发语言
Sirius Wu1 天前
开源训练框架:MS-SWIFT详解
开发语言·人工智能·语言模型·开源·aigc·swift
后端小张1 天前
【JAVA 进阶】Spring Cloud 微服务全栈实践:从认知到落地
java·开发语言·spring boot·spring·spring cloud·微服务·原理
从零开始学习人工智能1 天前
USDT区块链转账 vs SWIFT跨境转账:技术逻辑与场景博弈的深度拆解
开发语言·ssh·swift
星释1 天前
Rust 练习册 31:啤酒歌与字符串格式化艺术
开发语言·网络·rust
百***58841 天前
MacOS升级ruby版本
开发语言·macos·ruby
执笔论英雄1 天前
【大模型训练】forward_backward_func返回多个micro batch 损失
开发语言·算法·batch