为什么char*a[]是指针数组,char(*a)[]是数组指针?二者结合顺序不是一样的吗?

1.   *、a和[]结合的优先级是相同的,即他们的结合顺序是从左到右那就错了。

2.  关键核心在于对  []  的理解:

  2.1  []  不是说中括号,也不是数据类型。

  2.2  []  == *(&左边变量名+0)  ,如char*a[]==char*(&a+0)。  可以看到 []  变成了小括号先和a结合了,所有变量的类型是数组。至于这个数组是什么类型,由剩下的的修饰符决定。这里剩下的修饰符是char*, 所有它是char* 类型的数组。

 

posted @   败人两字非傲即惰  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示