这篇文章运用简单易懂的例子给大家介绍C语言获取数组长度的方法,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
所谓数组,是有序的元素序列。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。
在程序中合理地使用数组,会使程序的结构比较整齐,而且可以把较为复杂的运算,转化成简单的数组来表示。
一、使用规则:
1、可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。
2、只能给元素逐个赋值,不能给数组整体赋值。
(请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。)
3、若不给可初始化的数组赋初值,则全部元素均为0值。
4、假如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。
动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
二、表示方法:
数组元素是组成数组的基本单元。
数组元素也是一种变量, 其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。数组元素的一般形式为:数组名[下标] 其中的下标只能为整型常量或整型表达式。
如为小数时,C编译将自动取整。例如,a[5],a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。在C语言中只能逐个地使用下标变量, 而不能一次引用整个数组。
c语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数)
如:
{ int data[4]; int length; length=sizeofdata)/sizeofdata[0]); //数组占内存总空间,除以单个元素占内存空间大小 printf"length of data[4]=%d", length ); //输出length of data[4]=4 }
通过传递数组名参数到子函数中,以获得数组长度是不可行的。如:
int getLengthint[] a){ int length; length=sizeofa)/sizeofa[0]); //这样是错误的,得到的结果永远是1 return length; } 因为,a是函数参数,到了本函数中,a只是一个指针(地址,系统在本函数运行时,是不知道a所表示的地址有多大的数据存储空间, 这里只是告诉函数:一个数据存储空间首地址),所以,sizoefa)的结果是指针变量a占内存的大小,一般在32位机上是4个字节。 a[0]是int类型,sizeofa[0])也是4个字节,所以,结果永远是1。
因此,获得数组长度,只能在数组定义所在的代码区中,采用以上方法,才可以达到效果。