早教吧作业答案频道 -->其他-->
C语言中指针引用二维数组元素问题假设a是一个3行4列的二维数组,请问为什么a[0]与*(a+0)是等价的,我的理解是二维数组名a既然是该数组首元素的地址,那么(a+0)也是一个地址,“*(a+0)”就
题目详情
C语言中指针引用二维数组元素问题
假设a是一个3行4列的二维数组,请问为什么a[0]与*(a+0)是等价的,
我的理解是二维数组名a既然是该数组首元素的地址,那么(a+0)也是一个地址,“*(a+0)”就是指向“(a+0)”这个地址的内容(即首个元素值).
a[0]与*(a+0),一个元素地址和一个元素内容又如何能等价~
请懂C语言的人帮忙解答,指出我的思维误区.我都为这问题冥思苦想好几天了,每次拿起书本就把该节内容看一边,就是不理解这了.
假设a是一个3行4列的二维数组,请问为什么a[0]与*(a+0)是等价的,
我的理解是二维数组名a既然是该数组首元素的地址,那么(a+0)也是一个地址,“*(a+0)”就是指向“(a+0)”这个地址的内容(即首个元素值).
a[0]与*(a+0),一个元素地址和一个元素内容又如何能等价~
请懂C语言的人帮忙解答,指出我的思维误区.我都为这问题冥思苦想好几天了,每次拿起书本就把该节内容看一边,就是不理解这了.
▼优质解答
答案和解析
(a+0)是地址没错
“*(a+0)”就是指向“(a+0)”这个地址的内容(即首个元素值)这句话也没错
因为a这个地址中放的也还是一个地址
例如:
a[3][3] = { 1 , 2 , 3
4 , 5 , 6
7 , 8 , 9 };
1的地址就是a[0], (a[0]是a[0][0],a[0][1],a[0][2]中第一个数据a[0][0]的地址,下同理)
4的地址就是a[1],
7的地址就是a[2].
然后你再把这个1、4、7组成的a[0],a[1],a[2]看做一个一维数组
那么a(也可以说是a+0)表示的就是第一个数a[0]的地址.
所以*(a+0)就是地址a中所存放的数值(即a[0]),只不过这个数值是个地址的编号罢了~ 因为地址也是一串数字啊~
你可以就用这个a[3][3]写段代码试试~ 输出 *( *(a+1) + 2 ) 看看是不是等于6~
“*(a+0)”就是指向“(a+0)”这个地址的内容(即首个元素值)这句话也没错
因为a这个地址中放的也还是一个地址
例如:
a[3][3] = { 1 , 2 , 3
4 , 5 , 6
7 , 8 , 9 };
1的地址就是a[0], (a[0]是a[0][0],a[0][1],a[0][2]中第一个数据a[0][0]的地址,下同理)
4的地址就是a[1],
7的地址就是a[2].
然后你再把这个1、4、7组成的a[0],a[1],a[2]看做一个一维数组
那么a(也可以说是a+0)表示的就是第一个数a[0]的地址.
所以*(a+0)就是地址a中所存放的数值(即a[0]),只不过这个数值是个地址的编号罢了~ 因为地址也是一串数字啊~
你可以就用这个a[3][3]写段代码试试~ 输出 *( *(a+1) + 2 ) 看看是不是等于6~
看了 C语言中指针引用二维数组元素...的网友还看了以下:
a是b的倍数,c是a的倍数(a、c不相同),下列判断错误的是()A、a与b的和也一定是b的倍数B、a 2020-03-30 …
1,即使偶数又是质数是什吗刚才没说完两个质数的积是21,这两个质数的和是多少下列各数中即是奇数又是 2020-04-09 …
一个两位数,它的十位上的数字是6,个位上的数字是a,表示这个两位数的是自是()A、a乘6=aB、1 2020-04-27 …
一个三位数,个位数字是c,十位数字是b,百位数字是a,这个三位数是()A.abcB.1000abc 2020-05-13 …
假设(DI)=148FH,(EBX)=12345678H,执行MOV [DI],EBX指令后,DS: 2020-05-23 …
已知全集U=A∪B={x∈N|0≤x≤10},A∩(CuB)={1,3,5,7},试求集合B为什么 2020-06-10 …
1.一个三位数,百位数字是A,十位数字是B,个位数字是C,这个三位数是_.2.M个数的平均数为A, 2020-06-10 …
a-4的相反数因为a-4的相反数是它们的差的负数,所以把a-4看成一个数,就是-(a-4).-(a 2020-06-12 …
判断对错~自然数a(注意:a>0)既是a的因数,又是a的倍数.()那么就是:自然数a既是a的因数, 2020-06-17 …
excel 数字变函数假设A列为123B列为346C列=CONCATENATE(A1,B1) 得到 2020-06-27 …