- 9
- 0
- 约小于1千字
- 约 1页
- 2023-04-30 发布于上海
- 举报
指针与多维数组
对于C 语言的初学者来说,很容易混淆二维数组与指针数组之间的区别,比如上面例子中的name。假如有下面两个定义:
int a[10][20]; int *b[10];
那么,从语法角度讲,a[3][4]和b[3][4]都是对一个int 对象的合法引用。但a 是一个
真正的二维数组,它分配了200 个int 类型长度的存储空间,并且通过常规的矩阵下标计算
公式20×row+col(其中,row表示行,col表示列)计算得到元素a[row][col]的位置。但是, 对b来说,该定义仅仅分配了10 个指针,并且没有对它们初始化,它们的初始化必须以显式
的方式进行,比如静态初始化或通过代码初始化。假定b的每个元素都指向一个具有20 个元
素的数组,那么编译器就要为它分配200 个int类型长度的存储空间以及10 个指针的存储空
间。指针数组的一个重要优点在于,数组的每一行长度可以不同,也就是说,b的每个元素不
必都指向一个具有20个元素的向量,某些元素可以指向具有2个元素的向量,某些元素可以指向具有50个元素的向量,而某些元素可以不指向任何向量。
尽管我们在上面的讨论中都是借助于整型进行讨论,但到目前为止,指针数组最频繁的 用处是存放具有不同长度的字符串,比如函数month_name中的情况。结合下面的声明和图形化描述,我们可以做一个比较。下面是指针数组的声明
您可能关注的文档
最近下载
- 2025年公共营养师妊娠合并甲状腺疾病营养管理专题试卷及解析.pdf VIP
- 2025年演出经纪人在线演出平台API接口与第三方服务集成专题试卷及解析.pdf VIP
- 2025年房地产经纪人内部利益冲突协调机制专题试卷及解析.pdf VIP
- 2025年项目管理专业因果图在项目预算编制不准确原因分析中的应用专题试卷及解析.pdf VIP
- 联邦学习中的动态资源调度协议及其开源实现技术深度探讨.pdf VIP
- 《02J331》-地沟及盖板施工图集.pdf VIP
- 2.7社会发展与工具和技术 教学设计 2026秋科学五年级上册教科版.docx VIP
- 船舶焊接检验指南2025-CCS标准.pdf VIP
- 数学六年级上册100道口算题大全(全册各类齐全18份).pdf VIP
- 政治大题技巧.doc VIP
原创力文档

文档评论(0)