为什么我必须在使用指针时添加&
incout
子句。const
我在下面的代码中。如果我不添加&
子句,它会说illegal structure operation
。
int Marks [10]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
// Create a constant pointer to Marks array
const int* pMarks = Marks;
for (int i = 0, bytes = 0; i < 10; ++i, bytes += 4)
{
cout << "Element " << i << ": " << pMarks <<" + ";
cout << bytes << " bytes" << " = " << (pMarks + i) << endl; // that & is required before (pMarks + i)
}
I want my output would be something like this: stdout:
Element 0: 0x7fff1d26d6c0 + 0 bytes = 0x7fff1d26d6c0
Element 1: 0x7fff1d26d6c0 + 4 bytes = 0x7fff1d26d6c4
Element 2: 0x7fff1d26d6c0 + 8 bytes = 0x7fff1d26d6c8
Element 3: 0x7fff1d26d6c0 + 12 bytes = 0x7fff1d26d6cc
Element 4 : 0x7fff1d26d6c0 + 16 bytes = 0x7fff1d26d6d0
Element 5: 0x7fff1d26d6c0 + 20 bytes = 0x7fff1d26d6d4
Element 6: 0x7fff1d26d6c0 + 24 bytes = 0x7fff1d26d6d8
Element 7: 0x7fff1d26d6c0 + 28 bytes = 0x7fff1d26d6dc
Element 8: 0x7fff1d26d6c0 + 32 bytes = 0x7fff1d26d6e0