char *p = "abc";
char *q = "abc";
if (p == q)
printf ("equal");
else
printf ("not equal");
Run Code Online (Sandbox Code Playgroud)
输出:相等
它是编译器特定的,还是在标准中的某个位置定义为预期行为.
允许编译器"合并"字符串文字,但不是必需的.
从6.4.5/6字符串文字:
如果这些数组的元素具有适当的值,则这些数组是否不同是未指定的.
实际上,编译器可以合并以下一组文字:
char* p = "abcdef";
char* q = "def";
Run Code Online (Sandbox Code Playgroud)
这q
可能指向'内部'指向的字符串p
(即.q == &p[3]
).
归档时间: |
|
查看次数: |
152 次 |
最近记录: |