现在的位置: 首页 > 综合 > 正文

如何区别指针数组和数组指针 && 如何区别函数指针和指针函数

2018年03月20日 ⁄ 综合 ⁄ 共 297字 ⁄ 字号 评论关闭

首先看看下面两条语句

(1) int * p[4] 

(2) int (*p)[4]

如何区分它们呢?

我们的判断条件是方括号("[ ]")的优先级要高于星号(' * ')

(1) p首先和方括号结合,表示数组,然后与星号结合表示指针,总的来说p表示一个长度为4的数组,数组的元素都是指针。p就是指针数组。

(2)p与星号结合,表示指针,在和方括号结合表示数组,总的来说p表示一个指针,指针指向的是一个长度为4的int型数组。p是数组指针。

p先和谁结合,p就是个什么东东

同理,int *foo() 和int (*foo)()中,小括号优先级高于星号

则int *foo()表示方返回值为指针的函数,int (*foo)()表示函数指针。


抱歉!评论已关闭.