深刻解析int(*p)[]和int(**p)[]。本站提示廣大學習愛好者:(深刻解析int(*p)[]和int(**p)[])文章只能為提供參考,不一定能成為您想要的結果。以下是深刻解析int(*p)[]和int(**p)[]正文
1. int(*p)[10]:
依據運算符的聯合律,()的優先級最高,所以p是一個指針,指向的一個維度為10的一維數組。
p一個指向數組的某一行
int a[1][4]={1,2,3,4};
int (*p)[4] = a;//p point to the row of array a
for(int i=0;i<4;i++)
{
cout<<*((*p)+i)<<" ";
}
2. int(**q)[10]
這個的意義:q是一個指針,指向的元素就是1.中的p.
上面給一個例子:
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a[2][2]={1,2,3,4};
int (*p)[2] = a;//p point to the row of array a
for(int i = 0;i<2;i++)//output matrix using p
{
for(int j = 0;j<2;j++)
{
cout<<*(*(p+i)+j)<<" ";
}
cout<<endl;
}
int (**q)[2] = &p;//q point to p
for(int i = 0;i<2;i++)//output matrix using q
{
for(int j = 0;j<2;j++)
{
cout<<*(*(*q+i)+j)<<" ";
}
cout<<endl;
}
getchar();
return 0;
}