c语言关于数组的问题。子函数调用数组

c语言关于数组的问题。子函数调用数组,第1张

首先这样的作法是没有意义的,因为当函数返回之后,函数原始空间中的数组和变量是临时的,都会被自动清除和释放。如果需要通过函数将改变的结果传回,可以使用指针。 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语言如何取数组元素个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9593961.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存