中易网

c语言用==比较式是比较指针大小码

答案:5  悬赏:0  
解决时间 2021-04-28 05:06
  • 提问者网友:若相守£卟离
  • 2021-04-27 06:01
c语言用==比较式是比较指针大小码
最佳答案
  • 二级知识专家网友:我们只是兮以城空
  • 2021-04-27 07:08
1、字符串比较用等号的话实际比较的是指针。例如:
char *p1="a";
char *p2="b";
if(p1==p2)
{
.........
}
比较p1和p2吧,这个比较实际上比较的是指针大小,也就是"a"、"b"这两个字符串首地址的大小

如果要比较字符串大小可以使用strcmp函数
2、例程:

int main()
{
 char *p = "x",s[] = "x";
 printf("%d\n","x"=="f"); //二者地址不同,所以是0
 printf("%d\n","x"=="x"); //p指向字符串常量"x",以及程序中出现"x"常量的地方发生了常量折叠,所以该句与下一句比较的地址相同
 printf("%d\n",p=="x");
 printf("%d\n",s=="x");  //s是字符串数组,地址与字符串常量"x"地址不同
}
全部回答
  • 1楼网友:青春如此荒謬
  • 2021-04-27 11:12
没有任何输出是因为你这句:if(k='\n') 写的不对,应该是if(k=='\n') 其它还有些逻辑错误,你自己再看看
  • 2楼网友:努力只為明天
  • 2021-04-27 09:39
==是比较数值的。指针的大小有什么好比的。。。一般是比较指针指向的值的大小
  • 3楼网友:哥在撩妹请勿打扰
  • 2021-04-27 08:59
你的提问能不能详细点,我猜测你的意思是 char *p1="a"; char *p2="b"; if(p1==p2) { ......... } 比较p1和p2吧,这个比较实际上比较的是指针大小,也就是"a"、"b"这两个字符串首地址的大小 如果要比较字符串大小可以使用strcmp函数 希望能帮到你!
  • 4楼网友:啵啵桃汀
  • 2021-04-27 08:25
字符串比较用等号的话实际比较的是指针 int main() { char *p = "x",s[] = "x"; printf("%d\n","x"=="f"); //二者地址不同,所以是0 printf("%d\n","x"=="x"); //p指向字符串常量"x",以及程序中出现"x"常量的地方发生了常量折叠,所以该句与下一句比较的地址相同 printf("%d\n",p=="x"); printf("%d\n",s=="x"); //s是字符串数组,地址与字符串常量"x"地址不同 }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息