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"地址不同
}
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"地址不同
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息