为了账号安全,请及时绑定邮箱和手机立即绑定

为什么C中“a”=“a”?

为什么C中“a”=“a”?

C
慕斯王 2019-07-20 10:49:59
为什么C中“a”=“a”?void main() {     if("a" == "a")       printf("Yes, equal");       else       printf("No, not equal");}为什么输出No, not equal?
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

根据C99(第6.4.5/6节)

字符串文字

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

因此,在这种情况下,是否两者都未指定"a"S是不同的。优化的编译器可以保持一个"a"在只读位置和两个引用都可以引用。

看一下GCC的产出这里


查看完整回答
反对 回复 2019-07-20
  • 3 回答
  • 0 关注
  • 315 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信