有二位数组a[n][m] 对于指针问题 *(*(a+i)+j) 与 a[i][j] 为什么等价 (i ,j在n,m范围内)?

2025-04-13 18:34:01
推荐回答(2个)
回答1:

首先,二维数组实质上是一段连续空间,而数组名也仅仅是一个记号,它并不是指针.
但它可以当作指针使用.这是编译器语法解析时的处理.
真正的指针应该是一个存有地址的变量.所以指针和数组名是不同的.

a[n][m]这个二维数组.是一个n*m的空间.它可以当作一个二级指针在基作用域内使用.
二级指针是一个指向指针的指针.

回答2:

*(a+i)取出来的是a[i]的值,是个指针,再取值就得到a[i][j]的值了
指针也有值啊