关于数组定义问题? 定义数组应该注意的问题

7920℃ SALVATORE

关于数组定义问题?定义数组应该注意的问题

C语言关于数组定义的一个小问题

不能这样定义的。如果int a[n]中的n是变量的话,编译就会出错,用这种格式的话,一定要事先知道a数组的长度,否则就会编译出错。如果是你这种的话,必须要动态申请空间,在C++中可以用:

int n;

scanf("%d",&n);

int *a=new int [n];

C语言中可以用malloc:

int n;

scanf("%d",&n);

int *a=(int*)malloc(n*sizeof(int));

c语言的一个问题,关于定义数组的

方法1是:

定义一个很大的数组,如果知道m<100,则定义一个 a[100][100]的数组,当用户输入m后,只使用

a[m][m]剩余的就不用了。这样浪费了一部分空间

方法2是

使用动态分配空间 malloc free 、

int **p = NULL;

printf("input the line of the array:\n");

scanf("%d", &m);

p = (int **)malloc(sizeof(int *) * m);

if (NULL == p)

{

return;

}

for (i = 0; i < m; i++)

{

*(p + i) = (int *)malloc(sizeof(int) * m);

if (NULL == *(p + i))

{

return;

}

}

这样分配的就是 p[m][m]

数组的定义问题

数组是有个数的,也就是一个可以计算到的正整数,所以你写个3.14 肯定是错误的,数组是 整数常量,额常量是指整数。

C语言数组定义的问题:A[n]是定义了n个元素还是定义了n+1个元素?

A[n]—表示定义了一个含有n个元素的一维数组,数组元素的范围:A[0]~A[n-1],没有A[n]这个元素的。