天天看点

【c/c++】指针函数和函数指针

#include<iostream>
#include<string>
using namespace std;
//指针函数,就是其返回值是指针的。
//函数指针,就是指针中存储的地址是某一个函数的入口地址。调用这个指针以后,将在内存中的代码存储区取出相应的代码指令,这样就好比函数功能的调用。用函数指针(函数地址)作为调用函数时实参的好处在于,能在调用一个函数的过程中执行不同的函数,这就提高了处理问题的灵活性。

int main(){
	int arr_add(int arr[], int n);
	int a[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
	int *p, total1, total2;
	int(*pt)(int*, int);//这里是必须要参数的,不然会出错。其实有点类似于调用函数的函数时候,实参和形参对应关系
	pt = arr_add;
	p = &a[0][0];	//在二维数组中,首地址四种表示方法,a[0]等价于a;&a[0]等价于&a[0][0]
	//a、a[0]、&a[0]是从二维数组角度,&a[0][0]是从具体元素的角度出发
	total1 = arr_add(p, 12);
	total2 = (*pt)(p, 12);
	//total2 = pt(p, 12); 两种方式都是可以的,个人更喜欢上面那种。
	cout << "total1=" << total1 << endl;
	cout << "total2=" << total2 << endl;
	return 0;
}

int arr_add(int arr[], int n){
	int i, sum = 0;
	for (i = 0; i < n; i++)
		sum += arr[i];
	return sum;
}
           

这里关于带参数的main()函数了解一番:

【c/c++】指针函数和函数指针
【c/c++】指针函数和函数指针

其实这个功能好比是java中public static void main(String[] args)参数args的主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段。

在c++的main函数中的参数其主要作用也是在dos的环境下面用来提高人机交互性

继续阅读