二级指针的传递和应用
Posted cheshl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二级指针的传递和应用相关的知识,希望对你有一定的参考价值。
#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; }
以上是关于二级指针的传递和应用的主要内容,如果未能解决你的问题,请参考以下文章