重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这是谭浩强那本书上一个很典型的程序,看看书就能改了。
创新互联建站主要从事成都网站建设、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务吉隆,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
给你个答案参考一下:
#includestdio.h
void exchange(int *x,int *y);//此处将函数返回类型修改为void型,因为函数本来就没返回值。参数全部改为指针型。
int main(void)
{
int a,b;
printf("请输入a,b\n");
scanf("%d%d",a,b);
exchange(a,b);//此处参数变为取地址a,b
printf("a=%d,b=%d",a,b);
return 0;
}
void exchange(int *x,int *y)//根据函数声明一并修改
{
int *i;//所要操作的数据都是指针,所以这里缓存也要变为指针。
i=x;
x=y;
y=i;
}//本来就没返回值为啥原题要声明成返回值为int型的函数呢?
void changes(float x1,float y1)
下面的不便,这样就不是传值了。而是传递引用。直接对参数起作用
第一个传递的是值,就是说将实参的值赋值给形参了,就相当于int a,b; a=b; a的值改变了,并不影响b的值。
第二个传递的是地址,数组名表示的就是数组的首地址,所以形参 char a[] 其实就是 char *a;
将实参的地址赋值给 a了,所以形参改变了,实参也改变了。
这就相当于 int a;int *p =a; 如果 *p发生了变化,a的值也跟着发生变化。
对
变量
a,b进行交换可借助中间变量进行,如下:
int a,b,temp;
a = 1;
b = 2;
temp = a;
a = b;
b = temp;
经过上述操作,就可以将a,b的进行交换,此时a为2,b为1。