/*
* date:2011-2-15
* create by zhoulq
*/
#include <stdio.h>
#include <string.h>
//杨辉三角
void ptr(int n)
{
int **arc;//申明一个指向指针的指针(相当于一个不规则的二位数组)
int i,j;
arc=(int**)malloc(sizeof(int)*n);//开辟n行
for(i=0;i<n;i++)
{
*arc=(int*)malloc(sizeof(int)*(i+1));//在第i行上开辟i+1列
//列赋值
for(j=0;j<i+1;j++)
{
if(j==0||j==i)
{
*(*arc+j)=1;
}
else
{
*(*arc+j)=*(*(arc-1)+j-1)+*(*(arc-1)+j);//*(arc-1) 表示的是上一行的行地址变换为该行(上一行)的首列地址
}
printf(" %d",*(*arc+j));
}
printf("\n");
arc++;//行变换
}
}
void main()
{
ptr(8);
}
来源:https://www.cnblogs.com/kingge/archive/2011/02/16/1956126.html