*v6 = v8;
(v6++)[4] = v9;
*v6 = v8 is pointer right? so t means v30 will equal v8 value as well?
v6
is the pointer, so *v6
designates the object it points to (v30
in this case). Thus, yes, *v6 = v8
copies the current value of variable v8
to variable v30
.
I completely don't understand
(v6++)[4] = v9;
why its an increment in the [4] array?
v6++
evaluates to the current value of v6
, with a side effect of afterward incrementing v6
by one. The overall statement is approximately equivalent to these two separate statements:
v6[4] = v9;
v6 = v6 + 1;
For its part, v6[4]
designates the object of the same type as *v6
that appears four positions after *v6
, just as if v6
itself designated an array having at least five elements.
And why it is signed with v9?
The = v9
part is a straightforward assignment. It assigns the current value of variable v9
to the object designated by (v6++)[4]
. I would have to study the code a lot more deeply to hypothesize about why the function performs that assignment.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…