用等号C字符串比较

用等号C字符串比较

本文介绍了用等号C字符串比较的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的code:

 的char * name =乔治如果(名称==乔治)
   的printf(这是乔治)

我认为C字符串无法 == 符号进行比较,我必须使用 STRCMP 。当我用gcc编译不明原因(4.7.3版本),这code工作。我虽然那是因为它是像这样我在谷歌搜索比较指针和很多人说这是错的,并与比较== 不能这样做,这是不对的。那么,为什么这种比较方法的工作?


解决方案

Right.

That's right too.

It doesn't "work". It only appears to be working.

The reason why this happens is probably a compiler optimization: the two string literals are identical, so the compiler really generates only one instance of them, and uses that very same pointer/array whenever the string literal is referenced.

这篇关于用等号C字符串比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 09:03