使用swap函数改变实参指针变量所指的变量的值

#include <stdio.h>//包含标准输入输出函数
#include <string.h>
//2019.10.21
//①输出 3、5、3、5
void swap(int *a,int *b)
{
	//形参指针变量虽然是改变了,但是
	//C语言并不会把实参指针变量也改变
	int *t;
	t=a;
	a=b;
	b=t;
}

//②输出5、3、5、3
void swap(int *a,int *b)
{
	//虽然改变不了实参指针变量
	//但是可以改变实参指针变量所指向的值
	int temp;
	temp=*a;
	*a=*b;
	*b=temp;
}

void main()
{
	int x=3,y=5,*p=&x,*q=&y;
	swap(p,q);
	printf("%4d %4d %4d %4d\n",x,y,*p,*q);
}
发布了128 篇原创文章 · 获赞 26 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/yky__xukai/article/details/102673863