C语言基础——指针型函数参数

本文探讨了C语言中如何使用指针作为函数参数来操作外部数据,包括交换变量、处理数组以及考虑数组长度和数据安全性。示例代码展示了指针在函数中的应用,如交换变量值和数组排序,并讨论了const关键字在防止数据修改中的作用和局限性。
摘要由CSDN通过智能技术生成

在C语言中,函数的参数不仅可以是整数、小数、字符等具体的基本数据类型,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部变量的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些修改的数据不会随着函数的调用结束而被销毁。
而像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过某一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合。

封装交换变量值得函数,然后调用,代码如下:

#include<stdio.h>

void exchange(int a, int b) {
	int temp = a;
	a = b;
	b = temp;
}
void main(){
    int a=2,b=3;
    exchange(a,b);
    printf("a=%d,b=%d\n",a,b);
    
}打印结果:a=2,b=3

可以发现,变量a,b的值并没有改变。那是因为调用exchange函数的时候传入了变量a和b的值,该函数在自己的内部重新分配了2个地址空间来存放着两个值,而该函数改变的是自己内部分配的空间的值。并不对外部的变量a,b造成影响。修改代码如下:

#include<stdio.h>

void exchange(int *a, int *b) {
    printf("a=%#x,b=%#x\n",a,b);//进入函数,打印指针变量a,b所保存的地址
	int temp = *a;
	*a = *b;
	*b
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值