前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >指针在函数中的作用

指针在函数中的作用

作者头像
跋扈洋
发布2022-04-27 20:20:35
2.8K0
发布2022-04-27 20:20:35
举报
文章被收录于专栏:物联网知识物联网知识

传递地址

指针传递地址时,指针变量产生了副本,但副本与原变量所指的内存区域是同一个。对指针副本指向的变量进行改变,就是改变原指针变量所指向的变量。

指向函数的指针

指针变量也可以指向一个函数。一个函数在编译时被分配给一个入口地址,这个函数入口地址被称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。 一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。其概念与以前类似,只是带回的值的类型是指针类型而已。返回指针的函数简称为指针函数。 定义指针函数的一般形式为: 类型名 *函数名(参数表列);

代码语言:javascript
复制
#include <iostream>
#include <windows.h>
#include <iomanip>
using namespace std;
int avg(int a,int b);
int main()
{
    int length,width,result;
    cin>>length;
    cin>>width;
    int (*pfun)(int ,int);//定义函数指针
    pfun=avg;
    result=(*pfun)(width,length);
    cout<<result<<endl;

    system("pause");
    return 0;
}
int avg(int a,int b)
{
    return (a+b)/2;
}

指针pfun是指向avg函数的函数指针,调用pfun函数指针,就和调用函数avg一样。

从函数中返回指针

当我们定义一个返回指针类型的函数时,形式如下:

代码语言:javascript
复制
int *fun(参数列表)
{
  ……;
  return p;
}

p是一个指针变量,它可以是形式如&value的地址值。当函数返回一个指针变量,我们得到的是地址值。值得注意的是,返回指针的内存内容并不随返回的地址一样经过复制成为临时变量。如果操作不当,后果将难以预料。

指针数组

数组中的元素均为指针变量的数组称为指针数组,一维指针数组的定义形式为: 类型名 *数组名 [数组长度]; 类如:

代码语言:javascript
复制
int *p[4];

指针数组中的数组名也是一个指针变量,该指针变量为指向指针的指针。类如:

代码语言:javascript
复制
int *p[4];
int a=1;
*p[0]=&a;

p是一个指针数组,它的每一个元素是一个指针型数据(其值为地址),指针数组p的第一个值是变量a的地址。指针数组中的元素可以使用指向指针的指针来引用。类如int *(*p); " * “运算符表示p是一个指针变量,*(*p) 表示指向指针的指针,” * "运算符的结合性是从右到左,因此语句“int *(*p);”可写成“int **p;”。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 物联网知识 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 传递地址
  • 指向函数的指针
  • 从函数中返回指针
  • 指针数组
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档