GIÁO TRÌNH C++ - Trang 39

Con trỏ và mảng.

Trong thực tế, tên của một mảng tương đương với địa chỉ phần tử đầu tiên của
nó, giống như một con trỏ tương đương với địa chỉ của phần tử đầu tiên mà nó
trỏ tới, vì vậy thực tế chúng hoàn toàn như nhau. Ví dụ, cho hai khai báo sau:

int numbers [20];

int * p;

lệnh sau sẽ hợp lệ:

p = numbers;

Ở đây

p

numbers

là tương đương và chúng có cũng thuộc tính, sự khác biệt

duy nhất là chúng ta có thể gán một giá trị khác cho con trỏ

p

trong khi

numbers

luôn trỏ đến phần tử đầu tiên trong số 20 phần tử kiểu

int

mà nó được định

nghĩa với. Vì vậy, không giống như

p

- đó là một biến con trỏ bình thường,

numbers

là một con trỏ hằng. Lệnh gán sau đây là không hợp lệ:

numbers = p;

bởi vì

numbers

là một mảng (con trỏ hằng) và không có giá trị nào có thể được

gán cho các hằng.
Vì con trỏ cũng có mọi tính chất của một biến nên tất cả các biểu thức có con
trỏ trong ví dụ dưới đây là hoàn toàn hợp lệ:

// more pointers

#include <iostream.h>

int main ()

{

int numbers[5];

int * p;

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.