You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言自定义数组代码中(a->ptr)[i]的[i]作用咨询

代码中(a->ptr)[i]里[i]的作用解释

首先明确a->ptr的本质:你的自定义结构体myArray里,ptr是一个int*类型指针,它指向的是createArray函数中用malloc分配的连续内存块——这块内存就是用来存储自定义数组元素的动态数组首地址。

而[i]是C语言的数组下标访问运算符,(a->ptr)[i]完全等价于*(a->ptr + i),它的作用是:

  • 从ptr指向的内存首地址出发,向后偏移i个int类型的字节长度(因为ptr是int*,偏移步长是sizeof(int));
  • 取出该偏移位置上的int类型元素值(如果是赋值操作,就是把值存入该位置)。

结合你的代码场景来看:

  • 在setVal函数的循环里,(a->ptr)[i] = n是把用户输入的数值n,存入动态数组的第i个位置;
  • 在show函数的循环里,printf("%d\n",(a->ptr)[i])则是取出动态数组第i个位置的元素,打印输出。

循环中i从0到a->used_size-1,刚好遍历完所有有效存储的数组元素。


内容的提问来源于stack exchange,提问作者Shresth Gour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 06:27:25