关于C++几个容易混淆的概念总结
1.函数指针和指针函数
函数指针说的就是一个指针,但这个指针指向的函数,不是普通的基本数据类型或者类对象。函数指针的定义:
int (*func)(int a, int b); // 声明函数指针
指针函数表示的是函数的返回类型是一个指针的函数,该指针用于保存函数返回的地址,以供其他调用者使用。指针函数的定义:
int *f(int a, int b); //声明一个指针函数
函数指针与指针函数的最大区别:函数指针的函数名是一个指针,即函数名前带一个星号asterisk(*)。
函数指针可以读为“函数的指针”,表示的是指向某一类函数的指针;指针函数可以读为“指针的函数”,表示的是返回类型为指针的函数。
2.数组指针和指针数组
定义分别如下:
int *a[2]; //指针数组,表示的含义:数组里存放的都是同一个类型的指针 a[0] = new int[3]; a[1] = new int[3]; delete a[0]; delete a[1];
int * b1 = new int[10]; //一维数组指针 int (*b2)=new int [10][10]; //二维数组指针 //数组指针表示:一个指向一维或者多维数组的指针.
指针数组可以读为“指针的数组”,即表示同一类型的指针的数组;数组指针可以换个读法为“数组的指针”,即表示指向一个数组的一个指针。