得空看一下 2021-01-16 08:23 采纳率: 33.3%
浏览 272
已采纳

C++宏定义字符串,再将宏与相同的引号引起来的字符串“123”比较时,会有问题吗?

【问题描述】

定义宏#define  STR  “123”

假设有语句   if(STR==“123”)

那么编译可以通过吗,会有什么问题吗?

【自我思考】

个人感觉编译可以通过,看到说字符串比较的时候是指针比较,所以比较会有问题。我了解字符串比较有函数strcmp,但是好像又有人说字符串比较是可以用==号的,所以还是有疑问。

  • 写回答

5条回答 默认 最新

  • liudachu 2021-01-16 08:33
    关注

    比较两个字符串的大du小用strcmp函数,这个函数内是依次比较两个字符串的每个字符,一直到遇到不同的字符或某个字符串的结尾为止。

    而如果ch1 == ch2这样对比的是两个字符串的首地址是否相同,而不是字符串的内容按照字典序的大小。
     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 求给定范围的全体素数p的(p-2)的连乘积
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页