Kuest AI

Học mọi thứ, miễn phí

Bắt đầu miễn phí

Học C++ nhanh gấp 10 lần với AI

Con trỏ, tham chiếu và bộ nhớ được giải thích bằng sơ đồ. Dán mã hoặc lỗi trình biên dịch của bạn, Kuest sẽ giúp bạn tìm ra nguyên nhân.

817,000+học sinh đã học cùng Kuest

chủ đề
10
Loại
Biên dịch, kiểu tĩnh
Trình độ thường gặp
CS1, CS2 và cấu trúc dữ liệu bậc đại học
Dẫn đến
Hệ thống, phát triển game, hệ thống nhúng

Xem cách Kuest hướng dẫn

Kuest hỏi trước khi giải thích, để bạn tự suy nghĩ và nhớ lâu hơn.

Bạn: void addOne(int x) { x = x + 1; } Tôi gọi addOne(n) khi n = 5 mà n vẫn là 5. Tại sao?
Kuest: Khi bạn gọi addOne(n), hàm nhận chính n hay nhận một thứ khác?
Bạn: Tôi nghĩ hàm nhận n, nhưng có lẽ nó nhận một bản sao?
Kuest: Đúng vậy, int x là một bản sao. Vậy x = x + 1 thay đổi biến nào?
Bạn: Chỉ bản sao x, và nó biến mất khi hàm kết thúc. n không bao giờ thay đổi.
Kuest: Chính xác. Thay đổi nhỏ nào ở tham số sẽ cho phép hàm thay đổi n?
Bạn: Hãy biến nó thành tham chiếu: void addOne(int& x). Khi đó x là tên khác của n, nên n trở thành 6.

Theo mặc định, tham số là bản sao; thêm & để truyền theo tham chiếu khi hàm cần thay đổi biến của lời gọi.

Học sinh tập trung học cùng Kuest

học sinh
817,000+
quốc gia
100+
  • Từ điểm C lên A môn hóa

    “Mình đã ngừng chép đáp án và bắt đầu thật sự hiểu bài. Điểm hóa của mình từ C lên A chỉ trong một học kỳ.”

    Học sinh lớp 11, Texas
  • 3 giờ → 40 phút

    “Ghi chú của mình biến thành bài kiểm tra chỉ trong vài giây. Việc từng mất cả đêm giờ chỉ mất bằng một tập phim.”

    Học sinh lớp 10, California
  • Cuối cùng cũng sẵn sàng cho SAT

    “Kế hoạch cho mình biết chính xác cần làm gì mỗi ngày. Lần đầu tiên, mình bước vào phòng thi với tâm trạng bình tĩnh.”

    Học sinh lớp 12, New York
  • Không bao giờ cho mình bỏ qua bước nào

    “Lúc đầu hơi phiền, nhưng đến ngày thi thì đúng là cứu cánh. Mình có thể làm mọi bài mà không cần đến nó.”

    Học sinh lớp 9, Ohio
  • Tốt hơn gia sư của mình

    “Có mặt cả lúc nửa đêm, kiên nhẫn, lại rẻ hơn một buổi học với gia sư cũ của mình.”

    Sinh viên năm nhất, Florida
  • Chuỗi của mình đã 94 ngày

    “Các nhiệm vụ chỉ mất mười phút. Mình làm trên xe buýt. Không hiểu sao giờ mình lại là người giải thích Sinh học cho bạn bè.”

    Học sinh lớp 11, Illinois
  • Cuối cùng mình cũng thông tiếng Tây Ban Nha

    “Nói thành tiếng với gia sư giúp mình sửa phát âm nhanh hơn cả một năm học trên lớp.”

    Học sinh lớp 10, Arizona
  • Tìm ra lỗ hổng chỉ trong một đêm

    “Bài kiểm tra lỗ hổng cho mình thấy là mình chưa từng hiểu mol. Sửa được trong 15 phút.”

    Học sinh lớp 11, Georgia
  • Phụ huynh đây: không còn khủng hoảng lúc 9 giờ tối

    “Con trai tôi nhận được hỗ trợ thực sự mà tôi không phải giả vờ nhớ Giải tích, và tôi có thể xem tiến bộ của con mỗi tuần.”

    Phụ huynh, Washington

Phương pháp

