Ⅰ c语言如何计算一维数组个数
以上代码中sizeof(a)的结果是40,而sizeof(int)的结果是4,len就是10,即数组a所占int型的个数;
你可以进行循环判断,当a[i]至a[9]都为0时,有效数值的个数为i
Ⅱ C语言问题 若有说明int a[][4]={1,2,3,4,5,6,7,8,9};,则数组a第一维
若有说明int a[][4]={1,2,3,4,5,6,7,8,9};则数组a第一维是3。
定义数组并赋值时C语言规定下标是这样的,a[n]中的n个元素应该是a[0]....a[n-1]。。
因此int a[][4]的写法就是表示,第一维大小没限制,但是第二维数组大小就是4,也就是int a[][4]={{1,2,3,4},{5,6,7,8},{9,10}},明显是3。
分析:二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行。
(2)c语言中数组第一维怎么求扩展阅读:
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
一个数组中的所有元素具有相同的数据类型(在C、C++、Java、pascal中都这样。但也并非所有涉及数组的地方都这样,比如在Visual Foxpro中的数组就并没这样的要求)。
当数据类型为 Variant 时,各个元素能够包含不同种类的数据(对象、字符串、数值等等)。可以声明任何基本数据类型的数组,包括用户自定义类型和对象变量。
Ⅲ 数组第一维大小指什么
C语言中第一维大小是指数组第一维的长度:
如下定义一个一维数组:
int arr[10];
则其长度可以使用sizeof(arr)来求得:
printf("长度:%d",sizeof(arr));
其结果为:10
二维数组的第一维大小是指数组的行数,第二维是数组的列数:
定义一个二维数组:
int arr[5][8];
则其行数为5,列数为8,其第一维大小就为5。
特点
1.数组是相同数据类型的元素的集合。
2.数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
Ⅳ C语言中二维数组的第一维长度是什么意思
二维数组,也就是一组数据,有两个维度行和列。比如
int
a[M][N];
定义了一个M行N列的数组,总元素个数为M*N。
其第一维长度,也就是总的行数,在C语言中,就是定义中的M。
类似的,第二维长度,也就是每行元素个数。在C语言中就是定义中的N。
Ⅳ C语言二维数组的第一维怎么求
这个定义代表每一维有三个数,所以a[0]中存放的是1.2.3.;a[1]中存放的是4.5.6;a[2]中存放的是7.8.0。应该是这样。你要问大小,是不是占的存储空间啊?那第一维是三个字节!
Ⅵ c语言求助!知道数组首地址怎么求出数组元素地址
单维数组名就是首地址,多维数组名就是第1维的首地址,因此取首地址,可以把数组名赋给对应的指针变量,或取索引为0的首个元素地址赋给对应的指针变量。举例:
单维 int arr[10]; int * p =arr; 或 int * p =&arr[0];
二维 int arr[10][10]; int (*p)[10] =arr; 或int (*p)[10] = &arr[0];// 取第一维地址
int arr[10][10]; int * p= & arr[0][0]; // 取多维中的首个元素
Ⅶ c语言中a[][2]省略的第一维数值是什么
a[][2] 第一维数值 取决于 初始化 里的数据个数,[若不初始化则会出错 (unknown size 错)]。
第一维数值等于 sizeof(a) / 2 / sizeof(数组类型)
例如:
int a[][2]={1,2,3,4,5,6,7};
第一维数值: n=sizeof(a)/2/sizeof(int);
程序例子:
#include <stdio.h>
int main ( )
{
int a[][2]={1,2,3,4,5,6,7}; //2 col
int n,i,j;
n=sizeof(a)/2/sizeof(int);
printf("row = %d\nData:\n",n);
for (i=0;i<n;i++){
for (j=0;j<2;j++) printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
输出:
row = 4
Data:
1 2
3 4
5 6
7 0
Ⅷ C语言中第一维数组的大小的准确定义
ANSI C89标准中规定,一个数组的尺寸(下标)必须是一个整型常量表达式以便于在编译时计算大小,而这里的所谓常量(或者常量表达式的运算结果),一般是指unsigned int。
16位编译器(比如Turbo C)中,unsigned int为16位,因此数组最多32767个数据。
32位编译器(比如Visual C++ 6.0)中,unsigned int为32位,因此数组最多4294967295个数据。
以上结论为理论值。
实际上,在VC++中,我们定义一个259025元素的整型数组,虽然可以编译通过,但是我们仍将得到一个运行时错误(runtime error)。这主要跟堆和栈的大小有关,详细情况请查阅操作系统相关资料。
错误代码范例:
// VC++ 6.0 中
void main()
{
int a[259025]; // 运行时错误,259024是ok的。
char b[259025]; // ok。
char c[1036097]; // 运行时错误,1036096是ok的。
}
// TC2.0 中
void main()
{
int a[32768]; // 编译错误,32767是ok的。
char b[65536]; // 编译错误,65535是ok的。
}
Ⅸ 什么是数组a第一维的大小
数组a第一维的大小为3。
二维数组类型说明的一般形式是:
类型说明符数组名[常量表达式1][常量表达式2]…;
其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如:
int a[3][4]; 说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:
a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]
(9)c语言中数组第一维怎么求扩展阅读:
二维数组在概念上是二维的,即是说其下标在两个方向上变化, 下标变量在数组中的位置也处于一个平面之中, 而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的, 也就是说存储器单元是按一维线性排列的。
如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。
在C语言中,二维数组是按行排列的。在如上中,按行顺次存放,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为
int类型,该类型占两个字节的内存空间,所以每个元素均占有两个字节。
网络-数组