【发布时间】:2016-08-11 13:27:47
【问题描述】:
if(s.name=="kolkata")
{
printf("the details");
}
if(strcmp((s.name,"kolkata")==0)
{
printf("the details");
}
第一个'if' case没有语法错误仍然不起作用,而第二个'if' case确实很有效,为什么?
【问题讨论】:
-
你没有在第一个 if 情况下使用 strcmp,这就是原因。没有语法错误是必要的,但还不够。
-
因为第一个 if 语句比较对象和对象并且它们是不同的对象。第二个 if 是比较对象的内容。
-
因为第二个语句在语法上不正确。您从哪里获得第二个效率不高的“信息”?你从来没有运行过这段代码,所以你从来没有测量过它的性能,不是吗?
标签: c string strcmp equality-operator