⾯试题-指针-函数指针与指针函数
问题:
问:请⽤代码来表达你对函数指针和指针函数的区别的理解?
答+分析:
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<iostream>
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++。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。