主题:【求助】向各位高手请教一个c语言中数组与指针的问题 -- 数值分析
共:💬84 🌺26
无论是多少维德的数组,其数组名都是指针,而不是指针的指针。
比如说你的a,尽管是二位数组,其数组名其实只是指向数组首地址的指针。具体这个数组多少维,每一维的长度是多少,那是另外的信息。
所以如果编译器允许,你的函数应该写为
void f1(int a[][5]),表明这是一个两维,最低维长度为5的数组。可以直接引用。
如果编译器不支持,可以写为
void f1(int* a)
然而你必须知道这是个几维的数组,每维的长度是多少。
而引用a[i][j]的时候就写为
a[i*5+j]
如果都不知道,就写为
void f1(int* a, int dimension, int* dimensionLength)
——————————————————————
int** a是指向指针的指针。通常用于指针数组(比如说链表之类),不可以用于多维数组
dimension 表明这个数组是几维的,
dimensionLength表明每一维的长度。
- 相关回复 上下关系8
🙂这次复习C语言还是真学到点东西。扩兄请看下面的代码 frnkl 字88 2009-02-23 09:57:09
🙂括兄的药方那是绝对无错 frnkl 字55 2009-02-22 16:12:11
🙂括兄可以写个小程序试一下 frnkl 字36 2009-02-22 15:34:43
🙂似乎是概念错误
🙂我理解int a[3][4]的a的类型不是int * 1 七月半 字283 2009-02-21 05:35:20
🙂用法不同吧 冷酷的哲学 字151 2009-02-22 02:34:16
🙂呵呵,没错。我们一般也就和老兄说的那样,用个int * 七月半 字55 2009-02-22 05:29:01
🙂del 熊熊熊熊 字0 2009-02-20 22:46:59