失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 指针数组 数组指针 指针函数 函数指针

指针数组 数组指针 指针函数 函数指针

时间:2024-09-04 18:40:36

相关推荐

指针数组 数组指针 指针函数 函数指针

用变量a给出下面的定义

一个整型数一个指向整型数的指针一个指向指针的的指针,它指向的指针是指向一个整型数一个有10个整型数的数组一个有10个指针的数组,该指针是指向一个整型数的一个指向有10个整型数数组的指针一个指向函数的指针,该函数有一个整型参数并返回一个整型数一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数

答案是:

1. int a;2. int *a;3. int **a;4. int a[10];5. int *a[10]; 6. int (*a)[10];7. int (*a)(int);8. int (*a[10])(int);

指针数组、数组指针、指针函数、函数指针本质

指针数组:本质是一个数组,该数组存放的内容是指针变量;

数组指针:本质是一个指针,该指针指向的是一个数组;

指针函数:本质是一个函数,该函数的返回值是一个指针;

函数指针:本质是一个指针,该指针指向的是一个函数;

现在给出int *a[10]int (*a)[10],如何判断哪个是指针数组和数组指针。其实方法很简单,看a和谁先结合,如果和取值运算符(星号)结合,那就表示是指针;如果a和数组下标[]结合,那就表示是数组。

那问题来了,我怎么知道a先和谁先结合?那就看下图的运算符优先级!!!不过只要记住数组下标优先级高于取值运算符。那很明显,

int *a[10]中的a先与数组下标先结合,表示a本质是一个数组,数组元素有10个,数组中的元素都是指向int类型的指针,因此是指针数组。

int (*a)[10]中的a先与取值运算符先结合,表示a本质是一个指针,指针指向一个数组,因此是一个数组指针。

再来一个,int *a(),这是什么?同样的方法,先看a先和谁结合,明显先与()结合,表示a的本质是一个函数,因此是指针函数,表示该函数的返回值是一个指针类型。

本图引用该处,具体可以点击访问完整的优先级列表

如果觉得《指针数组 数组指针 指针函数 函数指针》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。