数据名代表首地址
指向数组的指针
#include <stdio.h> extern void iterate(int *p); void main(){ int a[]={1,2,3,4,5}; iterate(a); } void iterate(int *p){ int i; for(i=0;i<5;i++){ printf("%d",*p++); } }
指向一维数组的指针
int (*p)[3]
#include <stdio.h> void iterate(int (*p)[3]); void main(){ int a[3][3]={{11,12,13},{14,15,16},{17,18,19}}; iterate(a); } void iterate(int (*p)[3]){ int i; int j; for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf("%d\t",*(*(p+i)+j)); } printf("\n"); } }
指针数组
char *p[3]
#include <stdio.h> void main(){ char *strs[3] ; strs[0]="zhanhua"; strs[1]="linin"; strs[2]="wanwu"; int i ; for(i=0;i<3;i++){ printf("%s\t",*(strs+i)); } }
指针的指针
char **str
#include <stdio.h> void main(){ char *strs[3] ; strs[0]="zhanhua"; strs[1]="linin"; strs[2]="wanwu"; char **ps; ps=strs; int i ; for(i=0;i<3;i++){ printf("%s\t",*(ps+i)); } }