概述
#include<stdio.h>
test1(int a[]){ //数组传参数组接收
int i=0;
for(i=0;i<6;i++)
printf("%d ",a[i]);
printf("n");
}
test2(int a[6]){
int i=0;
for(i=0;i<6;i++)
printf("%d ",a[i]);
printf("n");
}
test3(int *a){ //一维数组名相当于首元素的地址,可以用一级指针接收
int i=0;
for(i=0;i<6;i++)
printf("%d ",*(a+i));
printf("n");
}
test4(int* b[]){
int i=0;
for(i=0;i<3;i++)
printf("%d ",*b[i]);
printf("n");
}
test5(int* b[3]){
int i=0;
for(i=0;i<3;i++)
printf("%d ",*b[i]);
printf("n");
}
test6(int* *b){ //一维数组名是首元素地址,解引用后是元素x,y,z的地址 ,所以是二级指针
int i=0;
for(i=0;i<3;i++)
printf("%d ",*(*(b+i)));
printf("n");
}
test7(int (*c)[3]){ //数组名是首元素的地址,相当于把a[0]={1,2,3}的地址传过来了,即&a,所以用数组指针接收,int(*)[3]用于接收用于存储三个整形元素的数组的地址
int i=0,j=0;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf("%d",*(*(c+i)+j));
printf("哈哈n");
}
test8(int c[2][3]){ //数组名是首元素的地址,相当于把a[0]={1,2,3}的地址传过来了,即&a,所以用数组指针接收,int(*)[3]用于接收用于存储三个整形元素的数组的地址
int i=0,j=0;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf("%d",*(*(c+i)+j));
printf("哈哈n");
}
test9(int c[][3]){ //数组名是首元素的地址,相当于把a[0]={1,2,3}的地址传过来了,即&a,所以用数组指针接收,int(*)[3]用于接收用于存储三个整形元素的数组的地址
int i=0,j=0;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf("%d",*(*(c+i)+j));
printf("哈哈n");
}
test10(int *c[][2]){
int i=0,j=0;
for(i=0;i<1;i++)
for(j=0;j<2;j++)
printf("%d",*(*(*(c+i)+j)));
printf("呵呵n");
}
test11(int* (*c)[2]){
int i=0,j=0;
for(i=0;i<1;i++)
for(j=0;j<2;j++)
printf("%d",*(*(*(c+i)+j)));
printf("呵呵n");
}
int main(){
//一维整形数组传参
int a[6]={1,2,3,4,5,6};
test1(a);
test2(a);
test3(a);
//一维指针数组传参
int x=1,y=2,z=3;
int* b[3]={&x,&y,&z};
test4(b);
test5(b);
test6(b);
//二维整形数组传参
int c[2][3]={1,2,3,4,5,6};
test7(c);
test8(c);
test9(c);
//二维指针数组传参
int g=1,h=2;
int* d[1][2]={&g,&h};
test10(d);
test11(d);
return 0;
}
最后
以上就是友好鸡翅为你收集整理的数组传参C语言的全部内容,希望文章能够帮你解决数组传参C语言所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复