C++笔记:指针数组和数组指针

1. 概念

1.1. 指针数组

int* ptrA[5];

指针数组本质上来讲是一个数组,数组的内容是指针;

1.2. 数组指针

int (*ptrB)[5];

数组指针的本质上来讲是一个指针,只是这个指针用来处理数组问题;


2. 实验

  • 指针 + 1代表地址偏移一个数据类型的大小;
  • 数组指针 + 1 代表地址偏移量 = 数据类型的大小 * 数组的列数;
    int test[2][5]{
		{1001, 1002, 1003, 1004, 1005},
	    {2001, 2002, 2003, 2004, 2005}
	};
	
	int* ptestA[5];                          //指针数组  五个int类型的指针
	int(*ptest)[5]{test};                    //数组指针, 一行5列

	std::cout << ptest << std::endl;         // 00BBFD60
	
	ptest = ptest + 1;                       //数组指针的指针 + 1 ==  数据类型的大小 * 数据的列数  == 4 * 5
	
	std::cout << ptest << std::endl;         // 00BBFD74

	std::cout << test[1][4] << std::endl;    // 2005
	std::cout << ptest[0][1] << std::endl;   // 2002
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值