在此示例中,指向指针的指针有什么作用?

时间:2019-04-28 13:34:01

标签: c++ pointers

通过在Internet上搜索,我知道指向指针的指针是指向存储地址的指针。但是我没有在表中使用它们的例子。像这样的** tab可以查看* [rows]这是每一行的值吗?

将**选项卡更改为简单的选项卡会导致程序无法运行。

#include <iostream>

using namespace std;

void write_elements_of_the_table(int **T,int rows, int columns) {

    for (int i=0;i<rows;i++){
    cout <<"\t["<<i<<"]";
    }

    cout<<endl;

    for (int i=0;i<rows;i++){
        cout <<"["<<i<<"]";
       for (int j=0;j<columns;j++){
        cout <<"\t  "<< T[i][j];
       }
    cout<<endl;
    }
}


int main()
{ 
    int **tab, columns,rows;
    cout<<"Write the amount of rows:"<<endl;
    cin >> rows;
    cout<<"Write the amount of columns"<<endl;
    cin >> columns;
    // pointer table
    tab = new int *[rows];
    for (int i=0;i<rows;i++){
      tab[i]=new int[columns];
    }

    for (int i=0;i<rows;i++){
       for (int j=0;j<columns;j++){
        cout<<"Write the element value"<<endl;
        cin>>tab[i][j];
       }

    }

    write_elements_of_the_table(tab,rows,columns);

    //deleting the table

    for (int i=0;i<rows;i++){
        delete []tab[i];
    }

    delete []tab;

    return 0;
}

我想了解** T和** tab的含义。

1 个答案:

答案 0 :(得分:1)

  

我想了解** T和** tab的含义。

int是一种类型。更具体地说,它是整数类型。

int*也是一种。更具体地说,它是指针类型。指针指向其他对象。 int*类型的对象尤其指向int类型的对象。

int**也是指针类型。它也指向其他对象。 int**类型的对象指向int*类型的对象。 int **Tint **tabint**类型的变量。


new[]表达式分配具有动态存储的对象数组。表达式返回的值是指向该数组第一个元素的指针。

new int[n]分配int对象的数组。表达式返回的值是指向该数组中第一个对象的指针。该指针的类型为int*

new int*[m]分配int*对象的数组。表达式返回的值是指向该数组中第一个对象的指针。该指针的类型为int**

tab的简洁描述是:tab是指向指针数组的第一个元素的指针,其中数组的每个元素都指向整数数组的第一个元素。