void bubble_sort(int a[]){
int n = sizeof(a)/sizeof(a[0]); //自定义函数中,这个n就等于2了,为什么呢
}
main(){
int a[20];
int n =sizeof(a)/sizeof(a[0]); //主函数中,用此方法可得到正确长度
}
谢谢, 这种情况,C语言中没办法节省掉一个参数吗。
追答没办法。
谢谢回答,没有其他办法能省一个参数吗。
追答C里做不到,C++有引用可以做到
本回答被提问者采纳C语言中,怎样获得数组长度?
1、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。2、例如:int data[4],length;length=sizeof(data)\/sizeof(data[0]); \/\/数组占内存总空间除以单个元素占内...
c语言怎么获取数组的长度
c语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数)如:{int data[4];int length;length=sizeof(data)\/sizeof(data[0]); \/\/数组占内存总空间,除以单个元素占内存空间大小printf("length of data[4]=%d", length ); \/\/输出length of data[4]=4} 但,通过传递数组名参...
c语言怎么获取数组的长度,
在C语言中,获取数组长度的方法是通过使用sizeof关键字,它能直接告诉你数组中可容纳元素的数量。例如,当你定义一个数组,如`int data[4];`,你可以通过`length = sizeof(data) \/ sizeof(data[0]);`来计算数组的长度,这将输出数组的元素个数,即4个。这种方法非常直观且有效。然而,当你尝试...
c语言怎么获取数组的长度
在C语言中,要获取数组的长度,关键在于理解sizeof命令的使用。定义数组后,可以通过计算数组总内存空间除以单个元素的内存空间,来确定数组的长度。例如,定义一个int类型的数组data[4],长度可以通过length = sizeof(data) \/ sizeof(data[0])来获取,这将输出数组的长度为4。这种方法适用于数组定义的...
c#怎么获取一个数组的长度?
C语言支持定义一个不显式定义长度的数组,即通过初始化数据来分配数组长度。比如int a[] = {1,2,3,4,5}; 数组a的长度没有显式给出,由于有5个初始化数据,所以分配空间长度为5个int型。但是无论如何定义,数组的长度都是固定的,在定义的时候就已经分配好空间,从这个角度上C语言无法定义无限...
C里面怎么获得一个数组的长度(元素个数)?
用sizeof肯定不行,函数中s[]被当成指针了,所以sizeof出来的结果肯定是4。我刚才也遇到了和你一样的问题,在网上转了半天才有一点收获,把我的收获无私的共享给你吧。c\/c++天生设计缺陷注定了求不出s的长度的。所以一般传数组或指针时都会把数组的长度或指针指向数组的长度作为参数传进去。
C语言中计算数组长度的方法是什么
用 sizeof 可以获得数据类型或变量在内存中所占的字节数。同样,用 sizeof 也可以获得整个数组在内存中所占的字节数。因为数组中每个元素的类型都是一样的,在内存中所占的字节数都是相同的,所以总的字节数除以一个元素所占的字节数就是数组的长度。比较特别的是,比特右移(>>)运算符可以是算术...
C语言,关于求数组长度的问题!
一、如果参数是指针变量(无论什么类型的指针)其结果都是4 二、如果参数是是数组,会返回数组所占空间的大小,即:int a[n] ; sizeof(a)=n*sizeof(int) ;三、如果参数是个变量类型,则会返回这个类型所占空间的大小。sizeof(char)=1 sizeof(int)=4 sizeof(double)=8 具体一个变量类型所...
C语言 如何测出一维数组长度
比如: int a[15] ;那就是 sizeof(a) 测出a的字节长度 , sizeof(int)测出int的长度,然后sizeof(a)\/sizeof(int) 就是数组长度
如何求C语言数组长度
{int data[4];int length;length=sizeof(data)\/sizeof(data[0]); \/\/数组占内存总空间,除以单个元素占内存空间大小printf("length of data[4]=%d", length ); \/\/输出length of data[4]=4}