题目一:
杨辉三角用二维数组并不陌生,如何用指针呢,如何传参呢这是几个比较重要的点
二维数组的形参有三种方式
1.直接通过数组方式当形参
例如:
2.通过数组指针的方式当形参
传参直接用数组名,因为二维数组的数组名代表二维数组首行的地址,相当于是一个数组指针,所以可以和形参里面的数组指针对应。
void yanghui(int (*pa)[10],int x,int y){
for(int i=0;i<x;i++){
for(int j=0;j<=i;j++){
if (j == 0){
*(*(pa+i)) = 1;
}
else
*(*(pa+i)+j) = *(*(pa+i-1)+j) + *(*(pa+i-1)+j-1);
}
}
for(int i=0;i<x;i++){
for(int j=0;j<=i;j++){
printf("%5d",*(*(pa+i)+j));
}
printf("\n");
}
}
题目二:
int x[2][2] = {2,4,6,8};
int (*pa)[2] = x;
int i,j;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("%d ",*(*(pa+i)+j));
}
printf("\n");
}
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
printf("%d ",pa[i][j]);
}
printf("\n");
}
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
printf("%d ",(*(pa+i))[j]);
}
printf("\n");
}
形式就太多了,就简单列举几个。