C语言—指向多维数组的指针

作者:追风剑情 发布于:2019-10-12 20:11 分类:C

示例

//Visual Studio中加上这句才可以使用scanf()
//否则只能使用scanf_s()
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>

//argc: 参数个数 argv[]: 参数数组
int main(int argc, char *argv[])
{
	//[]优先级大于*
	//pz指向一个内含两个int类型值的数组
	//int (*pz)[2];//相当于int pz[][2];
	//pax是一个内含两个指针元素的数组,每个元素都指向int的指针
	//int * pax[2];//一维指针数组

	int zippo[4][2] = { {2,4}, {6,8}, {1,3}, {5,7} };
	int(*pz)[2];
	pz = zippo;

	printf("pz=%p, pz+1=%p\n", pz, pz + 1);
	printf("pz[0]=%p, pz[0]+1=%p\n", pz[0], pz[0] + 1);
	printf("*pz=%p, *pz+1=%p\n", *pz, *pz + 1);
	printf("pz[0][0]=%d\n", pz[0][0]);
	printf("*pz[0]=%d\n", *pz[0]);
	printf("**pz=%d\n", **pz);
	printf("pz[2][1]=%d\n", pz[2][1]);
	printf("*(*(pz+2)+1)=%d\n", *(*(pz + 2) + 1));

	system("pause");
	return 0;
}

运行测试
1111.png

标签: C语言

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号