char *data // Points to some memory having 001E 038CD 0923 8723
我的目的是将值03
更改为内存中的02
,但不想对数据指针执行任何操作。
我考虑将数据复制到另一个变量(data1
)并进行编辑。
除了通过递增指针直接改变值之外,有没有办法改变值?
*(data1+ PARAMETER_COUNT_POSITION) = SOmeValue;
答案 0 :(得分:4)
你已经正确地做到了:
*(data1 + PARAMETER_COUNT_POSITION) = SomeValue;
或:
data1[PARAMETER_COUNT_POSITION] = SomeValue;
或:
PARAMETER_COUNT_POSITION[data1] = SomeValue; // trollolol
这些是等效的,它们都不会改变data1
本身的值。
只有你这样做才会发生:
data1 += PARAMETER_COUNT_POSITION;
*data1 = SomeValue;