c语言用==比较式是比较指针大小码
7个回答
展开全部
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"地址不同
}
展开全部
字符串比较用等号的话实际比较的是指针
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"地址不同
}
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函数
希望能帮到你!
char *p1="a";
char *p2="b";
if(p1==p2)
{
.........
}
比较p1和p2吧,这个比较实际上比较的是指针大小,也就是"a"、"b"这两个字符串首地址的大小
如果要比较字符串大小可以使用strcmp函数
希望能帮到你!
追问
就是用==号比较字符串大小,是比较指针大小码
追答
不是比较字符串的大小,字符串在内存中的分布和字符数组一样,指针的大小只是字符串首字符在内存中的地址值,也就是说指针的大小就是字符串首地址的值
void main()
{
char *p1="a";
char *p2="b";
printf("p1:%x\np2:%x\n",p1,p2);
}
这样你就能看到这两个地址的值了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表示指针函数
追问
就是用==号比较字符串大小,是比较指针大小码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询