C语言声明时 *、()、[]的优先级

数组名后面的 [ ] 和 ( ) 具有相同的优先级,它们的优先级高于 *.

例如:

int *a[10] , [10]先和a结合,它声明了一个含有10个元素的数组,其中每个元素都是指向 int 类型的指针.

int (* a)[10], ( ) 和 [ ] 优先级相同,并且都是从左向右结合,* 和 a 先结合,因此 a 是一个指向数组的指针,该指针内含10个元素.

int a[10[[20] , 声明了一个 10 * 20 的二维数组.

int a[10][20] , 的优先级低于[10] , [10] 先和 a 结合, 因此 a 首先是一个内含10个元素的数组,再与 [20] 结合,所以 a 的每个元素都是内含20个元素的数组. * 说明这些元素都是指针, 最后 int 表明这些元素都是指向 int 类型的指针. 所以 a是一个内含10个元素的数组,其中每个元素都都是由内含20个指向 int 类型的指针组成的数组.总的来说, a 是一个二维数组.

int (* a[10])[20], ( * a[10]) 和 [20] 优先级相同,并且从左向右结合, (* a[10]) 中 , [10] 的优先级高于 *,因此它声明了一个内含10个指针元素的数组,其中每个指针都指向一个内含20个元素的数组

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值