西西河

主题:【求助】向各位高手请教一个c语言中数组与指针的问题 -- 数值分析

共:💬84 🌺26 新:
全看分页树展 · 主题 跟帖
家园 你这个我都看糊涂了

肯定不对,但不知道你迷糊在什么地方。C原则上没有多维数组的概念,任何多维数组实际上都是一个更长的一维数组。你这个地址传递当然是对的,C只管把地址传过去不管你传的是什么地址,自己保证正确。问题在于即使主函数里面定义了个a[m][n],函数f1里面并不知道n,你也无法重新定义,a[0][0]也许还能知道(没把握),其他的统统不知道是何物。

C原则上是不推荐多维数组的,部分原因就在于会引起你这样的混乱。替代方法简单,开始就定义为一维数组a[m*n],使用的时候也按照这个方法使用即可。至于带两个星号的比如int **x,这个是多级间指,**x才是int数字,而多维数组的a,不管多少维,即使是int a[i][j][k][l][m][n],*a就是数字。二者完全不一样。(int **)a等于是进行了强制类型转换,把一个int指针变成了一个指向指针的指针。

根本上,我还是建议你在C不要用多维数组,一干二净。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河