码迷,mamicode.com
首页 > 其他好文 > 详细

二级指针的传递和应用

时间:2020-04-06 00:25:42      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:inpu   one   sha   for   str   连续   使用   space   clu   

#include <iostream>

using namespace std;

/*
最近在写一个程序的时候用到了二级指针作为函数参数的情况,就在函数内部如何操作二级指针为数组做以下探讨:

无非有两种使用方式 a[i][j] or *((type *)a + i*col + j);

先看下面的测试源码:
*/

void test(int col, double **a)
{
	int i, j;
	for (i = 0; i < col; i++)
	{
		for (j = 0; j < col; j++)
		{
			a[i][j] = 2.0;
		}
	}
}

void test_1(int col, double **a)
{
	int i, j;
	for (i = 0; i < col; i++)
	{
		for (j = 0; j < col; j++)
		{
			*((double *)a + i * col + j) = 2.0;
		}
	}
}

void main()
{
	int i, j, col;

	cout << "Please input a number must less than 5" << endl;
	cin >> col;
	double ** a;
	a = new double*[col];

	double a_1[5][5];

	for (i = 0; i < col; i++)
	{
		a[i] = new double[col];
	}
	for (i = 0; i < col; i++)
	{
		for (j = 0; j < col; j++)
		{
			a[i][j] = 1.0;
			a_1[i][j] = 10.0;
		}
	}

	//test(col, a);        // 1. pass

    //test(5,a_1);    // 2. error无法从double[5][5]转换为double**,因为不知道5  5大小

    //test_1(col,a);    // 3. error  第一行和第二行不是连续的

    //test_1(5,a_1);    // 4. error 无法从double[5][5]转换为double**,因为不知道5  5大小


	delete[] a[0];
	delete[] a[1];
	delete[] a;
	cout << "Done!" << endl;
}

  

二级指针的传递和应用

标签:inpu   one   sha   for   str   连续   使用   space   clu   

原文地址:https://www.cnblogs.com/cheshl/p/12639948.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!