关于数组定义问题? 定义数组应该注意的问题
更新时间:2021-08-25 03:08:16 • 作者:SALVATORE •阅读 7104
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]这个元素的。