C++ 声明一个返回整数指针数组的指针的函数
在本教程中,我们将学习如何声明一个返回整数指针数组的指针的C / C ++函数。
第1部分:创建一个考虑int *
参数并生成指向四个整数指针列表的指针的函数。
虽然乍一看可能很困难,但我们可以使用一系列分解语句来声明适当的函数。
1. 我们需要一个参数为int *
的函数。
function(int *)
2. 一个以int *
参数为输入并返回指针的函数
(*function(int *))
3. 一个具有int*
参数并返回指向4大小数组的指针的函数
(*function(int *))
[4]
4. 一个以int *
参数为输入并返回指向四个整数指针数组的指针的函数
int *(*function(int *))[4];
我们如何确定前面的声明完全正确?以下程序可以验证我们的声明。
代码
#include
#define SIZE_OF_ARRAY (4)
typedef int *(*p_array_t)[SIZE_OF_ARRAY];
int *(*function(int *arg))[4];
p_array_t function(int *arg)
{
static int *arr[SIZE_OF_ARRAY] = {NULL};
p_array_t pRet = &arr
return pRet;
}
int main()
{
}
宏SIZE_OF_ARRAY用于以符号方式表示数组的大小。p_array_t的类型定义为“指向由四个整数组成的数组的指针”。如果我们的声明不正确,程序会在“函数”的定义处停止工作。
第二部分:目标是编写一个使用提供的数组的函数,并返回一个指向整数函数指针数组的指针。
为此,我们将输入两个值,执行一个比较它们的函数,然后使用一个函数指针来获取较大值的内存地址,并输出结果。通过使用函数指针在不同时间提供不同函数的地址,函数变得更加灵活和抽象。因此,通过提供一种基于运行时信息选择要执行的函数的简单方法,函数指针可以用来简化代码。
大函数(big function)的示例:
应用程序调用函数big(),并通过引用接收两个整数值。它比较这两个值,并返回较大数的内存地址。big()有一个整数返回值,可以是非零或零。
例如:
Input ? 8 14
Output ? Bigger value is 14
Input ?5 9
Output? Bigger value is 9
分析: 在比较我们拥有的两个整数值后,指针将返回具有最大值的内存位置。
可能使用的方法:
- 考虑整数指针
int *c
。 - 应初始化两个整数变量。
- 输入这两个值。
- 比较所提供的两个值。
- 指针*c最终返回较大值的地址。
算法:
Start
STEP 1-> Pass the argument to the function after creating it.
Int *big(int &, int &)
END
STEP 2-: calling the main() function to initialise the pointer *c and enter and output two values.
int p, q, *c
call c= big(p,q)
print c
END
STEP 3-> Pointer c returns the memory address of the larger value after comparing the two integer values given to it.
Comparing
If(a>b)
return(&a)
else
return(&b)
END
STOP
C++代码:
#include
int *big(int&, int&);
int main( ){
int p, q, *c;
c= big(3, 9);
cout<<"The bigger value is"<<*c;
";
return 0;
}
int *big(int&a, int&b){
if(a>b)
return(&a);
else
return(&b);
}
输出:
运行上述代码将导致下面所示的输出。
The bigger value is 9