主题:【求助】向各位高手请教一个c语言中数组与指针的问题 -- 数值分析
共:💬84 🌺26
如果二维指针与数组等价的话,要计算x[i][j]先要算x[i]=x+i*K,其中K是最后一维的维数。但你子函数中是无法得到K的值的。这是为什么说(int **)与二维数组a不是一个类型的原因之一。
----------------Update-----------------------
至于x[0][0]为什么与a[0][0]值不同,是因为x[0]的值与a[0]不同,所以x[0][0]与a[0][0]值不同。
--------------再啰嗦几句----------------------
你可以查一下,a的值与a[0]的值是相同的,但x与x[0]的值是不同的。为什么?x[0]是x的值指向的地址上的值(读多少位由int*的长度决定),而a[0]的值就是a。
------------一般情况下的讨论------------------
见非吾有:原因是这样的(详见内)和frnkl:理解了二维array多维array就没问题了。
-----------代码例子---------------------------
见frnkl:试试这段代码。这个例子也很好熊熊熊熊:更详细的例子...。
- 相关回复 上下关系8
🙂使用指针的时候自己一定要清楚p+1到底是加了几 七月半 字320 2009-02-19 20:14:55
🙂del 熊熊熊熊 字1 2009-02-20 13:59:21
😥您说的是“多维数组名”这类的“指针常量”吧 七月半 字121 2009-02-21 05:21:18
🙂是这样
🙂del 熊熊熊熊 字0 2009-02-19 15:11:58