为什么我们不能直接在c中比较两个字符串

时间:2015-03-10 01:46:22

标签: c

为什么我们不能直接比较c程序中的两个字符串。例如我尝试过以下示例

char *str="int";
if(str=="int")
printf("yes");
else
printf("no");

对于上述内容,我输出为" no" 我通过使用与整数相同的逻辑尝试了上面的代码 即

int i=10;
if(i==10)
printf("same");

但是当我修改上面的代码时,如下所示

if((strcmp(str,"int"))==0)
printf("yes");

我的输出为"是" 第一个陈述的代码有什么问题?

1 个答案:

答案 0 :(得分:4)

A" string"在C中只是一组字符。将两个数组与==进行比较只是比较它们的地址,这些地址对于不同的数组是不同的。 (实际上,文字可能是也可能不一样,具体取决于实施。)