Typedef trong C++
Chào mọi người em đang bị rối ở đoạn truyền * và & trong function nhờ mọi người thông não giúp ạ:
Em hiểu: int *a; thì a là con trỏ chứa địa chỉ của một biến nguyên. *a là giá trị mà con trỏ a trỏ tới.
Có 2 vấn đề nhờ mọi người giúp:
1.
Em thắc mắc ở chỗ này
dấu * đằng trước nó có ý nghĩa gì ? Tại sao định nghĩa nó là *stack mà không phải stack ?
Cái thứ 2 là
thông thường em hay để tham số trong hàm là dấu “*” khi nào gọi hàm thì sẽ truyền địa chỉ vào. Nhưng ở ví dụ này lại là dấu &. Vậy nó có ý nghĩa gì ạ ?
Cảm ơn mọi người nhiều <3
struct node
thay cho cả khối ngoặc nhọn, do khối đó chính là một kiểu hợp lệ, tất nhiên đặt ra kiểu thì phải có tên.Còn 1: nếu định nghĩa typedef node stack thì stack sẽ là kiểu dữ liệu con trỏ lưu kiểu stack.
Vậy: stack s; thì mặc định s đã là con trỏ mà không cần dấu phải không ạ
Đúng rồi nhé. 20 char
anh cho em hỏi luôn sự khác nhau giữa -> với . khi truy cập một thành phần bên trong struct.
p->init()
thay cho(*p).init()
.vậy tại sao phead = NULL; nằm trong hàm main() thì chạy được nhưng để ngoài hàm main() thì nó báo lỗi hả anh
Lệnh (gán…) không được nằm ngoài hàm. Chỉ có khai báo (có khởi tạo) mới nằm ngoài được thôi (lúc này nó thành global).
yes, em cảm ơn anh nhiều <3