C ++指向一个数组并访问?

时间:2015-02-25 18:42:22

标签: c++ arrays pointers

如何访问指向数组第一个元素的指针的值。 我在下面尝试过但代码不会构建。

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;

2 个答案:

答案 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]。