西西河

主题:【求助】向各位高手请教一个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表明每一维的长度。

全看分页树展 · 主题 跟帖


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

Copyright © cchere 西西河