通过在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的含义。
答案 0 :(得分:1)
我想了解** T和** tab的含义。
int
是一种类型。更具体地说,它是整数类型。
int*
也是一种。更具体地说,它是指针类型。指针指向其他对象。 int*
类型的对象尤其指向int
类型的对象。
int**
也是指针类型。它也指向其他对象。 int**
类型的对象指向int*
类型的对象。 int **T
和int **tab
是int**
类型的变量。
new[]
表达式分配具有动态存储的对象数组。表达式返回的值是指向该数组第一个元素的指针。
new int[n]
分配int
对象的数组。表达式返回的值是指向该数组中第一个对象的指针。该指针的类型为int*
。
new int*[m]
分配int*
对象的数组。表达式返回的值是指向该数组中第一个对象的指针。该指针的类型为int**
。
tab
的简洁描述是:tab
是指向指针数组的第一个元素的指针,其中数组的每个元素都指向整数数组的第一个元素。