c 数组长度的函数,谁能告诉我如何得到数组的长度的函数

1 , 谁能告诉我如何得到数组的长度的函数Length就可以了function Length(S): Integer; Returns the number of characters in a string or elements in an array. ~~~~~~~~~~~~~~~~~~~~~~~~在C语言中可以这么写:arraysize=sizeof(array)/sizeof(array[0]);height(a)-low(a)+1n:=lenght(数组名)
2 , c语言 数组长度题目错了,你答的是对的 。字符串长度是0 。strlen(a) 得0数组大小是1 。sizeof(a) 得 1.不可以的,c语言规定只能用常量定义数组长度 不过可以这么使用 定义一个足够长的数组,比如100 , 然后k和m比完以后,用k-1或者k-2作为数组的上界就可以了你说的 长度 是用strlen计算出来的吧 , strlen函数计算数组长度的时候是不算结尾那个\0的 。如果仅仅说数组中有多个char,那还是1的a数组的长度是0 这是错误的说法只能说字符串a长度是0a数组的大?。占洌┦?个字节!【c 数组长度的函数,谁能告诉我如何得到数组的长度的函数】
3,c语言怎么获取数组的长度c语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数)如:123456 intdata[4];intlength;length=sizeof(data)/sizeof(data[0]); //数组占内存总空间 , 除以单个元素占内存空间大小printf("length of data[4]=%d", length ); //输出length of data[4]=4} 但,通过传递数组名参数到子函数中,以获得数组长度是不可行的 。如:123456 intgetLength(int[] a) intlength; length=sizeof(a)/sizeof(a[0]); //这样是错误的 , 得到的结果永远是1 returnlength;}因为,a是函数参数 , 到了本函数中,a只是一个指针(地址,系统在本函数运行时 , 是不知道a所表示的地址有多大的数据存储空间,这里只是告诉函数:一个数据存储空间首地址) , 所以,sizoef(a)的结果是指针变量a占内存的大小 , 一般在32位机上是4个字节 。a[0]是int类型,sizeof(a[0])也是4个字节 , 所以,结果永远是1 。因此 , 获得数组长度,只能在数组定义所在的代码区中,采用以上方法,才可以达到效果 。纯数组的长度是不可能获得的,C语言没有这样的机制,你可以在结构体里面加上一个变量表示data数组中元素的个数,在add函数(或者类似的)操作这个元素个数,增加了data元素就加1 , 否则减1,或者置为空,希望能帮到你如果按照你这种参数传入的话,是不能得到数组的长度的 。假设有个node类型的变量a,正常得到数组长度就是sizeof(a.data)就可以了sizeof(data)/siezof(data[0])

    推荐阅读