假设我有一个unsigned int* valunsigned char mat[24][8]。现在,val存储变量mat的位置。是否可以使用val中的位置修改mat变量中的位?

例如:

val = 0x00000001val在内存中的位置是0x20004000
mat的第一个元素位于0x00000001

现在我想将mat的值修改为10,4。是否可以使用C ++做到这一点?

最佳答案

是的,有可能,除非数组成员或指针目标中的任何一个是const

例如:

int array[3][2] = { { 0, 1 }, { 2, 3 }, { 4, 5 } };
int *p = &array[1][1];
*p = 42;

// array is now: { { 0, 1 }, { 2, 42 }, { 4, 5 } };

关于c++ - 使用C++中的位置修改数组值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16440363/

10-13 07:04