#include <iostream>
using namespace std;
int main ()
{
//vector这个名字的值是一个指向它第1个元素的指针,所以vector是一个指向一个包含10个整形元素的数组的指针
int vector[10], *vp = vector;
int matrix[3][4] = {{90,11,22,33},
{44,55,66,77},
{88,99,1010,1111}};
//*mp = matrix;是错的,matrix并不是一个指向整形的指针,而是一个指向整形数组的指针
int (*p)[4] = matrix;//p是一个指向拥有4个整形元素的数组的指针
//当把p与一整数相加时,p是一行一行地在matrix中移动
//如果想指针逐个访问整形元素而不是逐行在数组中移动,可以一下设置,增加这个指针的值使它指向下一个整形元素
int *Pi = &matrix[0][0];
int *pi = matrix[0];//matrix[i]和*(matrix + i)是等价的,即pi++所以:
cout<< *pi <<endl;//中的*pi和matrix[0][j]即*(*(p + 0) + j)
pi = pi + 5;
cout<<"pi = pi + 5 :";
cout<< *pi <<endl;
cout<< *(*(p + 1) + 1) <<endl;
system("pause");
return 0;
}
using namespace std;
int main ()
{
//vector这个名字的值是一个指向它第1个元素的指针,所以vector是一个指向一个包含10个整形元素的数组的指针
int vector[10], *vp = vector;
int matrix[3][4] = {{90,11,22,33},
{44,55,66,77},
{88,99,1010,1111}};
//*mp = matrix;是错的,matrix并不是一个指向整形的指针,而是一个指向整形数组的指针
int (*p)[4] = matrix;//p是一个指向拥有4个整形元素的数组的指针
//当把p与一整数相加时,p是一行一行地在matrix中移动
//如果想指针逐个访问整形元素而不是逐行在数组中移动,可以一下设置,增加这个指针的值使它指向下一个整形元素
int *Pi = &matrix[0][0];
int *pi = matrix[0];//matrix[i]和*(matrix + i)是等价的,即pi++所以:
cout<< *pi <<endl;//中的*pi和matrix[0][j]即*(*(p + 0) + j)
pi = pi + 5;
cout<<"pi = pi + 5 :";
cout<< *pi <<endl;
cout<< *(*(p + 1) + 1) <<endl;
system("pause");
return 0;
}