初学者,第一次用这个平台,我把疑问写在注释里了,如果格式有误请体谅
```c
#include<stdio.h>
#define M 4
#define NUM (M+1)*M/2
int main(void){
int a[NUM],p[M],i,j,index,n;
for(i=0;i<M;i++){
index=i(i+1)/2;
p[i]=&a[index]; **//前边定义的是一个指针数组,这里我还能理解,是把a[index]的地址给了指针p[i],应该没错吧
for(i=0;i<M;i++){
n=6;
for(j=0;j<=i;j++){
p[i][j]=i*M+n; //这里怎么突然就出来个二维数组,这是什么原理请问?初学者,大佬们见笑了
n++;
}
}
for(i=0;i<M;i++){
for(j=0;j<=i;j++){
printf("%4d",p[i][j]);//运行出来确实是一个二维数组
}
printf("\n");
}
return 0;
}
```**
}