指针在函数中的作用
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指针所指结点,则执行()?