为什么我们不能直接比较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");
我的输出为"是" 第一个陈述的代码有什么问题?
答案 0 :(得分:4)
A" string"在C中只是一组字符。将两个数组与==
进行比较只是比较它们的地址,这些地址对于不同的数组是不同的。 (实际上,文字可能是也可能不一样,具体取决于实施。)