如何访问指向数组第一个元素的指针的值。 我在下面尝试过但代码不会构建。
int _tmain(int argc, _TCHAR* argv[])
{
/// pointers array
mint *yellow [5];
/// each pointers array point to an an array of 10 elements
for (int i = 0; i < 5; i++)
{
yellow[i] = new int [10] ;
}
/// assigning to pointer 1, array 1, element 1 the value of 0;
///
*yellow[0][1][0] = 0;
std::cout << *yellow[0][1][0];
system("pause");
return 0;
}
更新 -
虽然我没有元素20,但我仍然可以分配和打印元素20
int _tmain(int argc, _TCHAR* argv[])
{
/// pointers array
int *yellow [5];
/// each pointers array to an an array of 10 elements
for (int i = 0; i < 5; i++)
{
yellow[i] = new int [10] ;
}
/// assigning to pointer 1, array 1, element 1 the value of 0;
///
yellow[0][20] = 0;
std::cout << yellow[0][20];
system("pause");
return 0;
答案 0 :(得分:1)
要访问第一个数组的第一个元素,请使用
yellow[0][0] = 0;
或
(*yellow)[0] = 0;
要访问第二个数组的第三个元素,请使用
yellow[1][2] = 0;
或
(*(yellow+1))[2] = 0;
概括这个想法......要访问第M个数组的第N个元素,请使用
yellow[M-1][N-1] = 0;
或
(*(yellow+M-1))[N-1] = 0;
答案 1 :(得分:0)
实际上,通过指定为黄色[0] [20],您正在调用undefined behavior。换句话说,您的程序并不总是保证打印0,该值存储在黄色[0] [20]。