Tham khảo tài liệu 'giáo trình c++_hàm và chương trình', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Chương 4. Hàm và chương trình CHƯƠNG 4 HÀM VÀ CHƯƠNG TRÌNH Con trỏ và số học địa chỉ Hàm Đệ qui Tổ chức chương trình I. CON TRỎ VÀ SỐ HỌC ĐỊA CHỈ Trước khi bàn về hàm và chương trình trong phần này chúng ta sẽ nói về một loại biến mới gọi là con trỏ ý nghĩa công dụng và sử dụng nó như thế nào. Biến con trỏ là một đặc trưng mạnh của C nó cho phép chúng ta thâm nhập trực tiếp vào bộ nhớ để xử lý các bài toán khó bằng chỉ vài câu lệnh đơn giản của chương trình. Điều này cũng góp phần làm cho C trở thành ngôn ngữ gần gũi với các ngôn ngữ cấp thấp như hợp ngữ. Tuy nhiên vì tính đơn giản ngắn gọn nên việc sử dụng con trỏ đòi hỏi tính cẩn thận cao và giàu kinh nghiệm của người lập trình. 1. Địa chỉ phép toán Mọi chương trình trước khi chạy đều phải bố trí các biến do NSD khai báo vào đâu đó trong bộ nhớ. Để tạo điều kiện truy nhập dễ dàng trở lại các biến này bộ nhớ được đánh số mỗi byte sẽ được ứng với một số nguyên được gọi là địa chỉ của byte đó từ 0 đến hết bộ nhớ. Từ đó mỗi biến với tên biến được gắn với một số nguyên là địa chỉ của byte đầu tiên mà biến đó được phân phối. Số lượng các byte phân phối cho biến là khác nhau nhưng đặt liền nhau từ thấp đến cao tuỳ thuộc kiểu dữ liệu của biến và tuỳ thuộc vào quan niệm của từng NNLT tuy nhiên chỉ cần biết tên biến hoặc địa chỉ của biến ta có thể đọc viết dữ liệu vào ra các biến đó. Từ đó ngoài việc thông qua tên biến chúng ta còn có thể thông qua địa chỉ của chúng để truy nhập vào nội dung. Tóm lại biến ô nhớ và địa chỉ có quan hệ khăng khít với nhau. C cung cấp một toán tử một ngôi để lấy địa chỉ của các biến ngoại trừ biến mảng và xâu kí tự . Nếu x là một biến thì x là địa chỉ của x. Từ đó câu lệnh sau cho ta biết x được bố trí ở đâu trong bộ nhớ int x cout x địa chỉ sẽ được hiện dưới dạng cơ số 16. Ví dụ 0xfff4 83 Chương 4. Hàm và chương trình Đối với biến kiểu mảng thì tên mảng chính là địa chỉ của mảng do đó không cần dùng đến toán tử . Ví dụ địa chỉ của mảng a chính là a không phải a . Mặt khác địa chỉ của mảng a .