您的位置:首页 > 其它

初探二维指针

2014-12-12 14:41 183 查看
//*(n+i)<=>n[i]

#include<stdio.h>

main(){

int n[5][5];

int i,j,c=0;

int (*p)[5],*p1;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

n[i][j]=c++;

printf("n[0]:%p,&n[0][0]:%p,n:%p,&n[0]:%p\n",n[0],&n[0][0],n[0],&n[0]);

p=n;

printf("(*p)[5]:\n");

for(i=0;i<5;i++){

for(j=0;j<5;j++)

printf("%5d",p[i][j]/*p[i][j]<=>*((p+i)+j) */);

printf("\n");

}

printf("\n *p1: \n");

for(i=0;i<5;i++){

p1=n[i];

for(j=0;j<5;j++)

printf("%5d",p1[j])/*p1[j]<=>*(p1+j)*/;

printf("\n");

}

getchar();

}

/* 指针是变量,这个变量的值是个地址,变量指向某种数据类型的地址.n,&n[0],n[0],&n[0][0]

的地址相同但类型不同.n[0]是地址,指向"int"型n[0][0]的地址;n是地址,指向"int (*)[5]"型n[0]的地址.

*/

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: