10.1 输入3个整数,按由小到大输出

void main()
{   
	int a;
	int b;
	int c;
	scanf_s("%d %d %d", &a,&b,&c);
	printf_s("a = %d ,b = %d,c = %d\n\n\n\n", a,b,c);//\n 与\n\n没有区别,更多就有区别

	void swap(int* g, int* h);
	int* d, * e, * f;
	d = &a;
	e = &b;
	f = &c;
	if (a > b) swap(d, e);
	if (a > c) swap(d, f);
	if (b > c) swap(e, f);
	printf_s("3个数由小到大输出为:%d %d %d", a, b, c);
}

void swap(int *g,int *h)
{
	int temp;
	temp = *g;
	*g = *h;
	*h = temp;
}

注意1:

1 temp 不能改成*temp

因为*temp是指针变量temp所指向的变量,但temp中无确定的值,因此temp所指向的单元也是不可预见的
2 int *g 和 int *h 不能改成int g 和 int h
g h的值可以互相改变了,但不会影响主函数里面的,即“单向传送”的“值传递”方式,形参之的改变不能使实参的值随之改变

3 swap里面,temp改成*temp 、*g 改成g 、*h改成h 也不行

不可能通过调用函数来改变实参指针变量的值,但可以改变实参指针变量所指变量的值。

4 上述中a为指针变量,*a为a指向的变量

5 想通过函数调用得到n个要改变的值

(1)在主调函数中设n个变量,用n个指针变量指向它们

(2)然后将指针变量作实参,将这n个变量的地址传给所调用的函数的形参

(3)通过形参指针变量,改变该n个变量的值

(4)主调函数中就可以使用这些改变了值的变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值