传递指针实现变量值交换

本文探讨了两种在C语言中交换变量值的方法:通过一级指针交换(swap1)和通过0级指针直接交换(swap2)。swap1方法由于没有实际修改指针指向的值,因此外部变量未受影响;而swap2则通过临时存储和指针解引用成功实现了数值交换。这两种技巧对于理解和使用指针至关重要。
摘要由CSDN通过智能技术生成
#include <stdio.h>
#include<stdlib.h>

void swap1(int* a, int* b)
{
	int* c = a;
	a = b, b = c;
}
void swap2(int* a, int* b)
{
	int c = *a;
	*a = *b, * b = c;
}
int main() 
{
	int a = 10, b = 15;
	swap1(&a, &b);
	printf("%d,%d\n", a, b);
	a = 10, b = 15;
	swap2(&a, &b);
	printf("%d,%d\n", a, b);
}

在这里插入图片描述
总结:
swap1传递一级指针,且操作一级指针不会对外部产生影响
swap2传递一级指针,操作0级指针,实现了交换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值