为什么c不允许数组作为下标使用?

大哥大姐们帮我教下,为什么c不允许数组作为下标使用?
最新回答
怎忘

2024-11-28 02:47:02

从来没有听说用数组作为下标的。你先不要说C语言,首先在现实世界中这种数组做下标的情况哪儿有?
霁无瑕

2024-11-28 01:24:10

在程序中经常要根据用户输入新建数组。但是c语言中不允许非常量成为新建数组时表示大小的下标:

for example:

int line;

int col;

scanf("%d,%d",&line,&col);

int p[line][col];//这样是不允许的!!!!!

正确的做法是:

p = (int *)malloc(sizeof(int)*line*col);

访问或者写入数据时:

*(p + line*i + j);

p +line*i + j;

扩展资料

数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。

所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:

type arrayName [ arraySize ];

这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如下:

double balance[10];

现在 balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。