在学习了 C 语言的数组之后,我发现 C 中的数组与 C# 中的数组除了书写形式上略有区别,其它的基本上都一模一样。

因为之前有 C# 的底子,所有学习 C 语言,感觉也挺轻松的,不过 C 和 C# 之前还是有很多不一样的地方,这些也需要我慢慢的了解和掌握。

C 语言的数组分为:一维数组、二维数组和N维数组。一开始我还以为N维数组就是多维数组呢,后来发现并不是这样。那 C 语言中到底存不存在多维数组的概念呢?

答案很明显,是不存在的。那为什么不存在呢?因为内存是线性一维的。我能大概理解这句话的意思,但是我表达不清楚准确的意思,这需要专业的硬件方面的知识了。

其实 N 和 多 很难区分清楚,不过理解了什么是 N维数组 之后,应该就能区分它们了吧。那什么又是 N维数组 呢?

之前看了 《郝斌老师的C语言教程》,他是这么解释的:N维数组 可以当作每个元素是 N-1维数组 的一维数组。这句话似乎很难理解,既然不好理解,那就举例说明吧!

例如:int a[3][4];

首先可以肯定的是,这是一个二维数组,但实际上在内存中并不存在二维数组。所以,以这个二维数组为例,就可以这样理解:

此二维数组是含有 3 个小元素的一维数组,只不过每个元素都可以再分为 4 个小元素。

再举一例:int b[4][5][6];

该数组是含有 4 个元素的一维数组,只不过每个元素都是 5 行 6 列 的二维数组。

我想,这下总能理解什么是 N维数组 了吧!其实也不难,只要用心去理解就可以了。

转载于:https://www.cnblogs.com/NArt/archive/2011/11/25/2263143.html

C 学习笔记 - 数组相关推荐

  1. c语言中void arrout,c语言学习笔记(数组、函数

    <c语言学习笔记(数组.函数>由会员分享,可在线阅读,更多相关<c语言学习笔记(数组.函数(53页珍藏版)>请在人人文库网上搜索. 1.数组2010-3-29 22:40一维数 ...

  2. Go语言学习笔记-数组、切片、map

    Go语言学习笔记-数组.切片.map 数组:同一数据类型元素的集合.是值类型,长度固定无法修改 声明格式:var 数组名字 [元素数量] 数据类型 var arr [3] int //声明定义了一个长 ...

  3. Java 学习笔记 - 数组类型互转

    Java 学习笔记 - 数组类型互转 数组类型转换 字符串数组 to (Integer.Long.Double)列表 传统方式 Java8 Stream方式 数组 to 数组 字符串数组 to (in ...

  4. php 学习笔记 数组1

    1.一般情况下$name['tom']和$name[tom]是相同的:但没有引号的键不能和常量区别开,如:define('index', 5)时:$name['tom']和$name[tom]不同 2 ...

  5. JAVA学习笔记--数组初始化

    JAVA中,数组只是相同类型的.用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.数组通过方括号下标操作符[]来定义和使用,要定义一个数组只需在类型名后面加上一个方括号即可,如: int[] ...

  6. PHP学习笔记-数组

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51635540 本文出自:[顾林海的博客] 前言 数组就是一系列数据的集 ...

  7. php 学习笔记 数组2

    10.切割数组 array_slice(array, offset, length);返回一个由原始数组中的连续元素组成的新数组,参数1为原始数组,参数2为要复制的起始位置, 参数3要复制的个数:新数 ...

  8. Java学习笔记#数组的初始化方式

    数组的初始化方式一共有三种:静态初始化,动态初始化,默认初始化. 1 package cn.sxz.arrays; 2 /** 3 * 测试数组的三种初始化方式 4 * @author xingzhu ...

  9. scala学习笔记-数组转换(8)

    使用yield和函数式编程转换数组 1 // 对Array进行转换,获取的还是Array2 val a = Array(1, 2, 3, 4, 5)3 val a2 = for (ele <- ...

最新文章

  1. ASIC设计-终极指南
  2. WebGIS空间数据请求访问机制
  3. 朱晔的互联网架构实践心得S1E3:相辅相成的存储五件套
  4. python替换文本文件单词_在大型文本文件中替换一组单词
  5. 王超:奇虎360MongoDB
  6. mysql mysqldumpslow_MySQL慢查询日志mysqldumpslow
  7. 常见网络命令介绍及使用
  8. 页面 渲染 回流 测试 笔记
  9. C++ Primer 有感(重载操作符)
  10. NLP之路-Deep Learning in NLP (一)词向量和语言模型
  11. scara机器人dh参数表_SCARA机器人驱动方式及参数初定
  12. ios快捷指令 python_手把手教你使用 iOS 效率神器 「快捷指令」
  13. 十一、如何挑选股票?
  14. xcode反汇编调试iOS模拟器程序
  15. 架构分类:软件架构、系统架构。
  16. Confidence Rekindles In Credit Mkts
  17. Microsoft Edge 和 Google Chrome更新后,出现错误代码:STATUS_STACK_BUFFER_OVERRUN,有效解决办法记录【已解决】
  18. gcc 查看默认使用的C语言标准版本
  19. 关于使用X/Y/Z的方式加载地图Tile瓦片的知识总结
  20. 小飞鱼 通达OA二次开发网络课程 系列视频课程在CSDN发布

热门文章

  1. arggis怎么修改上下标_京东自营是怎么操作的?有什么要求?
  2. Apache Tika:通用的内容分析工具
  3. 要市场导向,不要销售导向,更不要个人导向(转)
  4. 使用TensorFlow训练神经网络进行价格预测
  5. 生成模型和判别模型_生成模型和判别模型简介
  6. mysql 2005开发版,SQL server 2019 开发版下载
  7. mysql数据库优化清理_mysql 数据库优化整理
  8. python中 是什么运算符_Python 运算符
  9. js方式调用php_js如何调用php函数
  10. linux gcc中sin30度,学习gcc.pdf