char *data // Points to some memory having 001E 038CD 0923 8723
我的意图是将内存中的值 03
更改为 02
但不想对数据指针执行任何操作。
我考虑将数据复制到另一个变量(data1
)并对其进行编辑。
除了通过递增指针直接改变值外,还有什么方法可以改变值吗?
*(data1+ PARAMETER_COUNT_POSITION) = SOmeValue;
最佳答案
您已经正确地做到了:
*(data1 + PARAMETER_COUNT_POSITION) = SomeValue;
或:
data1[PARAMETER_COUNT_POSITION] = SomeValue;
或者:
PARAMETER_COUNT_POSITION[data1] = SomeValue; // trollolol
这些是等价的,它们都不会改变data1
本身的值。
只有你这样做才会发生这种情况:
data1 += PARAMETER_COUNT_POSITION;
*data1 = SomeValue;
关于c++ - 除了直接访问之外,还有其他方法可以更改内存中的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853420/