#include<stdio.h>
int main(void)
{
int li[2][3] = {
{1,2,3},
{11,22,33}
};
int *p;
//第一种
p = &li[0][0];
for(int i = 0; i < 6; i++)
{
//printf("%d
",p[i]);
printf("%d
",*p++); //两行同样效果
}
//第二种
for(p = li[0]; p < li[0] + 6; p++)
{
printf("%d
",*p);
}
//第三种
int (*pi)[3]; //定义一个指针数组,里面的每个元素对应二维数组的一行
pi = li;
for(int i = 0; i < 2; i++)
{
for(int j = 0; j < 3; j++)
{
printf("%d
",pi[i][j]);
}
}
printf("%d,%d,%d,%d,%d,%d
",pi,*pi,pi[0],li[0],&li[0],**pi);
printf("%d,%d,%d,%d,%d,%d
",pi+1,*(pi+1),pi[1],li[1],&li[1],**(pi+1));
//所以,pi = li,和pi = &li[0]是有区别的
return 0;
}