网站服务器暂时不可用怎么办,伦敦做网站,网站建设如何获取客户,代理一件代发二维数组及其指针1 ) 在了解二维数组之前#xff0c;我们先来了解一维数组及其指针我们知道#xff0c;一维数组中#xff1a;数组名代表--数组首元素的首地址(千万不要认为是数组的首地址(a)#xff0c;绝对不是)在内存中#xff0c;该代码的表现形式如下图我们先来了解一维数组及其指针我们知道一维数组中数组名代表--数组首元素的首地址(千万不要认为是数组的首地址(a)绝对不是)在内存中该代码的表现形式如下图#include{int a[4];int *p a; //表明该指针指向了数组的首元素地址当然也可以写为 int *p a[0];return 0;}-- 这时候对指针取值(*p)就是对取出指向地址a[0]中的值的就是a[0]的数据。----------------------------------分割线------------------------------------2 )下面我们进入二维数组的介绍首先请看一段代码#includeintmain(){inta[2][4] {1,2,3,4,5,,4,5,6};return0;}该代码的表现形式如下图 右边的a[ 0 ] [ 0 ] 这些数据对应的是二维数组中(每个数组中的元素)。了解了二维数组在内存中的表现形式--我们开始引入数组指针的概念2.1) 顾名思义数组指针就是指向数组的指针根据复杂类型的确认 数组指针形式为 int(*p)[ 3 ]; 表明该指针指向了(有三个int型数据)的数组 那么该数组名 a 就是数组a[ 0 ]的首地址即(a[ 0 ]也可写为a)---(这点和一维数组的数组名相同-----都是数组首元素的首地址)(***注意该 图形两块不同的区域代表两个不同的数组----后面跟着的是每一个数组里面包含的元素)2.2) a[ 0 ]这个数组名 代表了a[ 0 ]这个数组里面 a[ 0 ][ 0 ]的值的地址, 即---- a[ 0 ] a[ 0 ][ 0 ] -对于a[ 0 ]---- 这里可理解(不可画等号)为a[ 0 ] 是一个指针 ( 因为数组名是该首元素a[ 0 ][ 0 ]的地址嘛既然是地址就必须用指针来接收 )。2.3)p a ;就是指向了a[ 0 ]这个数组的首地址。 也可写成a[ 0 ]; 名为二维数组的行指针那么如果对 p 进行 p 1 操作就表示地址移动到下一行(移动了sizeof(int)*4 16个字节)就是下一个数组的地址 -- 如上图所示技巧 - - / * 我们将二维数组依次看作一维数组逐步分析 * /2.4)所以 p a i ; 等价于 p a[ 0 ] i这是行指针的概念如果对 p 取 * 运算符表示取出 p 指向的内容而 p 指向的的内容就是a[ 0 ], 行指针用来确定对哪一个数组的值进行操作 直观的就是这这个二维数组中 选 a[ 0 ], a[ 1 ]这两个之中的其中一个进行操作)2.5)*p *(a[ 0 ])a[ 0 ],* (p i) a[ i ](c语言中方括号[ ]运算符和*()运算符一致可互换)a[ 0 ] i a[ 0 ][ 0 ] i就是列指针的概念(对数组的每一个元素进行操作)对a[ 0 ]这个数组里面的元素地址 i ,指到相应元素a[ 0 ][ i ]的地址 即a[ 0 ][ i ]我们已经知道a[ 0 ]就是a[ 0 ][ 0 ]的值的地址即a[ 0 ][ 0 ] 所以如果对a[ 0 ]取 * 运算符得到的就是a[ 0 ][ 0 ]的值。即*( a[ 0 ] i) a[ 0 ][ i ]--------------------------------------看了这些不知道对各位朋友有无帮助。下面我对二级指针做一个画图分析 让我们更深一步的理解二维数组指针---------------------------------------------------------------------------------------------------在文中有什么不对或者需要改进的地方请各位朋友对我给出宝贵的意见和建议