30/09/2018, 18:38

Phạm vi của con trỏ?

Như tiêu đệ ak . e muốn hỏi phạm vi của 1 kn trỏ ntn? . nêu chưa khai báo kn trỏ trong hàm main thì nó sẽ toàn cục hay chỉ cục bộ trong hàm main vậy ???

Tài Nguyễn viết 20:40 ngày 30/09/2018

ak e nhâmf . nếu khai báo kn trỏ trong hàm main thì phạm vi của kn trỏ sẽ toàn cục hay chỉ cục bộ trong hàm main ???

Pham Van Hai viết 20:42 ngày 30/09/2018

Đặc điểm của con trỏ và biến bình thường là giống nhau, chỉ có giá trị mà con trỏ lưu trữ là đặc biệt thôi

Tài Nguyễn viết 20:43 ngày 30/09/2018

nếu như thế thì sau khi thực hiện hàm add_first_node thì n4 và head sẽ ko bị thay đổi giá trị đúng ko a???

... viết 20:40 ngày 30/09/2018

Mục đích của hàm add_first_node không phải là thay đổi giá trị của 1 node, nên giá trị của nó sẽ được giữ nguyên.

Tài Nguyễn viết 20:41 ngày 30/09/2018

nhưng nó sẽ thay đổi kn trỏ next ở bên trong struc n4, e vẫn ko hiểu vì chỉ alf biến cục bộ nhưng sau khi chạy hàm add_first_node vẫn bị thay đổi

Pham Van Hai viết 20:52 ngày 30/09/2018

Mình nghĩ bạn đang hiểu chưa đúng về lời gọi hàm và phạm vi biến:

  • Phạm vi của biến chỉ vị trị biến khai báo, vì con trỏ cũng là biến nên phạm vi của nó và biến thông thường là giống nhâu
  • Khi gọi hàm, có 2 cách đưa tham số vào hàm: gọi hàm vời tham số là giá trị (call by value), dùng cho biến thông thường và ta không thay đổi được giá trị của nó. Và gọi hàm theo tham chiếu (call by reference), dùng với con trỏ và ta có thể thay đổi giá trị mà con trỏ trỏ tới.
    Mình giải thích theo ý hiểu của mình, vì sao như thế thì bạn tham khảo thêm ở đây:

http://www.codingunit.com/c-tutorial-call-by-value-or-call-by-reference

Bài liên quan
0