C++ C+中的指针和多维数组+;

C++ C+中的指针和多维数组+;,c++,c++11,pointers,multidimensional-array,C++,C++11,Pointers,Multidimensional Array,我有一段代码: #include <iostream> int main() { int ia[3][4]; // array of size 3; each element is an array of ints of size 4 int (*p)[4] = ia; // p points to an array of four ints p = &ia[2]; // p now points to the last element in ia return 0; }

我有一段代码:

#include <iostream>
int main()
{
int ia[3][4]; // array of size 3; each element is an array of ints of size 4
int (*p)[4] = ia; // p points to an array of four ints
p = &ia[2]; // p now points to the last element in ia
return 0;
}
#包括
int main()
{
int ia[3][4];//大小为3的数组;每个元素都是大小为4的int数组
int(*p)[4]=ia;//p指向四个int的数组
p=&ia[2];//p现在指向ia中的最后一个元素
返回0;
}
p
如何指向
ia
中的最后一个元素

p
如何指向
ia
中的最后一个元素

ia
包含3个元素。每个元素是由4个整数组成的数组
ia[2]
是最后一个元素,即4个整数的最后一个数组

p
如何指向
ia
中的最后一个元素

ia
包含3个元素。每个元素是由4个整数组成的数组
ia[2]
是最后一个元素,即4个整数的最后一个数组

int(*p)[4]=ia;//p指向一个4的数组

p=&ia[2]//p现在指向ia中的最后一个元素

如果你有一个数组

intia[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,20}

然后在
int(*p)[4]=ia之后指针
p
将指向
{1,2,3,4}
p=&ia[2]之后
p
将指向
{9,10,11,20}

如果需要指向最后一个数组的第一个元素的指针,请参见示例:

int ia[3][4] = { { 1,2,3,4 },{ 5,6,7,8 },{ 9,10,11,20 } };
int(*p)[4] = ia; // p points to { 1,2,3,4 }
p = &ia[2]; // p points to { 9,10,11,20 }
std::cout << *(p[0]) << std::endl; // 9, because p[0] points to the first int of { 9,10,11,20 }
std::cout << *(p[0]+3) << std::endl; // 20, because p[0]+3 points to the last int of { 9,10,11,20 }
intia[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,20};
int(*p)[4]=ia;//p指向{1,2,3,4}
p=&ia[2];//p指向{9,10,11,20}
标准::cout
int(*p)[4]=ia;//p指向一个4的数组

p=&ia[2]//p现在指向ia中的最后一个元素

如果你有一个数组

intia[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,20}

然后在
int(*p)[4]=ia之后指针
p
将指向
{1,2,3,4}
p=&ia[2]之后
p
将指向
{9,10,11,20}

如果需要指向最后一个数组的第一个元素的指针,请参见示例:

int ia[3][4] = { { 1,2,3,4 },{ 5,6,7,8 },{ 9,10,11,20 } };
int(*p)[4] = ia; // p points to { 1,2,3,4 }
p = &ia[2]; // p points to { 9,10,11,20 }
std::cout << *(p[0]) << std::endl; // 9, because p[0] points to the first int of { 9,10,11,20 }
std::cout << *(p[0]+3) << std::endl; // 20, because p[0]+3 points to the last int of { 9,10,11,20 }
intia[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,20};
int(*p)[4]=ia;//p指向{1,2,3,4}
p=&ia[2];//p指向{9,10,11,20}

你到底在寻找什么样的“how”呢?我想它会指向第三行的第一个元素。为什么我对ia的initiaziler没有任何额外的维度,但它指向最后一行的最后一个元素,而不是第一个?它没有指向最后一行的最后一个元素。
ia
的最后一个元素是第三行本身。ia的元素是指向int[4]数组的指针。ia有3个要素。最后一个是ia[2]。所以你的例子中的元素不是一个数字,而是一个数组。哦,好吧,所以“最后一个元素”不是指ia[2][3],而是指第三行。谢谢!你到底在寻找什么样的“how”呢?我想它会指向第三行的第一个元素。为什么我对ia的initiaziler没有任何额外的维度,但它指向最后一行的最后一个元素,而不是第一个?它没有指向最后一行的最后一个元素。
ia
的最后一个元素是第三行本身。ia的元素是指向int[4]数组的指针。ia有3个要素。最后一个是ia[2]。所以你的例子中的元素不是一个数字,而是一个数组。哦,好吧,所以“最后一个元素”不是指ia[2][3],而是指第三行。谢谢!