数据名代表首地址
指向数组的指针
#include
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
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
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
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));
}
}