C++ (**)指针与二维数组,通过引用(&)去改变数组里的内容

C语言/C++中,经常会用到指针,但对于二维指针平时很少会用到,在学校一般也只学一维指针指向变量或是一维数组。像什么int*a、int&a、int *a等之间的区别,网上有很详细的解释,就不累述了。
还是看看二维指针指向二维数组具体怎么用吧!

//一些常用的头文件
#include<stdio.h>
#include<iostream>
using namespace std;

/*
通过引用直接去修改数组里的元素
小技巧:函数写在主函数(main)前面,就不用写函数声明了
*/
void SetArray(int row,int col,int** &Array){//&是引用符号,得到的是指针地址
//二维指针需要通过一维指针去指向数组
	Array = new int*[row]; //开辟行空间
	for(int i = 0;i < row;i++){
		Array[i] = new int[col]; //开辟列空间
		for(int j = 0;j < col;j++){
			Array[i][j]  = 0;//初始化,也可以将其他数组或是值存进去
		}
	}
}
//打印数组里的内容
void PrintArray(int** Array,int row,int col){
	for(int i = 0;i < row;i++){
		for(int j = 0;j < col;j++){
			cout << Array[i][j] << " ";
		}
		cout << endl;
	}
}
//内存释放:开辟的数组空间用完必须要手动释放,不然会爆内存
void DeleteArray(int** Array,int row){
for(int i = 0;i < row;i++){
		delete[] Array[i];
	}
	delete Array;
}
int main(){
	int** Array = NULL;
	int row = col = 3;
	SetArray(row,col,Array);
	PrintArray( Array,row,col);
	DeleteArray(Array,row);
	return 0;
}

以上这些,希望可以帮到你!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值