JSB*_*ոգչ 4 c string-comparison
在C中,以下指定的内容是做什么的?
if ("" == "")
{
printf("Empty strings are equal\n");
}
Run Code Online (Sandbox Code Playgroud)
我手头有一个编译器告诉我""确实等于"".但这种平等是否得到保障?
编辑:我完全理解指针比较和字符串比较在C中是如何工作的.我要问的是在C标准中为编译时常量空字符串指定了什么行为(如果有的话).我的信念是,字符串不能保证相等,但实际上通常是相同的,因为所有const空字符串都将被固定到同一地址.但我想知道是否有人可以提供明确的参考
保证?我对此表示怀疑.你不是比较字符串,而是它们的地址,内容,这意味着你要依靠编译器不会发出碰巧在同一地点相同内容的两个文本字符串.它可能会起作用,但不是你应该依赖的东西(也不清楚它对它有用).
编辑:另请参阅为什么C中的"a"!="a"? - 它有近百个upvotes基本相同的问题的答案(并且由编译器以不同方式执行的用户编写).