我是荔园微风,作为一名在IT界整整25年的老兵,当年也被指针和函数的关系困惑过。我个人认为指针这个名字很容易让人理解出错,其实如果改个名字,叫“地点”,可能会好理解很多。但是没办法,也不知道为什么大多数人接受了指针这个名字,我也只好跟随,无法另外取名。
C语言中把指针和函数结合使用的常见方法有三种:
1. 函数参数为指针
2. 函数返回值为指针
3.通过函数指针变量调用函数
好,下面我们一个一个来攻克。
1. 函数参数为指针
函数的参数可以是基本的数据类型,还可以是指针类型。参数使用指针类型的作用是将一个变量的地址传送到另一个函数中。C语言中实参向形参传递值,反之则不行,代码如下:
void swap_ex01(int a,int b)
{
int temp;
temp=a; a=b; b=temp;
}
如果发生函数调用swap_ex01(x,y),可以在函数中实现a和b的值交换,但是却没有实现x和y的值交换。所以为了实现将函数中对形参的修改结果返回给调用函数,就要使用指针参数。于是我们定义一个函数swap_ex02,如下:
void swap_ex02(int *a,int *b)
{
int temp;
temp=*a; *a=*b; *b=temp;
}
当形式参数为指针类型时,传递给形参的应该是地址信息,因此调用swap_ex02的形式为swap_ex02(&x,&y)。这样通过间接访问,实现了在被调用函数中修改实参所对应的变量。
此外,通过指针参数也可以实现将被调用函数中的多个处理结果传回给调用函数的地方。当函数的参数为数组时,实参和形参既可以用指针形式,也可以用数组形式,实参向形畚传递的是数组空间的首地址。
各位小伙伴,这次我们就说到这里,下次我们再深入研究Visual Studio 2022这个强大的工具,相信你一定能喜欢上Visual Studio 2022。如果要转载我的文章请说明出处哦。
作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。