一个有关函数指针的问题,急求大神指教
#include<stdio.h>void main()
{
void swam(int*ptr1,int*ptr2);
int a,b;
printf("Please input two numbers!\n");
scanf("%d %d",&a,&b);
swam(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
void swam(int*ptr1,int*ptr2)
{
int *ptr;
*ptr=*ptr1;
*ptr1=*ptr2;
*ptr2=*ptr;
printf("*ptr1=%d,*ptr2=%d\n",*ptr1,*ptr2);
}编译无错误,为什么运行时会出问题?????? 我明白了,是应为指针没有初始化。 #include<stdio.h>
void main()
{
void swam(int*ptr1,int*ptr2);
int a,b;
printf("Please input two numbers!\n");
scanf("%d %d",&a,&b);
swam(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
void swam(int*ptr1,int*ptr2)
{
int k;
k=*ptr1;
*ptr1=*ptr2;
*ptr2=k;
printf("*ptr1=%d,*ptr2=%d\n",*ptr1,*ptr2);
} void main()
{
void swam(int*ptr1,int*ptr2);
int a,b;
printf("Please input two numbers!\n");
scanf("%d %d",&a,&b);
swam(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
void swam(int*ptr1,int*ptr2)
{
int k,*ptr;
ptr=&k;
*ptr=*ptr1;
*ptr1=*ptr2;
*ptr2=k;
printf("*ptr1=%d,*ptr2=%d\n",*ptr1,*ptr2);
}
利用指针这样也可以。
页:
[1]