二级指针&指针数组相关知识

  • 二级指针&指针数组:
  • 可以使用二级指针指向一个指针数组
	数据类型*  指针数组名[元素个数];
	数据类型*  *二级指针变量名;
  • 两者关系:
  • 指针数组名 <==> 二级指针变量名
  • 补充:指针数组的基础知识
  • 格式:
  • 数据类型 *指针数组名[数组的元素个数]
  • 特点:
  • 1.本质上是一个数组
  • 2.指针数组中的每个元素都是一个指针类型,即每个元素都是一个地址
  • 定义指针数组并初始化的两种方式:
  • 第一种:
	int a = 11;
	int b = 22;
	int c = 33;
	int d = 44;
	int e = 55;
	int *p[5] = {&a,&b,&c,&d,&e};
  • 第二种:
	int a = 11;
	int b = 22;
	int c = 33;
	int d = 44;
	int e = 55;
	int *p[5] = {NULL};
	p[0] = &a;
	p[1] = &b;
	p[2] = &c;
	p[3] = &d;
	p[4] = &e;
  • 指针数组的基本操作:
  • 一、取指针数组每个元素的值(即普通变量的地址):
	for(int i = 0; i < 5; i++)
	{
	
	     printf("p[%d] = %p\n",i,p[i]);
	
	}
  • 二、取指针数组每个元素指向的地址空间的值(即普通变量的值):
	for(int j = 0; j < 5; j++)
	{
	
	     printf("*p[%d] = %d\n",j,*p[j]);
	
	
	}
  • 三、对指针数组的每个元素进行取地址的操作(即每个元素的地址):
	for(int k = 0; k < 5; k++)
	{
	
	     printf("&p[%d] = %p\n",k,&p[k]);
	
	}
  • 四、输出字符型指针数组中每个元素指向的字符串:
	char *s[5] = {"I","Love","Henan","and","Beijing"};

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

		printf("%s ",s[i]);
	
	}
  • 拓展知识:字符型数组和字符型指针的相关操作

  • 一、输出字符型数组存储的字符串:

	char s1[20] = "gohome";
	printf("%s\n",s1);
  • 二、输出字符型指针指向的字符串:
	char *s2 = "jiyuancity";
	printf("%s\n",s2);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值