面试题-指针-函数指针与指针函数

妖狐艹你老母 2022-05-12 08:12 363阅读 0赞

返回目录:https://blog.csdn.net/chen1083376511/article/details/82723709

问题:

问:请用代码来表达你对函数指针和指针函数的区别的理解?

答+分析:

int(*p)(int x)是函数指针,可以直接使用,它的返回值是int型

int f(int a, int b)
{
return a + b;
}
int g(int a, int b)
{
return a - b;
}
void main()
{
int(*p)(int a, int b);//定义指向函数的指针,参数表必须和要指向的函数一致
p = f;
cout << (*p)(200, 100) << endl;
p = g;
cout << (*p)(200, 100) << endl;
}

打印结果:

300 100

int* p(int x);是一个返回值为int型指针的函数的声明
不能直接用,必须先定义才能使用,它的返回值是int *型

#include
using namespace std;
int * fun()
{
int b = 90;
int *a = &b;

return a;
}
void main(){
cout << “b地址:” << fun() << endl;
cout << “b的值:” << *fun() << endl;
}

打印结果:
b地址:00BDFCF4
b的值:90

函数指针和函数数组的返回类型是相似的,都是返回不是指针类型,这里返回类型为int。还有,函数指针可以指向任何函数。函数数组指向包含多个元素的数组,在多维数组中,可以p++。

指针函数和指针数组的返回类型是相似的,都是返回指针类型,这里返回类型是int*。还有,指针函数只能是自己,只是返回类型为指针,指向函数里面的对象。指针数组中每个int*元素只保存一个元素的地址,如p[1]=&m[0],不管一维还是多维的数组中,不可以p++。

发表评论

表情:
评论列表 (有 0 条评论,363人围观)

还没有评论,来说两句吧...

相关阅读

    相关 指针数组函数指针

    > 写在前面:学习的第一门语言是Java,之前对C也了解一点,也只是了解一点,在加上长时间没有接触了,基本就只会一个Hello World了。现在由于准备升本考试,不得不从头开

    相关 指针函数函数指针

    1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针   类型标识符  \函数名(参数表)  int \f(x,y);       首先它是一个函数

    相关 函数指针&指针函数

    一、 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义: 1、指针函数是指带指针的函数,即本质

    相关 指针函数函数指针的区别

          在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,最简单的辨别方式就是看函数名前面的指针\号有没有被括号()包含,如果被包含就是函数指针,反之则是指