首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

[探讨]关于if的一个细节有关问题

2012-04-11 
[探讨]关于if的一个细节问题在一本书上看到下面的写法是不妥当的(它的理由是文字列的比较不妥当):strcpy((

[探讨]关于if的一个细节问题
在一本书上看到下面的写法是不妥当的(它的理由是文字列的比较不妥当):
strcpy((char *)p, "OK");
if (p == "OK") { 
。。。

书中说 应该写成如下格式,
if (strcmp((char *)p, "OK") == 0) {

}

请问这是为什么,谢谢

[解决办法]
好像是有的编译器
对于不同的指向 同一常量字符串的 指针
地址是不同的。
strcmp比较的是内容,不是地址,比较安全
[解决办法]
p 是一个指针
"OK"是一个常量字符串 

不是指针与"OK"比较 而是指针所指内容与"OK"比较
[解决办法]
2楼的正确。
当然也要看p原来的类型。如果它重载了操作符==,例如CString,或者_bstr_t就领当别论了!
如果它的类型就是char*,那么p的值就只是一个地址了。

热点排行