c语言 二维数组中。。。
inta[10][10];&a[i]和a[i]的值相等但他们指向的对象是不同的,即指针的类型是不同的。前者(。。。)后者(。。。)填空。。。^_^当a[i][j]的时候。...
int a[10][10];
&a[i] 和 a[i] 的值相等但他们指向的对象是不同的,即指针的类型是不同的。
前者(。。。)后者(。。。)
填空。。。 ^_^
当a[i][j]的时候。。。。a[i]为一个指针数组吗? 展开
&a[i] 和 a[i] 的值相等但他们指向的对象是不同的,即指针的类型是不同的。
前者(。。。)后者(。。。)
填空。。。 ^_^
当a[i][j]的时候。。。。a[i]为一个指针数组吗? 展开
8个回答
展开全部
首先,lz可以简单的理解为所有数组的数组名都是该数组的一维化后的首元素地址
例如定义int a[2][3];,那么数组名值等效于&a[0],基类型为int (*)[3]
解释一下,lz学习的过程中,老师应该跟你讲过的吧,本质上C里只有一维数组,所谓的多维数组本质上都可以看做一位数组的,还是以定义int a[2][3];为例,a可以看做是有2个元素一维数组,而该元素又是一个有3个元素的一维数组
更多维的数组以此类推
例如定义int a[2][3];,那么数组名值等效于&a[0],基类型为int (*)[3]
解释一下,lz学习的过程中,老师应该跟你讲过的吧,本质上C里只有一维数组,所谓的多维数组本质上都可以看做一位数组的,还是以定义int a[2][3];为例,a可以看做是有2个元素一维数组,而该元素又是一个有3个元素的一维数组
更多维的数组以此类推
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Note1:
C/C++在array的地方设计得不好, 尤其2D的array更糟.
把 a[i] 与 *(a+i) 视为相等是一种不好的设计.
这到2D的时候就一团混乱了.
建议楼主不要在这种地方穷究.
Note2:
对於可变尺度的2D array, 遇到传参数时根本就不能运作.
因为 f(int[][] a, int M, int N) 中想取用 a[i][j]时, 必须在compile-time知道 a[i] 有多宽才行.
处理这种问题必须自己设计一个类, 内部用1D array 来模拟可变尺度的2D array.
C/C++在array的地方设计得不好, 尤其2D的array更糟.
把 a[i] 与 *(a+i) 视为相等是一种不好的设计.
这到2D的时候就一团混乱了.
建议楼主不要在这种地方穷究.
Note2:
对於可变尺度的2D array, 遇到传参数时根本就不能运作.
因为 f(int[][] a, int M, int N) 中想取用 a[i][j]时, 必须在compile-time知道 a[i] 有多宽才行.
处理这种问题必须自己设计一个类, 内部用1D array 来模拟可变尺度的2D array.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前者指向的是a[i]的内存地址,后者指向的是a[i]地址中的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前者是地址,后者是值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询