30/09/2018, 16:28
Một số thắc mắc về con trỏ
Anh cho em hỏi ké !
con trỏ head trở đến Miền của con trỏ a mà rồi con trỏ a lại trỏ tới con trỏ next vậy thì head cũng mang địa chỉ của con trỏ next ko anh nhỉ ?
Bài liên quan
không
nhưng thông qua head sẽ duyệt đc đến con next, và nhiều con ở sau nữa
con trỏ head không trỏ đến địa chỉ của con trỏ a nhé, nó trỏ đến vùng nhớ mà con trỏ a trỏ tới thôi
Confirm cho 2 thanh niên @TTmagic và @Rok_Hoang là trả lời quá đúng nhé
Cái mà Hoàng đang nói đến có phải đang nói đến MIền của con trỏ b hay ko ?
Miền con trỏ b là sao nhỉ, chắc anh theo dõi không kịp?
Dạ giống như là vùng nhớ của b đó anh ?
Tại em có xem video trên mạng thì nó ghi 1 con trỏ có 3 thành phấn .
*a : giá trị của con trỏ .
&a : địa chỉ của riêng con trỏ a.
a : là miền giá trị của con tro mà a trỏ tới ( em nghĩ nó chính là vùng nhớ của con trỏ mà a trỏ tới ).
Có gì sai sót anh sửa giúp em .
Để anh viết lại một ví dụ hoàn chỉnh:
Thì khi này:
Em vẫn còn mơ hồ giữa vùng nhớ vs cái địa chỉ thưa anh . vùng nhớ của a có phải là địa chỉ của a hay không anh ? hay vùng nhớ chỉ là giá trị của vùng nhớ đó .
Đối với câu trên của @Rok_Hoang thì đúng là như vậy.
Câu này gây khó hiểu quá.
Nhiều ngôn từ trong đầu em mà em không biết dùng sao cho hợp lý ?
Kiểu như là giá trị nằm trong địa chỉ mà nguyên cái (địa chỉ + giá tri ) em gọi bằng vùng nhớ ? em nghĩ thế không viết có đúng hay không .
Anh nghĩ tốt nhất sao em không xem lại video con trỏ C++ của anh nhỉ?
http://portal.daynhauhoc.com/p/hoc-lap-trinh-ngon-ngu-cpp/
Anh nghĩ anh giải thích khá rõ với hình ảnh đấy.
Em thường lên youtube xem clip . Hình như mỗi người có 1 cách nói khác nhau thì phải .
Cảm ơn anh . em xem luôn .
Anh cho em hỏi 2 con trỏ TRỎ tới nhau thì cái 2 cái Miền em ghi trong Code nó bằng nhau .
Anh giải thích giúp em 2 cái Miền trên được không ?
Như ở post trên anh đã nói
Trong ví dụ của em,
a
vàb
là 2 con trỏ. Giả sửa
đang trỏ tớiX
, thì khi em ghia
, tức là địa chỉ củaX
.Tiếp đó em gán
b = a
, tức là chob
giữ địa chỉ củaX
.Trong ví dụ này, địa chỉ của X là
000E1510
Dạ anh em hiểu rồi . Cảm ơn anh
Bổ sung luôn. Anh Đạt chưa ghi rõ chỗ này
*pa: là giá trị của a
&pa: địa chỉ của chính con trỏ đó. &pa luôn mặc định và ko thể thay đổi.
pa: miền giá trị của con trỏ ( tức là nơi mà pa nó trỏ đến .TH này pa <=> &a . Vì nó đang trỏ đến biến a).
NODE *p = L.pHead; // p trỏ tới NODE đầu
L.pHead = L.pHead -> pNext; // L.pHead sang Node kể. Nhưng p vẫn ở NODE đầu
delete p ; // ko ảnh hưởng L.pHead. Vì trước đó ta đã kịp gán L.pHead là Node kế rùi.
// Như vậy DSLK của ta sẽ ko bị đứt đoạn.
Chú ý làm việc trên 2 NODE đầu và cuối phải cẩn thận tránh delete đi 2 NODE đó mà quên cập nhật sẽ làm đứt đoạn DSLK.
Địa chỉ của bất cứ biến nào cũng đâu thay đổi được chứ đâu riêng gì con trỏ @TuanNguyen
Anh mới nghe được thuật ngữ “miền giá trị” gần đây trong forum mình. Không hiểu thầy cô dịch từ cái gì mà ra chữ “miền giá trị” nhỉ. Trong các sách anh đọc gần đây, không có quyển nào nói về “miền giá trị” cả.
có đó a. &pa luôn mặc định và ko thể thay đổi. E ghi vậy cho thớt rõ thui chứ mất công nhầm với pa.