社区
C语言
帖子详情
[探讨]关于if的一个细节问题
wendy_welcom
2007-10-11 02:17:10
在一本书上看到下面的写法是不妥当的(它的理由是文字列的比较不妥当):
strcpy((char *)p, "OK");
if (p == "OK") {
。。。
书中说 应该写成如下格式,
if (strcmp((char *)p, "OK") == 0) {
…
}
请问这是为什么,谢谢
...全文
91
5
打赏
收藏
[探讨]关于if的一个细节问题
在一本书上看到下面的写法是不妥当的(它的理由是文字列的比较不妥当): strcpy((char *)p, "OK"); if (p == "OK") { 。。。 书中说 应该写成如下格式, if (strcmp((char *)p, "OK") == 0) { … } 请问这是为什么,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xljiong
2007-10-11
打赏
举报
回复
楼上的是正解,一定要比较,改成 *p 再比较。
yanhailiangyhl
2007-10-11
打赏
举报
回复
2楼的正确。
当然也要看p原来的类型。如果它重载了操作符==,例如CString,或者_bstr_t就领当别论了!
如果它的类型就是char*,那么p的值就只是一个地址了。
manrenmanren
2007-10-11
打赏
举报
回复
p 是一个指针
"OK"是一个常量字符串
不是指针与"OK"比较 而是指针所指内容与"OK"比较
ckt
2007-10-11
打赏
举报
回复
好像是有的编译器
对于不同的指向 同一常量字符串的 指针
地址是不同的。
strcmp比较的是内容,不是地址,比较安全
rainharder
2007-10-11
打赏
举报
回复
第一个是比较字符串的地址
第二个才是比较字符串的内容
oracle 11g dataguard深入
探讨
oracle 11g dataguard视频教程,该课程讲解Linux系统中搭建oracle 11g高可用性的DataGuard和实现读写分离的场景,并讲解整个过程中的各种容易遇到的坑及相应解决办法。
if和switch语句的作用详解以及区别
if语句和switch是我们学习Java的一种重要的语句,但是两者之间有不同也有异曲同工之处,今天我们来
探讨
一下if和switch语句的区别 一、if语句 过程图如下 代码如下 并且if常常与else配套使用 过程图如下 代码...
PullToRefresh的使用的详细用法,
一个
细节
问题
pulltorefresh的
细节
和
问题
,pulltorefresh算是
一个
常用且强大的上拉刷新下拉加载库,我们今天来
探讨
一下它的
细节
,
决策树分类算法(if-else原理)
其实更准确的来讲,决策树算法算是一类算法,这类算法逻辑模型以“树形结构”呈现,因此它比较容易理解,并不是很复杂,我们可以清楚的掌握分类过程中的每
一个
细节
。 if-else原理 想要认识“决策树算法”我们不妨从...
关于C语言结构体对齐
问题
的
探讨
关于C语言结构体对齐
问题
的
探讨
今天跟
一个
同事聊天中,讨论起了C语言结构体对齐的
问题
,查阅了一些blog,发现这些blog多多少少有些地方忽略了,或者是叙述的不清楚。在这里,我想做个总结,梳理一下。 先...
C语言
69,371
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章