有关指针的一些代码定义

定义一个指针

int *p;

p是指向整型的指针。由于没有初始化操作,p的指向是未知的,这是一个野指针。

连续定义指针

int *p1, *p2;

p1p2都是指针类型。如果写成

int *p1, p2;

p1是指针类型,p2是整型变量,不是指针。

指向指针的指针

int **p;

p是一个指向指针的指针,它指向的指针指向一个整数。

常量指针(指向常量的指针变量)

const int *p;
int const *p;

上面两种写法等价,p是一个指针,它指向的是整型常量。p指向的地址里的数据不能改变。

指针常量(指针是一个常量,指针不可改变)

int * const p;

p是一个指针常量,指向的是整型变量。不能改变p指向的对象(只能指向这个变量,不能指向别的)。对象的内容可更改。

函数指针

int (*f)(int, int);

f是指向函数的一个指针,该函数的返回类型是整型,有两个整型参数。

数组指针

指向数组的指针。

int (*p)[10];

p是一个指向含有十个整型元素的数组的指针。

指针数组

一个数组,数组里的元素是指针类型。

int *p[10];

p是一个有十个整型指针的数组。

函数指针数组

一个数组,数组里的元素是指向函数的指针。

int (*p[10])(int, int);

[]的优先级高于*,所以p是一个数组,数组里的元素类型是指针。p是一个有十个指向返回值是整型,参数是两个整型的函数的数组。

posted @ 2023-09-20 16:29  奋斗的小仔  阅读(24)  评论(0编辑  收藏  举报