0
点赞
收藏
分享

微信扫一扫

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

像小强一样活着 2022-03-11 阅读 142

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 条评论