C等于常量字符串

 手机用户2502870065 发布于 2022-12-10 05:43
  • php
  • 以下比较是否保证是真的

    "hello world"=="hello world";
    

    此外,以下始终保证是假的吗?

    char a[] = "hello world";
    a == "hello world";
    

    Michael Burr.. 8

    要清楚 - 在两种情况下,您都在比较指针,而不是实际的字符串内容.

    对于

    "hello world"=="hello world";
    

    允许比较是truefalse.C标准在6.4.5"字符串文字"中说:

    如果这些数组的元素具有适当的值,则这些数组是否不同是未指定的.

    因此,该标准允许文字的存储相同或不同.

    对于

    char a[] = "hello world";
    a == "hello world";
    

    比较将永远是false因为数组的地址a必须不同于字符串文字的地址.

    1 个回答
    • 要清楚 - 在两种情况下,您都在比较指针,而不是实际的字符串内容.

      对于

      "hello world"=="hello world";
      

      允许比较是truefalse.C标准在6.4.5"字符串文字"中说:

      如果这些数组的元素具有适当的值,则这些数组是否不同是未指定的.

      因此,该标准允许文字的存储相同或不同.

      对于

      char a[] = "hello world";
      a == "hello world";
      

      比较将永远是false因为数组的地址a必须不同于字符串文字的地址.

      2022-12-11 02:15 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有