本文目录一览:
c语言二维数组求长度的问题
二维数组int a[10][10]
由10个一维数组int[10]
构成,每个一维数组的长度都是10,总长度是100。
c语言中如何获取一个二维数组的行列数?
有两种方式:
- 二维数组的行列数在定义的时候就是确定好的,所以编程人员是知道二维数组的大小以及行列数的。所以可以直接使用行列数的值。 为方便维护,可以将行列数定义为宏,直接调用对应的宏名作为行列值。
- 动态获取。
对于
type array[A][B];
形式的二维数组,可以通过计算sizeof
获取行列数。sizeof(array[0][0])
为一个元素占用的空间,sizeof(array[0])
为一行元素占用的空间,sizeof(array)
为整个数组占用的空间, 于是:- 行数 =
sizeof(array)/sizeof(array[0]);
- 列数 =
sizeof(array[0])/sizeof(array[0][0]);
c语言中一个整数(int)二维数组可以设置最多多少行跟多少列
理论上没有限制,实际上,计算机有物理内存大小限制,整型数也有最大值的限制。 想开大的数组,可以用动态分配。 定态数组,作为全局量可以开得大。例如:
#include stdio.h
int a[1001][1001]; // 全局量
main() {
a[1000][1000] = 1000;
printf("%d", a[1000][1000]);
return 0;
}
若放到 main(){}
里,就是局部量,就不能用这么多单元了。