ภาษา C แบบนี้หมายความว่าไงหรือ

ภาษา C เขียนแบบนี้ผมละงง
m เป็น pointer 

m= &tree[move[ply+1]++]; 
1.ที่สงสัยคือ ++ คือเอาค่าอะไรไป + 

m->a=a;
2. อันนี้คืออะไร
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 3
>
>  m= &tree[move[ply+1]++];
>  1.ที่สงสัยคือ ++ คือเอาค่าอะไรไป +
>

เอาค่าเดิมไปบวก  แต่ใน expression ของ postfix increment จะได้ผลออกเป็นค่าเดิมก่อน

postfix increment operator
https://stackoverflow.com/questions/7031326/what-is-the-difference-between-prefix-and-postfix-operators
https://en.cppreference.com/w/cpp/language/expressions

ดังนั้น evaluate แบบ inside-out
ply+1 :  ค่า ply+1
move[ply+1] : ค่า object ในสล็อตนั้นของอะเรย์ move
move[ply+1]++ : ค่า object ในสล็อตนั้นของอะเรย์ move เพิ่มขึ้น 1   แต่ตอนนี้คืนค่าเดิมออกไปก่อน
tree[move[ply+1]++] : ค่า object ในสล็อตลำดับที่เท่ากับค่าใน move[ply+1] ก่อนถูก increment    ของอะเรย์ tree
&tree[move[ply+1]++] : ค่า address ของ object ในสล็อตลำดับที่เท่ากับค่าใน move[ply+1] ก่อนถูก increment    ของอะเรย์ tree

>
>  m->a=a;
>  2. อันนี้คืออะไร
>

pointer dereference and member access

สมมติ m  เป็นถัง address ที่มีเลชที่อยู่ของ object หนึ่ง
1. m->a :  คือค่าของ member a ของ object นั้น      [Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
2. m->a = a : assign ค่าที่มีชื่อว่า a ภายใน local scope นี้   ให้กับ member a ของ object นั้น
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่