30/09/2018, 17:13

Với `struct TS` thì `TS x` và `TS& x` khác nhau như thế nào?

Khi em khai báo một Mảng cấu trúc struct TS thì khi e khai báo
TS x và TS& x thì hai cái đấy có gì khác nhau ạ!

Gió viết 19:14 ngày 30/09/2018
  • TS là struct không phải mảng struct
  • TS &x thì không có struct TS mới dc tạo ra.
  • TS x: giả sử tham số lúc gọi hàm là t. Thì x là struct dc tạo bởi constructor TS x(t);
huong viết 19:25 ngày 30/09/2018

Có khác chứ. Nếu khai báo TS& ts; sẽ bị lỗi.
Mình chạy chương trình thử thì thấy thế
Theo mình biết thì dấu & trước biến thì đó là 1 biến tham chiếu .Dùng để tham chiểu đến 1 biến khác.
Hình như phải khai báo TS &ts = otherTS mói được. Tức là khai báo phải khởi tạo luôn.
Và TS ts; và TS& ts khác nhau khi truyền vào hàm.
Các bác dười góp ý

Hoan Sò viết 19:27 ngày 30/09/2018

cũng k hiểu lắm a có thể nói rõ ra được k

huong viết 19:16 ngày 30/09/2018

Khai báo &bien là biến tham chiêu.
Biến tham chiếu thì phải tham chiếu đến 1 biên khác hay còn gọi biến tham chiếu là bí danh của 1 biến nào đó.
Như bác gió nói thi khai báo TS &x thì ko có struct mới được tạo ra vì biến tham chiếu không được cấp phát bộ nhớ.
Khi bạn khai báo

type &tham_chieu = bien;

thì tham_chieu đã là bí danh của bien. Làm việc với tham_chieu là làm việc với bien.Tức bạn thay đổi tham_chieu thì bạn cũng thay đổi bien,Việc đó rất có lợi cho việc truyền tham số vào hàm mà muốn tham số đó thay đổi.(khỏi sử dụng con trỏ cho đỡ phức tạp)

Minh Hoàng viết 19:16 ngày 30/09/2018

tham chiếu bạn hiểu đơn giản là tạo ra một cái tên nữa cho vùng nhớ đó. Nếu bạn không gán ngay lúc khai báo tham chiếu thì rất bất hợp lý.
Kiểu như bạn nghĩ ra một cái tên nhưng không gọi ai bằng cái tên đó thì không đc (vì tên chỉ có một người có tên đó thôi, nếu bạn định gọi người khác bằng tên đó thì bất lịch sự )

Mai Anh Dũng viết 19:20 ngày 30/09/2018

TS là struct không phải mảng struct

Đồng ý.

Có khác chứ. Nếu khai báo TS& ts; sẽ bị lỗi.
phải khai báo TS &ts = otherTS mói được. Tức là khai báo phải khởi tạo luôn.

Chuẩn không cần chỉnh.

Và TS ts; và TS& ts khác nhau khi truyền vào hàm.

TS ts là biến
TS& ts là reference, tức tham chiếu: http://portal.daynhauhoc.com/series/c-bai-42-reference/

thì tham_chieu đã là bí danh của bien.

Chuẩn

Bài liên quan
0