c语言中两个指针可不可以直接比较值?
#include <stdio.h>
max(int *a,int *b)
{
int t;
if(*a <*b)
{
t=*a;
*a=*b;
*b=t;
}
return *a;
}
main()
{
int x,y,z;
int max(int *a,int *b) ;
int (*p)();
p=max;
scanf( "%d %d ",&x,&y);
z=(*p)(x,y);
printf( "maxNum=%d ",z);
}
就像这个程序中下面这行
if(*a <*b)
每次运行到这里就出错...
我向请问一下 可不可以用上面这种比较??
[解决办法]
z=(*p)(&x, &y);
[解决办法]
int mymax(int *a,int *b)
{
int t;
if(*a <*b)
{
t=*a;
*a=*b;
*b=t;
}
return *a;
}
int main(int argc, char* argv[])
{
int x,y,z;
int (*p)(int*,int*);
p=mymax;
scanf( "%d %d ",&x,&y);
z=p(&x,&y);
printf( "maxNum=%d ",z);
return 0;
}
[解决办法]
if(*a <*b)
写对拉的..
z=(*p)(x,y);
写错了
函数指针...
可以隐试调用和显示调用,。。
z=p(x,y);