关于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];        //二维数组指针
//数组指针表示:一个指向一维或者多维数组的指针.            

  指针数组可以读为“指针的数组”,即表示同一类型的指针的数组;数组指针可以换个读法为“数组的指针”,即表示指向一个数组的一个指针。

posted on 2016-10-04 20:39  积跬步---行千里  阅读(190)  评论(0编辑  收藏  举报