
首先这样的作法是没有意义的,因为当函数返回之后,函数原始空间中的数组和变量是临时的,都会被自动清除和释放。如果需要通过函数将改变的结果传回,可以使用指针。 void shuru(int p,int a[]){ p = 123; int b[10]={1,2,3,4,5,4,6,7}; for (int i=0;i<9;i++) a[i]=b[i] } void main(){ int b, a[10] ; shuru(&b,a); printf("%d",b); for(int i=0;i<10;i++){ printf("%d",a[i]); } }
一般是需要主函数提供保存数据的数组,在参数中给出数组起始地址,然后子函数在其中填充,比如要准会的整数是56
void
fun(int
a,int
b)
{
}
void
main()
{
int
a[20];
fun(a,56);
}
1、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。
2、例如:
int data[4],length;length=sizeof(data)/sizeof(data[0]); //数组占内存总空间除以单个元素占内存空间大小,即等于元素个数
printf("length of data[4]=%d", length ); //输出length of data[4]=4
比如获取一个int类型数组的长度:
int example[20];int ArrLength;
ArrLength = sizeof(example) / sizeof(int);
这样就行了。
srcstr1[200] = 0x52;//R
srcstr1[201] = 0x45;//E
srcstr1[202] = 0x41;//A
srcstr1[203] = 0x44;//D
srcstr1[204] = 0x59;//Y
以上不是胡写吗?若在srcstr1[0]~srcstr1[199]中有一个0,那不就找不到了吗?
以上就是关于c语言关于数组的问题。子函数调用数组全部的内容,包括:c语言关于数组的问题。子函数调用数组、C语言子函数如何返回一个数组,主函数如何接收、c语言如何取数组元素个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)