c语言如何定义数组
c语言定义数组的方法是:C语言中,同变量一样;数组也必须先定义后使用。一维数组的定义形式。
1、类型标识符,数组名[常量表达式];例如int a[10];其中a为地址常量。
2、如变量的定义一样,inta;double a;floata等;数组的定义只是把后面的变量名改为数组名而已。
3、int a[10]就是定义了一个数组名为a的数组;此数组有10个元素。其中各元素从a[0]到a[9];并没有a[10]元素。
c语言中,定义一个函数,函数输出结果是一个数组,整个的形式是怎么样的?
提供两个办法:
1.在主调函数中建立数组,将数组指针传给自定义的函数,处理后主调函数中的数组值也就变化了。
void fun(int a[],int n){
……..
}//其中a[]就是要输入的数组,n是这个数组的长度。
void main(void){
int arry[10]={1,2,3,4,5,6,7,8,9,0};
fun(arry,10);
……
}
2.可以在主调函数中建立数组并把首地址和长度传给函数,在函数中创建一个动态数组,处理完后把动态数组的首地址返回主调函数,最后在主调函数中释放动态申请的内存。
int *fun(int a[],int n){
int *p=(int *)malloc(n*sizeof(int));//申请内存.
if(!p){//判断是否申请成功.
printf(“failure…”);
exit(0);
}
memcpy(p,a,n*sizeof(int));//把主调函数的数组拷贝过来.
……
return p;
}
void main(void){
int arry[10]={1,2,3,4,5,6,7,8,9,0},*ptmp;
ptmp=fun(arry,10);
……
free(ptmp);//释放申请的空间.
}
数组的内容是不能一一传给函数的……
C语言中自定义的函数中有数组,应该如何运用该函数
方法
有2
将该数组定义为全局变量,即:
int
g_arr;
void
fun()
{…}
void
main()
{…}
2.将该数组作为函数参数传递到自定义函数里,即:
void
fun(int
arr[])
{…}
void
main()
{
int
arr[10];
fun(arr);
}
C语言 c++ 在自定义函数中创建的数组 怎么在主函数中使用?
提供2个办法供参考:
把自定义函数中的数组创建为static存储性质,并把首地址及大小返回给主函数。
在自定义函数中创建数组时用动态方法建立的堆上,把首地址及大小返回给主函数,在主函数中使用完毕后释放。