Tác dung của dấu ->

mình có lên mạng xem về danh sách liên kết thì thấy có sử dung dấu ->
nhưng mình ko biết tác dung nên mọi người chỉ cho :grin:

1 Like

Đó là con trỏ đấy b.

1 Like

dạng viết tắt hay sao

Bạn biết gì về kiểu dữ liệu struct hay class chưa?

dùng cho con trỏ trong struct bạn ơi, như (*bien).bienthanhphan thì viết là *bien->bienthanhphan

3 Likes

chuẩn bạn mình cũng hiểu ntn mà ko biết diễn giải ra sao (y)

mình biết class rùi, struct thì chưa

bạn nói rõ về cách sử dung của nó trong class dc ko

Mình không nghĩ bạn cần thiết phải hỏi đến tận cùng như thế đâu, bất kì 1 tài liệu về C++ nào cũng đề cập rất rõ rồi. Bạn nên tự mình trải nghiệm những thứ cơ bản như thế này thì tốt hơn là tốn thời gian chờ đợi câu trả lời từ cộng đồng “Dạy nhau học

Bạn biết gì về toán tử . chưa?

sao b toàn hỏi ngc lại ng ta vậy?

Toán tử thành viên arrow (->) cũng như toán tử dot (.) được sử dụng để tham chiếu các thành viên riêng lẻ của lớp, cấu trúc struct và union trong C++.

Toán tử arrow được sử dụng với một con trỏ tới một đối tượng. Ví dụ, bạn xét cấu trúc sau:

struct sinhvien {
  char ten[16];
  int  diemthi;
} sv;

Nếu p_sv là một con trỏ tới đối tượng của kiểu sinhvien, thì để gán giá trị “hoang” tới thành viên ten của đối tượng sinhvien, bạn viết:
strcpy(p_sv->ten, "hoang");

2 Likes

cảm ơn mọi người, em đã hiểu.Toán tử -> là 1 con trỏ dung để trỏ tới thành viên trong class

tại sao phải dùng con trỏ cho mệt khi mà c++ đã hỗ trợ toán tử dot(.),ai giải thích vs ạ
thank all

Ý của bạn là thế nào? Trường hợp nào mà . thay thế được cho ->? Ngay cả this cũng là con trỏ đấy thôi.

Bạn cho mình hỏi sự khác biết giữa . với -> ạ

Bạn nên tập trung vào học từ đầu thì hơn là hỏi những câu dưới mức cơ bản như thế này. Việc học lập trình không có đường tắt đâu bạn à.
Ps: bạn nên tập trung vào topic của chính bạn tạo ra thay vì đặt câu hỏi khắp nơi như thế này

2 Likes

Trong C/C++ toán tử “.” và toán tử “->” dùng để truy xuất vào các thuộc tính của một đối tượng. Giải thích thêm về thuộc tính và đối tượng, ví dụ cái struct sinhvien có char ten[16]int diemthi vậy khi bạn tạo một biến sinhvien sv thì sv ở đây là một đối tượng kiểu sinh viên có hai thuộc tính là tendiemthi.

Câu hỏi ở đây là làm sao thay đổi được giá trị diemthi hoặc ten của đối tượng sv trên?
Haha hai toán tử “.” và “->” sẽ giải quyết vấn đề này. Vậy khi nào thì dùng . và khi nào dùng ->?
Trong C/C++ toán tử . được dùng khi đối tượng là một giá trị, còn -> được dùng khi đối tượng là tham chiếu (con trỏ). Cho cái ví dụ nữa cho cụ thể:

sinhvien sv1;
sv1.diemthi = 10;

sinhvien *sv2 = new sinhvien();
sv2->diemthi = 10;

Vậy có thể dùng . cho tham chiếu và dùng -> cho giá trị được không?
Cái này bạn tự tìm hiều, và nếu bạn trả lời được thì bạn sẽ good con trỏ đấy.

Và trả lời cho câu hỏi Bạn cho mình hỏi sự khác biết giữa . với -> ạ thì như thế này: Trong hầu hết các ngôn ngữ khác (C#, Java, …) nó không có con trỏ như C/C++ nên nó chỉ có một toán tử là . để truy xuất thuộc tính. Còn trong C/C++ nó có cả biến là giá trị và cả con trỏ nên nó sinh thêm thằng -> để phân biệt biến đang thao tác là con trỏ hay là giá trị mà thôi.

Hy vọng giúp được chút ít gì đó cho bạn!

21 Likes

đấy, góp ý là phải như thế
chứ mình thấy các bạn trên cứ lòng vòng chả đâu vào đâu cả
thanks bạn nakhoa nhé.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?