一,数组指针 和 指针数组
1.数组指针
定义:数组中的元素全为“指针变量”的数组称为指针数组。
实例:
2.指针数组
定义:是指向数组首元素的地址的指针
实例:
二者的区别
首先,指针数组是一个数组,只是其中的元素都用来存放指针,也就是存放了变量的地址,可以通过对数组元素进行解引用操作来实现自己的需求。
数组指针是一个指针,它指向是一个数组。同理,也可通过解引用对数组进行赋值。
简单好用的辨别方法
观察变量名P先和()或者[ ]哪个先结合。由于[ ]的优先级高于*,所以,如果变量名先和[ ]结合,则证明p是一个数组,即为指针数组。如果先和*结合,则证明p是一个指针,即为数组指针。
二,指针函数 和 函数指针
1.指针函数
定义:
指针函数是一个函数,且返回值为一个地址。且指针函数的返回值需要用类型相对应的指针变量来接收。
实例:
在这两个函数中,返回值分别为int*和char*类型。
2.函数指针
定义:
用来存放函数地址的指针变量叫做函数指针。
实例:
三,简单的辨别方法
观察变量名P先和什么结合
示例1:
由于[ ]的优先级高于*,所以,如果变量名先和[ ]结合,则证明p是一个数组,即为指针数组。如果先和*结合,则证明p是一个指针,即为数组指针。
示例2:
由于()优先级高于*,所以当变量名ptr先和()结合时,代表指针函数,当变量名ptr先和*结合时,代表函数指针。