指针的定义

指针定义:

1,一个整形数:  int a;

2,一个指向整形数的指针: int *a;

3,一个指向指针的指针,它指向的指针指向一个整形数:  int **a;

4,一个有10个整形数的数组: int a[10];

5,一个有10个指针的数组,每个指针指向一个整形数: int *a[10];

6,一个指向有10个整形数的数组的指针:  int (*a)[10];

7,一个指向指针的指针,被指向的指针指向一个有10个整形数的数组: int (**a)[10];

8,一个指向数组的指针,该数组有10个整形指针:  int *(*a)[10];

9,一个指向函数的指针,该函数有一个整形参数并返回一个整形数: int (*a)(int);

10,一个有10个指针的数组,每个指针指向一个函数,该函数有一个整形参数并返回一个整形数: int (*a[10])(int);

11,一个函数的指针,指向的函数的类型是有两个整形参数并且返回一个函数指针的函数,返回的函数指针指向有一个整形参数且返回整形数的函数:  int (*(*a)(int,int))(int);

const指针定义:

1)常量指针
比如:int * const x;

“常量指针”即指针本身的值是常量,但“能靠解引用改变它指向的对象的值”,如下:
pa=&d; // 不可行(d是已经声明过的整型)
*pa =d; // 可行(d是已经声明过的整型)

2) 指向常量的指针
比如:const int *x;
或:int const *x;

不能靠解引用改变它指向的对象的值
*pa =d; // 不可行(d是已经声明过的整型)
但指针本身的值是可变的:
pa=& d; // 可行(d是已经声明过的整型)

函数指针定义: 

函数指针与函数返回指针

     1)函数指针:指向函数的指针

         比如:int (*p)(int x, int y);

       表示p为一个指针,指向函数的首地址;

     2)函数返回指针:函数的返回值为指针类型

        比如:int *p(int x, int y);

       表示该函数返回值为指针类型。

原文地址:https://www.cnblogs.com/dapaitou2006/p/6639117.html