当前位置:首页 » 编程语言 » c语言的指针比较大小
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言的指针比较大小

发布时间: 2022-07-24 08:02:25

‘壹’ c语言:用指针实现字符串大小的比较,应该怎样做呢

字符串比较,可采用循环遍历字符串,用对应位置的指针所指向的字符进行比较,当相等时,循环,遇到不等或其中一个字符串结束时,结束循环,返回对应指针的对应的字符的差值,根据差值判断两个字符串的大小:
返回值大于0,则前串大,
返回值小于0,则前串小,
返回值等于0,两个字符串相等。
参考代码:
#include<stdio.h>
int stringcompare(char *a,char *b)
{
while( *a && *a == *b )
{
a++;
b++;
}
return *a-*b ;
}
int main()
{
int ret;
char a[10];
char b[10];
printf("请输入字符串a: ");
gets(a);
printf("请输入字符串b: ");
gets(b);
ret=stringcompare(a,b);
if ( ret > 0 )
printf("a>b\n");
else if ( ret < 0 )
printf("a<b\n");
else
printf("a=b\n");
system("pause");

return 0;
}
运行结果:
请输入字符串a:
abcde
请输入字符串b:
acd
a<b
请输入字符串a:
acd
请输入字符串b:
abcde
a>b
请输入字符串a:
abc
请输入字符串b:
abc
a=b

‘贰’ c语言里,指针比较两个数的大小

inta=24,b=55;
int*p=&a;
int*q=&b;
if(*p<*q)
{
printf("a<b ");
}
else
{
printf("a>=b ");
}

‘叁’ C语言指针变量比较

首先要 分清, 是在 声明中 还是在语句中。
声明中,例如:
int a=1, b=2;
int *p, *q; // 声明 *p 和 *q 是指针,用于指向 int 型数据。
p=&a; q=&b; //语句, p 和 q 是指针 指向的数据 的地址,p 指向 a, q 指向 b.
if ( p < q) printf("...."); // 语句, p 和 q 是 "地址", 地址大小的比较。即 &a,&b 的比较。
若是 if ( *p < *q) printf("...."); // 语句, *p 和 *q 是 "数值“ 的比较,即 a,b 的比较,现在 a=1,b=2。
即,语句中 有星号的是 数值,没星号的是地址。
你的2道题里,p,q 是 地址。是地址值的比较。

‘肆’ C语言指针法三个数比较大小!求指错!

你对指针的认识和操作存在问题,请多看书并多练习体会
#include<stdio.h>
voidmain()
{
inta,b,c,*p1,*p2,*p3,*p;
p1=&a;
p2=&b;
p3=&c;//指针变量赋值不应该带*
scanf("%d%d%d",p1,p2,p3);
if(*p1>*p2)
{
p=p1;//交换方法错误,这样才对
p1=p2;
p2=p;
}//保证a<=b
if(*p1>*p3)
{
p=p3;
p3=p1;
p1=p;
}//保证a<=c
if(*p2>*p3)
{
p=p2;
p2=p3;
p3=p;
}//保证b<=c但这里并没有改变abc的值
printf("%d%d%d ",*p1,*p2,*p3);
}

‘伍’ 请教c语言指针问题,利用指针比大小

inthuandi(int*a,int*b)
{
int*temp;

temp=a;
a=b;
b=temp;

}

出在这个函数里面

交换的是a和b的值。 这个是交换形参本身的值,无法带回主函数。

要影响实参,那么只能交换*a和*b的值。

‘陆’ c语言怎么比较整型指针大小

#include<stdio.h>
voidmain()
{
intaa,bb,cc,dd;
int*a=&aa,*b=&bb,*c=&cc,*d=&dd;
printf("Pleaseinput4number ");
scanf("%d%d%d%d",&aa,&bb,&cc,&dd);
intmax,min;
max=*a;min=*a;
if(max<*b)max=*b;
if(max<*c)max=*c;
if(max<*d)max=*d;

if(min>*b)min=*b;
if(min>*c)min=*c;
if(min>*d)min=*d;

*a=max;
*d=min;
printf("maxnumberis%d ",*a);
printf("minnumberis%d ",*d);
}

你指针理解有些问题吧,不能这么赋值,看看修改的

这个用冒泡或选择排序法会更简便

‘柒’ c语言关于指针比大小的问题,求解析

输入2,3
输入为:max=2,
min=3
注意:
swap(int
*p1,int
*p2){
int
*temp;
temp
=
p1;
p1
=
p2;
p2
=
temp;
}
函数参数p1,p2是形参(恰巧与main中的p1,
p2同名),swap只交换了参数p1,
p2的值,而没有改变main中两个变量p1,
p2!!

‘捌’ 请问在c语言中,怎样利用指针来比较多个字符串的大小

每个字符串用一个指针指向首地址 再设置一个计数器
在尾地址前指针移动计数器就加1
最后可以通过比价计数器的大小来比较字符串长度

‘玖’ C语言中用指针方法比较三个数大小

void exchange(int *p1,int *p2,int *p3)
{
void ex(int *p11,int *p22);
if(*p1<*p2) ex(*p1,*p2);//ex(p1,p2);传递指针
if(*p1<*p3) ex(*p1,*p3);// ex(p1,p3);
if(*p2<*p3) ex(*p2,*p3);// ex(p2,p3);
}

望采纳

‘拾’ C语言里的指针怎么比大小,都是地址到底谁大呀

本来就不存在谁大谁小,只有当指针是指向数组或字符串中元素时可以进行一些代数操作
如果是要比较指针指向的值的大小,请使用*操作符……但注意只有*p指向的数据类型可以比较才有效

此处是指向字符串的,大小就是p所指的元素(字符)在字符串中的前后顺序