三十、组、指针和字符串:指针用作函数参数、指针型函数和函数指针

本文详细介绍了 C++ 中指针的应用,包括指针作为函数参数的使用方法及其优势,指针函数的特性及用途,以及函数指针的概念与实例演示。通过具体代码示例展示了如何利用指针实现数据交换等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、指针做函数参数
	指针做形参,我们调用函数将实参传递给形参后,实参和形参指向相同的内存地址。也就是说、被调函数中对形参的改变影响主调函数中的实参所指对象。
指针做函数参数的作用:
	a、和引用一样,达到数据双向传递的效果。
	b、减少参数传递的开销(引用也一样)
	c、可以通过指向函数的指针传递函数代码的首地址
#include<iostream>
using namespace std;
void swap(int* a,int* b);
int main()
{
         inti=1,j=2;
         swap(i,j);
         cout<<i<<""<<j<<endl;  //i=2,j=1
         //很明显i,j的值在主调函数中改变了
         return0;
}
void swap(int* a,int* b)
{
         inttmp=*a;
         *a=*b;
         *b=tmp;
}
2、指针函数
除void之外,函数都有自己的返回值。同样指针也可以作为返回值。
返回值是指针的函数我们称之为“指针函数”,普通函数只能返回一个变量或对象。
指针型函数好处是可以在函数结束调用时将大量数据从被调函数返回到主调函数
(当然这里需要注意的是不能返回局部变量的地址)
 
3、函数指针
我们知道程序运行时,数据会占用内存空间。
实际上代码也会调入内存并占用内存空间。函数名就是函数代码占用内存的首地址
这样函数指针就是存放函数代码首地址的变量。
声明形式:
数据类型 (*函数指针名)(形参列表) 
//注意指针名的括号,如果没有括号就是指针函数了
函数指针名=函数名;
#include<iostream>
using namespace std;
void swap1(int* a,int* b);
void (*funPoint)(int*,int*);  //函数指针,且返回值类型、形参个数、类型都必须匹配
int main()
{
         inti=1,j=2;
         funPoint=swap1;
//      swap1(&i,&j);
         funPoint(&i,&j);//通过函数指针调用
         cout<<i<<""<<j<<endl;  //i=2,j=1
         return0;
}
void swap1(int* a,int* b)   //该函数最好不要定义为swap,不然可能调用内置的swap函数模板
{
         inttmp=*a;
         *a=*b;
         *b=tmp;
}



 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值