1 a和&a的区别

int a[10] = {1,2};//其他初始化为0
a代表数组首元素的地址,不是整个数组的地址
&a表示整个数组的地址 &a,a代表的数据类型不一样
&a数组类型int[10]
a 数组首元素的类型

2 数组指针的用法

int i=0;//循环变量
int a [5] = {3, 4, 5, 6, 2};
//直接定义一个数组指针
int (*p)[5] = &a;
for (i=0; i<5; i++)
{printf("%d\n", (*p)[i]);
}

3 二维数组的本质

结论:二维数组名charmyArray[3][5]是一个数组指针,char (*)[5]

#include "stdio.h"
#include "stdlib.h"
int main()
{int i,j;//循环变量int k=0;char myArray[3][5];//myArray是一个数组指针for (i=0;i<3; i++){for (j=0; j<5; j++){myArray[i][j]=k++;}}for (i=0;i<5; i++){printf("%d ", (*myArray)[i]);//输出 0,1,2,3,4}system("pause");return 0;
}

4 二维数组的三种内存模型

int     printf2Array_1(char myArray[3][10], intiNum)
{int i = 0;for (i=0; i<iNum; i++){printf("%s \n",myArray[i]);}return 0;
}intprintf2Array_2(char myArray[][10], int iNum)
{int i = 0;for (i=0; i<iNum; i++){printf("%s \n",myArray[i]);}return 0;
}
intprintf2Array_3(char (*myArray)[10],int iNum)
{int i = 0;for (i=0; i<iNum; i++){printf("%s \n",myArray[i]);}return 0;
}

5 多维数组

1 )不管是几维数组,都是线性存储的。所以会存在多维数组做函数参数,退化问题。

2 )多维数组做函数参数二维数组,能勉强表达出来。但是三维数组,四维数组,,就表达不出来了。

结论:指针做函数参数,有效内存维数,只到2级。如果你看到3级指针 4级指针,它表示的不是内存的维数。

       数组参数                                   等效的指针参数
一维数组 chara[30]                          指针 char*
指针数组 char*a[30]                        指针的指针 char **a
二维数组 chara[10][30]                    数组的指针 char(*a)[30]

a和a的区别、二维数组的本质及多维数组相关推荐

  1. 【C 语言】数组 ( 多维数组本质 | n 维数组名称本质 是 n-1 级数组指针 )

    文章目录 总结 一.多维数组本质 二.完整代码示例 总结 n 维数组名称本质 是 n-1 级数组指针 一.多维数组本质 给定多维数组 : // 声明一个多维数组int array[2][3]; 打印二 ...

  2. linux数组长度的函数,linux awk数组操作详细介绍

    用awk进行文本处理,少不了就是它的数组处理.那么awk数组有那些特点,一般常见运算又会怎么样呢.我们先看下下面的一些介绍,结合例子我们会讲解下它的不同之处.在 awk 中数组叫做关联数组(assoc ...

  3. 多维数组和C#中的数组数组有什么区别?

    C#中的多维数组double[,]和数组数组double[][]什么区别? 如果存在差异,那么每个最好的用途是什么? #1楼 前言:此评论旨在解决okutane提供的答案 ,但是由于SO的愚蠢信誉系统 ...

  4. php n维数组扁平化,js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解...

    数组的扁平化:将多维数组变成一维数组 对于一个像这样的嵌套数组:a=[1,[2,[3,4]],5,6]我们想要把它变成一个一维数组,有下面几种方法: 方法一:递归一 function parseArr ...

  5. php 二维数组字段合并,PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组_PHP教程...

    PHP将二维数组某一个字段相同的数组合并起来的方法,二维数组数组 本文实例讲述了PHP将二维数组某一个字段相同的数组合并起来的方法.分享给大家供大家参考,具体如下: 例子: array(3) { [0 ...

  6. 二维数组删除_「leetcode」数组:总结篇!(一文搞懂数组题目)

    数组理论基础 数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的掌控能力 也就是说,想法很简单,但实现起来 可能就不是那么回事了. 首先要知道数组在内存中的存储方 ...

  7. 二维数组(解引用、指针数组、数组的指针)——C语言

    二维数组 在说二维数组前先来说下一维数组中的指针数组和和数组的指针 一.一维数组中指针数组和数组指针的区别 指针数组: 1 int *p[5]; []的优先级比*高,首先它是一个数组,它的大小是5,它 ...

  8. floatmap 二维数组_第 2 章 数组

    第2 章 数组 几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构.JavaScript里也有数组类型,虽然它的第一个版本并没有支持数组.本章中,我们将深入学习数组数据结构和它的能力 ...

  9. C语言 二维数组的定义、初始化以及数组元素的引用

    二维数组定义的一般形式为: 类型说明符 数组名[常量表达式 ][常量表达式] 例如:float a[3][4],b[5][10]; 是定义a为3行4列的数组,b为5行10列的数组. 注意不可以写成fl ...

最新文章

  1. xp系统本地连接服务器,本地连接,xp系统本地连接不见了怎么办
  2. WIN配置git 配置后失败 can't be established
  3. python下载图片 referer_Python 下载图片问题,谢谢先
  4. C#遍历一个文件夹下的所有可执行文件
  5. 使用NoSQL Manager for MongoDB客户端连接mongodb
  6. h5商城模板_几个常用H5制作软件、网站推荐
  7. 越狱团队否认收钱并中止与太极合作
  8. '转载'Tableau试用过后破解失败解决方法,清除注册表工具
  9. 用什么软件测试电脑硬件的问题,新电脑检测软件-我买了新电脑,用什么软件测试比较好?最好还能看见自己详细配置的软 爱问知识人...
  10. 一文入门Python基础
  11. ios逆向工具theos tweak make编译错误集合
  12. 第九届GIS应用技能大赛上午(试题及答案含数据)
  13. C# 后台GC 的前因后果
  14. HDU and 蓝桥杯 完全背包练习题
  15. 物联网python教程慕课_物联网技术基础,中国大学MOOC(慕课)答案公众号搜题
  16. ElasticSearch + Kibana
  17. 基于数据智能的区域教育大平台建设与应用实践
  18. 小米移动3G版本,救砖手册,移动叔叔
  19. php 后缀文件怎么打开,php是什么文件格式,php扩展名文件如何打开?
  20. 高精定位模块(LMU)

热门文章

  1. shell_study
  2. [Python+debug] 设置Python环境变量-Windows10
  3. 汇编重要知识点:地址编号和数据编号
  4. java构建学生对象布尔类型,Java如何将原始布尔类型转换为布尔对象?
  5. webstorm更换主题后快捷键失效
  6. 链表:链表中倒数第k个结点(2)
  7. 【转】各种字符串算法大总结
  8. AE “每用户订阅上的所有人SID 不存在”
  9. 洛谷 题解 P2117 【小Z的矩阵】
  10. _itemmod_description