二维数组a和a+0+的区别

作者&投稿:阿时 (若有异议请与网页底部的电邮联系)

为什么二维数组a[i] 和&a[i]相等
a = a[0] = &a[0] = &a[0][0];举例: i=1;a[i] 就表示的是第 i 行的首地址,也就是 a[i][0]这个元素所在的地址;&a[i] 取得a[i][0]的地址,它和首地址是一个位置,那么地址肯定是相同的;a+i,就是a 偏移i 个单位,在本质上是和 a[i]一样的,a[i]的理解就应该...

多维数组int a[3][3];*a和a是相同的地址,为什么*a+1和a+1就不一样...
二维数组 就是 数组 的 数组。把a看出一个一维数组,那么每个元素又是一个一维数组。先把a看成一维数组,a[0] 是什么东西先不管,那么 a 也就是第 0 行的首地址。a + 1 就是 第二行的 首地址 a 在这里就是 a[0] 的地址 ,所以 *a + 1 就相当与 a[0+1] == a[1]...

在C语言中,写出二维数组元素a[2][3]在内存中的存放顺序
在 C 语言中,二维数组是由一系列连续的内存位置组成的,其中每个元素占用一个特定的字节数。对于一个二维数组 a[2][3],其存放顺序如下图所示:```+---+---+---+ | a[0][0] | a[0][1] | a[0][2] | +---+---+---+ | a[1][0] | a[1][1] | a[1][2] | +...

...所以a[0]等于&a[0][0] a等于&a[0]。为什么a和a[0]的值相_百度...
&是取地址符号,a是数组名,所以a就表示a[0](首元素)的地址。同理,对于二维数组,a[0][0]可以看做数组a[0]的首元素,所以a[0]就是a[0][0]的地址。

c语言中&a,b和&a,&b什么区别呢?
a[]比a少一维,我具体给你解释下。几个元素可以组成数组,而几个一维数组可以组成二维数组,如此一直增加维数。比如说a[0]=2,a[1]=1,a[2]=3,组成一个一维数组,这就是a.但是,你要注意,a不是直接把这些东西都存着的,a只存首地址。假设定义了一个二维数组a[3][3].这时候a[0],a[1...

C语言 一维数组 中 a[i]=i不明白
每一次都运行一次a[i]=i 即当i=0时,a[0]=0,当i=1时,a[1]=1,……依次类推,共运行10次 使a[10]得以初始化 大概就是这么回事了 你的想法是对的,就是这么回事 至于那个输出命令,刚好是原来的逆过程 先输出了a[9]而a[9]=9这你是知道的,前面的赋值语句赋予的 你要输出单独的字符...

c语言中二维数组a[i][j],为什么a=*a?
在C语言中,二者是相同的地址值。所以可以说a=*a.二维数组a定义为a[i][j]时,代表一组数据,有i行j列,共计i*j的元素。这组数据在内存中是连续存放的。而在C语言的使用中,a是二维数组的首地址。*a也就是a[0],是二维数组第一行的首地址。所以,二者是相同的地址值,即数据a[0][0]的...

C语言中,多维数组a[0][0]是什么意思?
(*p)[3] = a; 表示p是一个指向一维数组的指针。 这时p指向第一个一维数组也就是 1,2,3这一行。 p+1表示指针指向了第二个一维数组也就是4,5,6;用法上指针p和数组名a基本一样;以后遇到a[m][n]不要再想象成二维数组,就想成m个1维数组编号从a[0]到a[m-1]每个数组里存了n...

c语言中二维数组(*a)[1]和*a[1]有什么区别,为啥他们的值不一样?_百度...
二维数组名是一个指向一个一维数组的指针,a是一个二维数组名,就是一个指向一维数组的指针,一个这样的指针求间接运输(*a),得带的是这个指针所指向的一维数组的数组名,在此是 a[0], 数组名加一个下标就是数组元素值,(*a)[1]就是 第0行数组的第1个元素 a[0][1]-->2 a[1]-...

数组a[1][1]是什么意思
二维数组 你可以理解为a这个二维数组中1号行、1号列对应的那个数据。=== a[0][0] a[0][1] a[1][0] a[1][1]把第一个括号中的数字理解为对应的行号,第二个括号里的数字理解为对应的列号,行列号相交的焦点上存储的数值就是结果。=== 问题补充:那么a[0][0]不是表示第一行第一...

独孤纯13821783051问: 二维数组名 -
临泽县乌灵回答: a是二维数组的名称,其值等于二维数组的首地址.a[0]是二维数组头一行(头一行可以看成一个一维数组)对应的首地址,两者值相同,但是含义是不同的.

独孤纯13821783051问: 二维数组中,*a和*a[0]为什么不同. -
临泽县乌灵回答: [] 在 c 语言中不是标点符号,而是运算符. 有恒等式: a[i] = *(a+i) 所以,表达式里, *a[0] = *(*(a+0)) = *(*(a)) = **a. 你的 *a 是一个星,而 *a[0] 是 2 个 星,当然不同. ------ *a不应该是返回以a 的值作为地址的那个空间的取值吗 -- 只有 当 a 是1维数组时才是对的.*a 等于 *(a+0) 等于 a[0];

独孤纯13821783051问: 一维数组名,二维数组名有何区别? -
临泽县乌灵回答: 名称是我们定义的,所以没有什么区别.不过是定义的时候一维数组名有一个[],而二维数组名有两个.如一维数组a[N],二维数组a[N][N].对于一维数组a[N]来说,a(或者a[0])就是数组首地址,a+1就是a[1]的地址;而对于二维数组a[][]来说,a(或者a[0]或者&a[0][0])是它的首地址,a+1就是a[1][0]的地址. 或许还是没有解释清楚? 就这么说吧,一维数组:*a=a[0];二维数组: **a=*a[0]=a[0][0]

独孤纯13821783051问: c语言中二维数组地址疑问 -
临泽县乌灵回答: 从二维数组的角度来看,a代表二维数组首元素的 地址,现在的首元素不是一个整型变量,而是由4 个整型元素所组成的一维数组,因此a代表的是首 行的起始地址(即第0行的起始地址,&a[0]),a+1代 表a[1]行的首地址,即&a[1].因此a[0]代表...

独孤纯13821783051问: C语言:数组,*a和&*a有什么区别? -
临泽县乌灵回答: C语言, 指针才有 *a 形式,普通的变量没有 *a 形式. C语言 没有 “引用”,C++ 里才有 “引用”形式 C语言, 指针没有 &a 形式, 普通的变量才有 &a 形式.C语言,数组:a, 没有你给的 &*a 形式,但可以有 *&a 形式. 例如: int a[]={1,2,3}; printf("%d ",*&a[1]);这里 的 *&a[1] 相当 *(&a[1]) &a[1] -- 算出a[1]的地址 *(a[1]的地址) -- 取出 a[1]地址单元里的值,就是 a[1] 所以打印出 数值 2.

独孤纯13821783051问: 在二维数组中*a,a,a[0] ,a[0][0] ,a[1] ,&a[1] 的区别 -
临泽县乌灵回答:[答案] 1. *a:以a[0][0]为首元素的一维数组.可带一个索引:(*a)[i] 即a[0][i] 2. a:以a[0][0]为首元素的二维数组.可带两个索引:a[i][j] 3. a[0]:同*a 4. a[0][0]:首元素 5. a[1]:以a[1][0]为首元素的一维数组.可带一个索引. 6. &a[1]:以a[1][0]为首元素的二维数...

独孤纯13821783051问: C语言中,有一个二位数组inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};请问a[0],*(a+0)和*(*(a+0))的区别? -
临泽县乌灵回答: 要明白这事先要弄清二维数组的存储问题 先说一维数组,举例a[3],数组名称a就是指针,就是这个数组的起始地址.其中各元素的地址就是a, a+1,a+2. 它们的值分别是*a, *(a+1), *(a+2),也就是a[0],a[1],a[2].二维数组int a[3][4],数组名称a则是指针的指针,它指向指针数组a[3],其中每一个元素又分别指向一个一维数组,每个数组包含了4个整数.来自C语言基础训练…

独孤纯13821783051问: 在二维数组a[3][4]中,&a[0],和&a[0][0] 有什么区别啊??? -
临泽县乌灵回答: a是一个指向指针的指针常量&a[0]是一个行指针的地址&a[0][0]是第一行第一列元素的地址 如果要用等式表示的话,就是**a==**(&a[0])==*(&a[0][0]) 也就是 a==&a[0]==&(&a[0][0])

独孤纯13821783051问: 在二维数组中*a, a,a[0] ,a[0][0] ,a[1] ,&a[1] 的区别 -
临泽县乌灵回答: 1. *a:以a[0][0]为首元素的一维数组.可带一个索引:(*a)[i] 即a[0][i]2. a:以a[0][0]为首元素的二维数组.可带两个索引:a[i][j]3. a[0]:同*a4. a[0][0]:...

独孤纯13821783051问: C语言:通过指针引用多维数组一节中,二维数组a[0]和*(a+0)等价,怎么理解? -
临泽县乌灵回答: 理解这个问题的要点是: 二维数组是 元素为一维数组的一维数组.于是 a[0]是作为二维数组首元素的一维数组名,所以a[0]表示一维数组(实际是二维数组首行)首元素的地址,即,a[0]是a[0][0]的地址;数组名a是指针,指向其首元素(a[0]),即其值为&a[0](&a[0]指向a[0][0]),所以*(a)(即*(a+0))指向指向a[0][0];所以,a[0]与*(a+0)等价,都是指向a[0][0].不知这样说能不能理解.


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网