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

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

void main() {
    if("a" == "a")
      printf("Yes, equal");  
    else
      printf("No, not equal");}

为什么输出No, not equal?


米琪卡哇伊
浏览 378回答 3
3回答

繁花如伊

根据C99(第6.4.5/6节)字符串文字如果这些数组的元素具有适当的值,则未指定这些数组是否不同。.因此,在这种情况下,是否两者都未指定"a"S是不同的。优化的编译器可以保持一个"a"在只读位置和两个引用都可以引用。看一下GCC的产出这里
打开App,查看更多内容
随时随地看视频慕课网APP