C语言指针变量作函数参数问题 求大神帮忙
#include<stdio.h>voidswap(int*a,int*b){inttmp;tmp=*a;*a=*b;*b=tmp;}main(){intx,y;int*...
#include<stdio.h>
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
main()
{
int x,y;
int *u_x,*i_y;
printf("please input two digit\n");
scanf("%d%d",&x,&y);
u_x=&x;
i_y=&y;
swap(u_x,i_y);
printf("x=%d\n",x);
printf("y=%d\n",y);
}
这个程序前面声明的函数void swap(int *a,int *b)里面形参加了*号,为什么后面套用函数的时候
swap(u_x,i_y);就不加*号了呢,这样单纯的u_x不是指示&x吗 只是个地址啊,而上面函数定义时
里面的运算是带*号的啊,不是表示地址里面的数的运算吗?不是地址的运算吧?swap(*u_x,*i_y);
这样为啥是错的呢?为啥不能带*号?
求大神告诉原因 展开
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
main()
{
int x,y;
int *u_x,*i_y;
printf("please input two digit\n");
scanf("%d%d",&x,&y);
u_x=&x;
i_y=&y;
swap(u_x,i_y);
printf("x=%d\n",x);
printf("y=%d\n",y);
}
这个程序前面声明的函数void swap(int *a,int *b)里面形参加了*号,为什么后面套用函数的时候
swap(u_x,i_y);就不加*号了呢,这样单纯的u_x不是指示&x吗 只是个地址啊,而上面函数定义时
里面的运算是带*号的啊,不是表示地址里面的数的运算吗?不是地址的运算吧?swap(*u_x,*i_y);
这样为啥是错的呢?为啥不能带*号?
求大神告诉原因 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询