Con trỏ trong C++
Khai báo:
Kiểu_dữ_liệu *tên_con_trỏ
Ví dụ:
int *iPtr; float *fPtr; double *dPtr; int *iPtr1, *iPtr2;
Lưu ý: Dấu sao trong khai báo con trỏ không phải là toán tử trỏ đến (dereference operator), nó chỉ là cú pháp được ngôn ngữ C/C++ quy định.
Cách khai báo dễ gây nhầm lẫn
Ngôn ngữ C/C++ yêu cầu đặt dấu sao giữa kiểu dữ liệu và tên con trỏ nhưng không bắt buộc phải đặt nó gần với kiểu dữ liệu hay gần với tên con trỏ. Do đó, những cách khai báo dưới đây đều được cho phép:
int iPtr1; //We recommended you use this way to declare pointers int iPtr2;
Nhưng mình khuyến nghị các bạn sử dụng cách khai báo đặt dấu sao ngay trước tên con trỏ vì cách thứ hai có thể gây nhầm lẫn.
int* iPtr1, iPtr2;
Với cách khai báo này, iPtr1 là một con trỏ kiểu int, trong khi đó, iPtr2 là một biến kiểu int. Để có được hai con trỏ, chúng ta cần khai báo như sau:
int *iPtr1, *iPtr2;
Gán giá trị cho con trỏ
Giá trị mà biến con trỏ lưu trữ là địa chỉ của biến khác có cùng kiểu dữ liệu với biến con trỏ.
int *ptr;
int value = 5;
ptr = &value;
Do đó, chúng ta cần sử dụng address-of operator để lấy ra địa chỉ ảo của biến rồi mới gán cho con trỏ được. Lúc này, biến ptr sẽ lưu trữ địa chỉ ảo của biến value.
Mời đọc toàn bộ bài viết tại đây ạ :
https://tailieuhoctap123blog.wordpress.com/2019/04/25/toan-bo-kien-thuc-co-ban-ve-c-nguyen-cong-trinh-tong-hop/