Khởi tạo con trỏ

Một phần của tài liệu Lập trình C++ căn bản và nâng cao (Trang 60 - 61)

I like nter Milan too.

Khởi tạo con trỏ

Khi khai báo con trỏ có thể chúng ta sẽ muốn chỉựịnh rõ ràng chúng sẽ trỏ tới biến nào,

int number;

int *tommy = &number;

là tương ựương với:

int number; int *tommy; tommy = &number;

Trong một phép gán con trỏ chúng ta phải luôn luôn gán ựịa chỉ mà nó trỏ tới chứ không phải là giá trị mà nó trỏ tới. Bạn cần phải nhớ rằng khi khai báo một biến con trỏ, dấu sao (*) ựược dùng ựể chỉ ra nó là một con trỏ, và hoàn toàn khác với toán tử tham chiếu. đó là hai toán tử khác nhau mặc dù chúng ựược viết với cùng một dấu. Vì vậy, các câu lệnh sau là không hợp lệ:

int number; int *tommy;

*tommy = &number;

Nhưựối với mảng, trình biên dịch cho phép chúng ta khởi tạo giá trị mà con trỏ trỏ tới bằng giá trị hằng vào thời ựiểm khai báo biến con trỏ:

char * terry = "hello";

trong trường hợp này một khối nhớ tĩnh ựược dành ựể chứa "hello" và một con trỏ trỏ

tới kắ tựựầu tiên của khối nhớ này (ựó là kắ tự h') ựược gán cho terry. Nếu "hello" ựược lưu tại ựịa chỉ 1702, lệnh khai báo trên có thểựược hình dung như thế này:

cần phải nhắc lại rằng terry mang giá trị1702 chứ không phải là 'h' hay "hello". Biến con trỏterry trỏ tới một xâu kắ tự và nó có thểựược sử dụng như là ựối với một mảng (hãy nhớ rằng một mảng chỉựơn thuần là một con trỏ hằng). Vắ dụ, nếu chúng ta muốn thay kắ tự'o' bằng một dấu chấm than, chúng ta có thể thực hiện việc ựó bằng hai

Một phần của tài liệu Lập trình C++ căn bản và nâng cao (Trang 60 - 61)