为什么char*a[]是指针数组,char(*a)[]是数组指针?二者结合顺序不是一样的吗?
1. *、a和[]结合的优先级是相同的,即他们的结合顺序是从左到右那就错了。
2. 关键核心在于对 [] 的理解:
2.1 [] 不是说中括号,也不是数据类型。
2.2 [] == *(&左边变量名+0) ,如char*a[]==char*(&a+0)。 可以看到 [] 变成了小括号先和a结合了,所有变量的类型是数组。至于这个数组是什么类型,由剩下的的修饰符决定。这里剩下的修饰符是char*, 所有它是char* 类型的数组。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!