指针在函数中的作用

Posted 跋扈洋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针在函数中的作用相关的知识,希望对你有一定的参考价值。

指针在函数中的作用

传递地址

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

指向函数的指针

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

#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一样。

从函数中返回指针

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

int *fun(参数列表)

	……;
	return p;

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

指针数组

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

int *p[4];

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

int *p[4];
int a=1;
*p[0]=&a;

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

后续

如果想了解更多物联网、智能家居项目知识,可以关注公众号。

编写不易,感谢支持。

以上是关于指针在函数中的作用的主要内容,如果未能解决你的问题,请参考以下文章

2-12在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行()?

unique_ptr的实现原理

void指针的转换

ZZNUOJ_用C语言编写程序实现1157:最大值和最小值(指针专题)(附完整源码)

剑指offer速记

C++获取基类指针所指子类对象的类名