我有这个代码:
char *name = "George"
if(name == "George")
printf("It's George")
我认为c字符串不能与==
标志,我必须使用strcmp
。由于未知原因,当我使用 gcc(版本 4.7.3)编译时,此代码有效。我认为这是错误的,因为它就像比较指针所以我在谷歌中搜索,很多人说这是错误的并与==
做不到。那么为什么这种比较方法有效呢?
我认为c字符串无法与==符号进行比较,我必须使用strcmp
Right.
我认为这是错误的,因为它就像比较指针,所以我在谷歌中搜索,很多人说这是错误的,并且无法与 == 进行比较
这也是对的。
那么为什么这种比较方法有效呢?
它不起作用。它只是似乎正在工作。
发生这种情况的原因可能是编译器优化:两个字符串文字是相同的,因此编译器实际上只生成它们的一个实例,并在引用字符串文字时使用完全相同的指针/数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)