Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Vai trò của biến trong một đoạn chương trình

  1. #1
    Ngày gia nhập
    05 2015
    Bài viết
    12

    Mặc định Vai trò của biến trong một đoạn chương trình

    Mọi người cho mình hỏi vai trò biến p và q trong hàm dưới đây được dùng để làm gì ạ? Em nghĩ chưa ra ạ!
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		vaitrocuabien p va q.PNG
Lần xem:	0
Size:		9.1 KB
ID:		51367
    Sống sao cho đến khi nhắm mắt xuôi tay không phải ân hận về những năm tháng đã sống hoài, sống phí.

  2. #2
    Ngày gia nhập
    07 2011
    Bài viết
    418

    hàm này để xóa giá tị x trong dslk đơn có head là pHead.

    p là con trỏ trỏ vào node chứa giá trị x
    q là con trỏ trỏ vào node đứng trước p, cần để nối 2 phần trước-sau lại với nhau khi xóa p

    code trên ko đúng, phải truyền tham chiếu pHead (Node*& pHead) mới đúng, vì lỡ x ở ngay pHead thì giá trị pHead sẽ bị thay đổi, truyền Node* pHead chỉ là copy của pHead, ko phải pHead thật sự.

  3. #3
    Ngày gia nhập
    05 2015
    Bài viết
    12

    Cảm ơn INTP nhiều ạ! Cộng thêm giải thích rõ ràng, cụ thể nữa chứ! ))
    Sống sao cho đến khi nhắm mắt xuôi tay không phải ân hận về những năm tháng đã sống hoài, sống phí.

  4. #4
    Ngày gia nhập
    01 2013
    Bài viết
    1,446

    p, q là hai biến chạy; do chỉ có 1 chiều đi tới nên phải có con trỏ vào node phía sau thì mới thao tác được.

  5. #5
    Ngày gia nhập
    02 2016
    Bài viết
    256

    Nếu nói đúng nhiệm vụ của hàm thì nó chỉ xóa node đầu tiên có trị x. Chứ nó không xóa hết tất cả trị x.

    Loại hàm này đáng lẽ không nên dùng void. Nên cho nó trả về số nodes mà nó xóa.
    Khi cần xóa tất cả trị x, người ta sẽ gọi hàm nhiều lần, cho đến khi nó trả về 0.

  6. #6
    Ngày gia nhập
    01 2013
    Bài viết
    1,446

    Mặc định Vai trò của biến trong một đoạn chương trình

    Trích dẫn Nguyên bản được gửi bởi NguNhuheo Xem bài viết
    Nếu nói đúng nhiệm vụ của hàm thì nó chỉ xóa node đầu tiên có trị x. Chứ nó không xóa hết tất cả trị x.

    Loại hàm này đáng lẽ không nên dùng void. Nên cho nó trả về số nodes mà nó xóa.
    Khi cần xóa tất cả trị x, người ta sẽ gọi hàm nhiều lần, cho đến khi nó trả về 0.
    Không nên. Nếu cần xóa hàng loạt thì viết riêng một hàm xử lí hàng loạt.

    Hoặc viết như strtok().
    Đã được chỉnh sửa lần cuối bởi prog10 : 08-01-2017 lúc 08:42 PM.

  7. #7
    Ngày gia nhập
    02 2016
    Bài viết
    256

    Trích dẫn Nguyên bản được gửi bởi prog10 Xem bài viết
    Không nên. Nếu cần xóa hàng loạt thì viết riêng một hàm xử lí hàng loạt.

    Hoặc viết như strtok().
    Đúng vậy.
    Chỉ là ở đây, tôi khuyên chủ thớt tập giảm thiểu loại hàm void bằng cách ví dụ một tiện ích của cái mà hàm trả về.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn