⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pointer_multi.cpp

📁 其他人不需帐号就可自由下载此个C或Java源
💻 CPP
字号:
#include "stdafx.h"
#define FORMAT "%o,%o\n"

void pointerMultiArray()
{
	void pointer();//声明
	//pointer();//调用
		
	/*
	// 指向二维数组的二维指针
	void pointerTwo();
	pointerTwo();
		
	*/
	/*
	// 指向二维数组的一维指针
	void pointerOne();
	pointerOne();
	*/
	
	// 二维数组作为函数参数
 
	void mulitArrayParam1(int *p, int len);
	int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
	// *a = *(a + 0) = a[0]
    mulitArrayParam1(a[0], 12); // 实际上传递的是列指针

	/*
	void mulitArrayParam2(int (*p)[4], int len);
	mulitArrayParam2(a, 12);
	 
	void outPut(int (*p)[4]); // 4 不能缺少
	outPut(a);
	*/ 
}
// 二维数组作为函数参数,使数组a的每一个元素值增加 10 
void mulitArrayParam2(int (*p)[4], int len) //void mulitArrayParam2(int a[][4], int len)
{
	
	int row = len/4; // 3
	int column = 4;  // 4
	
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 4; j++)
			*(*(p + i) + j) = *(*(p + i) + j) + 10; 
			// p + i 是二维数组a的第i行的地址 。
		printf("\n");	
	}	
}
void pointer()
{
	
}

// 定义指向二维数组的二维指针
void pointerTwo()
{
	int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
	int (*p)[4]; // 定义指向二维数组的指针变量,p指向一个包含 4 个元素的一维数组
	p = a; // 初始化
	
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 4; j++)
			printf("%d\t", *(*(p + i) + j)); // p + i 是二维数组a的第i行的地址 。
		printf("\n");	
	}
	
	
}

// 定义指向二维数组的指针	
void pointerOne()
{
	int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
	// 指向多维数组的指针变量
	int *p; // 定义一维指针形式,缺点不能随意输出指定位置的元素 
	
	p = a[0]; 
	// 初始化,使p指向一个整形变量,p+1 指向的元素是p所指向的元素的下一个元素
	
	for(; p < a[0] + 12; p++)
	{
		if((p - a[0]) % 4 == 0)
			printf("\n");
		printf("%d\t", *p);
	}
	printf("\n");
}

// 二维数组作为函数参数,使数组a的每一个元素值增加 1 
void mulitArrayParam1(int *p, int len)
{	
 
	int *temp;
	temp = p;// 保存
	
	int *end = p + len ;
	for(; p < end; p++)
	{
		*p = *p + 1;
	}
	
	p = temp; // 重新初始化 
	for(int i = 0; i < len; i++, p++)
	{
		if((i - 0) % 4 == 0)
			printf("\n");
		printf("%d\t", *p);
	}
	
	printf("\n");
	
}

	

void outPut(int (*p)[4]) //void outPut(int a[][4])
{
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 4; j++)
			printf("%d\t", *(*(p + i) + j)); // p + i 是二维数组a的第i行的地址 。
		printf("\n");	
	}
}	
	
	
	
	
	
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -