C跟指针 学习笔记-3.数组与指针

C和指针 学习笔记-3.数组与指针

数据名代表首地址

指向数组的指针

#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));
	}

}