01/10/2018, 14:59

Tại sao kết quả khi in node, *node, &node lại khác nhau? &node với *node là gì?

Chào mọi người em đang học C và có thắc mắc ở những dòng bôi đỏ.

Ở function createNode: con trỏ node được tạo ra và return cho hàm.
Nhưng em có thắc mắc là khi in các giá trị node, *node, &node thì chúng có kết quả khác nhau. Đặc biệt thì node luôn có giá trị thay đổi sau mỗi lần chạy còn &node và *node thì không.
Mọi người giải thích giúp em về ý nghĩa thực sự của nó và nơi lưu trữ nó. (em được biết là con trỏ được lưu ở heap nhưng không hiểu về những điều trên)
Có phải giá trị khi print node chính là địa chỉ trên heap của nó ? Vậy thì &node với *node là gì ạ.

Em xin cảm ơn ạ.

Thân Hoàng viết 17:00 ngày 01/10/2018

node: nơi mà nó trỏ đến (trên heap)
&node: vị trí của node trên stack.
*node: vị trí của info.

Hello World viết 17:02 ngày 01/10/2018

Bạn tham khảo con trỏ nhé

Bài liên quan
0