30/09/2018, 21:25

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

Phạm Ngọc Hiếu viết 23:25 ngày 30/09/2018

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

Tien Tran viết 23:41 ngày 30/09/2018

dạng viết tắt hay sao

Nguyễn Tấn Khoa viết 23:40 ngày 30/09/2018

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

Nguyen Lam viết 23:41 ngày 30/09/2018

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

Phạm Ngọc Hiếu viết 23:33 ngày 30/09/2018

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

Tien Tran viết 23:41 ngày 30/09/2018

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

Tien Tran viết 23:30 ngày 30/09/2018

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

Quân viết 23:38 ngày 30/09/2018

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

Nguyễn Tấn Khoa viết 23:39 ngày 30/09/2018

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

Phạm Ngọc Hiếu viết 23:39 ngày 30/09/2018

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

Nguyễn Tấn Khoa viết 23:34 ngày 30/09/2018

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");

Tien Tran viết 23:25 ngày 30/09/2018

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

Vinh viết 23:41 ngày 30/09/2018

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

Khoa NTA viết 23:39 ngày 30/09/2018

Ý 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.

Vinh viết 23:40 ngày 30/09/2018

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

Quân viết 23:38 ngày 30/09/2018

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

Khoa Nguyễn Anh viết 23:40 ngày 30/09/2018

Chào bạn mình xin góp vài ý cho vui.

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ết 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!

Bài liên quan
0