1.对指针有关的表达式阅读遵循的规则是“从右到左、由近到远、括号优先”。

int *a[10]   从字符a开始,右侧是[10],表示a 为一个包含10个元素的数组,左侧为指针标记,表示这个数组中保存的事指针,再左边是int 表示所有的指针指向整型数据。

int (*a)[10] 从字符a开始,括号优先,表示a是一个指针,右侧为[10]表示指针指向一个数组,左侧是int ,表示指针指向的数组为整型数组。

 

辅助记忆:

int *a[10]类比 

1. int*   a  等价于 int   *a;

2. int a[10]   从字符a开始,右侧是[10],表示a 为一个包含10个元素的数组,左侧是  int 表示数组元素是整型的。

则int  *a[10]等价于int*   a[10], 从字符a开始,右侧是[10],表示a 为一个包含10个元素的数组,左侧是 int*   表示数组元素为整型指针。

 

int (*a)[10] :

则int (*a)[10]   首先知道这个表达式是一个数组,指针符号被括号括了进去,是为了和int* 区分,说明最终的数组元素为整型的,

*a表示指针,也就是同时定义了一个指针 和一个整型数组。结合在一起就是定义了指针指向定义的整型数组

 

 

想不到其他的好的方法去解释了,第二个辅助记忆方法有点牵强,不过只要记忆住第一个,第二个也就自然记住了。

 

相关文章:

  • 2021-05-03
  • 2021-11-18
猜你喜欢
  • 2021-10-06
  • 2021-06-16
  • 2021-08-27
  • 2021-12-01
  • 2021-05-23
  • 2021-12-22
  • 2021-04-10
相关资源
相似解决方案