C语言指针数组介绍,定义指针数组,输入输出指针数组

指针数组

1、什么是指针数组;

   (1)数组里面的每一个元素不是值而是值,而是指针。
   (2)把很多的指针集合在一起,就是一个指针数组

2、定义一个指针数组:

	类型标识符  *数组名[长度];
比如:
	int *a[4];
	定义了一个数组名为a,它里面含有几个四个元素,他们分别是a[0],a[1],a[2],a[3],
	它们都是一个指针。

3、如何给指针数组赋初值:

//其中a是一个普通数组,b是指针数组,即b数组当中的每一个值都是指针
int a[3] = {1,2,3},*b[3]={a,a+1,a+2};
printf("%d",*b[0]);

a ----------> a[0] <--------b[0]
a+1 ------> a[1] <--------b[1]
a+2 ------> a[2] <--------b[2]

#include<stdio.h> 
void main(){
	int a[4]={1,2,3,4},*b[4]={a,a+1,a+2,a+3};
	*b[0]=*b[0]+1;//2
	*b[1]=*b[1]+1;//3
	printf("%d,%d",a[0],a[1]);//2 3
}

在这里插入图片描述
变换

 #include<stdio.h> 
void main(){
	int a[4]={1,2,3,4},*b[4]={a,a+1,a+2,a+3};
	*b[0]=*b[0]+1;//2
	*b[1]=*b[1]+1;//3
	printf("%d,%d,%d",a[0],a[1],**b);//2 3 2
}

在这里插入图片描述

**(p+1) 和 *(*p+1)的区别
	#include<stdio.h> 
void main(){
	int a=1,b=4,*p[2]={&a,&b};
	**(p+1)=a*b;//b=a*b=4
	*(*p+1)=a+b;//*(p[0]+1)
	printf("a=%d,b=%d",a,b);
}

在这里插入图片描述
变换

#include<stdio.h> 
void main(){
 
 	char *aa[2]={"abcd","ABCD"};
	printf("%s",*(aa+1));
}

在这里插入图片描述
在这里插入图片描述

发布了8 篇原创文章 · 获赞 7 · 访问量 207

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/104456080