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

C语言数组与指针解析
本文详细解析了C语言中数组与指针的结合使用,包括数组名后的[]和()的优先级规则,以及如何正确理解如int *a[10]、int (*a)[10]和int a[10][20]等复杂声明,帮助读者深入掌握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个元素的数组

您可能感兴趣的与本文相关的镜像

Qwen-Image

Qwen-Image

图片生成
Qwen

Qwen-Image是阿里云通义千问团队于2025年8月发布的亿参数图像生成基础模型,其最大亮点是强大的复杂文本渲染和精确图像编辑能力,能够生成包含多行、段落级中英文文本的高保真图像

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值