Cách học C++ với Kuest

C++ sẽ dễ hơn khi bạn hình dung được bộ nhớ: mỗi biến nằm ở đâu, con trỏ chứa gì và khi nào đối tượng bị hủy. Hãy vẽ ra, đọc lỗi trình biên dịch từ lỗi đầu tiên và thường xuyên luyện các chương trình nhỏ thay vì hiếm khi làm chương trình lớn.

  1. Học từng tính năng mộtTrò chuyện với gia sư

    Hỏi về tham chiếu, vector hoặc lớp và trả lời các câu hỏi kiểm tra của Kuest trước khi học thêm ý mới.

  2. Vẽ bộ nhớBảng hướng dẫn

    Xem stack, heap và vị trí mỗi con trỏ trỏ tới được vẽ trên bảng học tập.

  3. Giải mã lỗi trình biên dịchChụp ảnh

    Dán mã và đầu ra trình biên dịch, hoặc chụp màn hình, Kuest sẽ giúp bạn tìm lỗi thực sự đầu tiên.

  4. Dự đoán kết quảCâu đố

    Trả lời câu đố về các đoạn mã có con trỏ, tham chiếu và vòng lặp: chương trình in gì, và đâu là hành vi không xác định.

  5. Ghi nhớ quy tắcThẻ ghi nhớ

    Ôn lại quy tắc truyền tham số, const và các lệnh gọi Thư viện chuẩn phổ biến bằng flashcard ngắt quãng.

  6. Tập trung vào điểm yếuTìm lỗ hổng kiến thức

    Để Kuest tìm những phần bạn thường bỏ sót, như số học con trỏ hoặc vòng đời đối tượng, rồi chỉ luyện phần đó.

Bạn sẽ học gì

Chạm vào một chủ đề để học ngay.

  1. 01Cấu trúc chương trình và biên dịchViết main, dùng #include và hiểu quá trình biên dịch, liên kết
  2. 02Kiểu dữ liệu, nhập và xuấtDùng int, double, char và bool với std::cin và std::cout
  3. 03Luồng điều khiểnViết đúng các vòng lặp if, switch, for và while
  4. 04Hàm và tham sốTruyền theo giá trị, tham chiếu và tham chiếu const, đồng thời biết khi nào dùng từng cách
  5. 05Mảng, chuỗi và std::vectorLưu tập hợp dữ liệu bằng std::vector và std::string thay vì mảng thô
  6. 06Con trỏ và tham chiếuGiải thích địa chỉ, giải tham chiếu bằng * và lý do con trỏ có thể là null
  7. 07Bộ nhớ và vòng đời đối tượngGiải thích stack, heap, new và delete, cùng lý do smart pointer hữu ích
  8. 08Lớp và đối tượngViết lớp với constructor, destructor cùng các thành viên public và private
  9. 09Kế thừa và đa hìnhGhi đè hàm virtual và dùng con trỏ lớp cơ sở an toàn
  10. 10Thư viện chuẩn và templateDùng std::map, các thuật toán như std::sort và template hàm đơn giản

Thử hỏi

Chạm vào một câu hỏi và Kuest sẽ bắt đầu hướng dẫn từng bước.

Giúp bạn chuẩn bị cho

  • Các môn Nhập môn lập trình (CS1) và CS2
  • Các môn cấu trúc dữ liệu
  • Kỳ thi cuối kỳ khoa học máy tính

Một tháng Kuest có giá thấp hơn một giờ học với gia sư

Kiên nhẫn như nhau, mọi lúc, mọi môn học. Hoặc bạn có thể dùng gói miễn phí mãi mãi.

Gia sư riêng

$40–80cho một giờ

  • Cần đặt lịch trước nhiều ngày
  • Mỗi buổi chỉ học một môn
  • Dừng khi hết giờ

Kuest Plus

$10một tháng, thanh toán hằng năm

  • Mọi môn học và kỳ thi trên trang này
  • Bất kỳ lúc nào, lâu tùy bạn cần
  • Câu đố, thẻ ghi nhớ, podcast và đề thi thử

Giải đáp thắc mắc

Buổi học tiếp theo của bạn bắt đầu tại đây

Gói miễn phí mãi mãi. Không cần thẻ.

Bắt đầu miễn phí