Con trỏ (pointer) trong C

Con trỏ (pointer) trong từ ngữ lập trình C++ cũng là một biến, nó nói một cách khác là bộ định vị hoặc chỉ báo đến địa chỉ của một giá trị. Trong bài học C++ dưới đây Taimienphi.vn sẽ giới thiệu cho bạn cụ thể về con trỏ (pointer) trong C++.

Khác với con trỏ trong các từ ngữ lập trình khác như Java hay Python, trong C++, con trỏ được sử dụng để truy cập bộ nhớ lưu trữ & thao tác địa chỉ.

Để tìm tinh thông hơn về con trỏ (pointer) trong C++, độc giả xem qua tiếp nội dung dưới đây của Taimienphi.vn.

 

 

1. Con trỏ (pointer) trong C++

– Con trỏ được sử dụng để truy xuất chuỗi, cây, … & được sử dụng với mảng, kết cấu & hàm.

– Tất cả chúng ta có thể trả về nhiều giá trị từ hàm bằng cách dùng con trỏ.

– Cho phép truy cập địa điểm bộ nhớ lưu trữ bất kỳ trong bộ nhớ lưu trữ laptop.

 

2. Sử dụng con trỏ trong C++

Trong C++, tất cả chúng ta có nhiều phương pháp để sử dụng con trỏ:

– Cấp phát bộ nhớ lưu trữ động: Trong C++, tất cả chúng ta có thể phân bổ bộ nhớ lưu trữ động bằng cách dùng các hàm malloc () & calloc () mà trong đó con trỏ được sử dụng.

– Mảng, hàm & kết cấu: Con trỏ trong từ ngữ C++ được sử dụng rộng rãi trong mảng, hàm & kết cấu, giúp giảm thiểu các mã & cải tổ năng suất.

 

Xem Thêm  Top 19 kết quả tìm kiếm tải game đua xe miễn phí mới nhất 2022

3. Địa chỉ (address) trong C++

Để khám phá về con trỏ, đầu tiên tất cả chúng ta cùng khám phá cách lưu trữ dữ liệu bằng máy tính như vậy nào.

Mỗi biến mà bạn tạo trong chương trình sẽ được gán một địa điểm trong bộ nhớ lưu trữ laptop. Giá trị lưu trữ biến thực sự được lưu trữ ở địa điểm được chỉ định.

Để biết địa điểm dữ liệu được lưu trữ, C++ phân phối toán tử & (tham chiếu), phân phối cho bạn địa chỉ một biến. Nếu var là biến thì &var phân phối địa chỉ của biến đó.

– Chẳng hạn: Cho chẳng hạn về địa chỉ trong C++:

#include

sử dụng namespace std;

int main()

{

int var1 = 3;

int var2 = 24;

int var3 = 17;

cout < &var1=””><>

cout < &var2=””><>

cout < &var3=””><>

}

Đầu ra có dạng:

0x7fff5fbff8ac

0x7fff5fbff8a8

0x7fff5fbff8a4

Note:

– Đầu ra trên hệ thống của các bạn có thể không giống như đầu ra ở trên.

– 0x ở đầu biểu thị địa chỉ ở dạng cơ số 16 (hexadecimal).

– Không những thế địa chỉ đầu tiên khác với địa chỉ thứ hai 4 byte & địa chỉ thứ hai khác với thứ ba 4 byte. Điều đó là do kích cỡ của số nguyên (biến kiểu int) là 4 byte trong hệ thống 64 bit.

 

4. Biến con trỏ trong C++

C++ cho phép người dùng thao tác trực tiếp dữ liệu trong bộ nhớ lưu trữ laptop. Bạn có thể gán & hủy gán khoảng không bất kỳ trong bộ nhớ lưu trữ theo ý mong muốn. Để làm được điều này, tất cả chúng ta sử dụng biến con trỏ.

Xem Thêm  has no substantial following siblings

Biến con trỏ là các biến trỏ đến một địa chỉ rõ ràng và cụ thể trong bộ nhớ lưu trữ được trỏ bởi một biến khác.

 

5. Khai báo con trỏ trong C++

Trong C++, con trỏ được khai báo bằng cách dùng * (ký hiệu dấu hoa thị).

int ∗ a; // con trỏ tới int

char ∗ c; // con trỏ tới char

 

6. Toán tử được sử dụng trong con trỏ

Dưới đây là bảng danh mục các toán tử được sử dụng trong con trỏ trong C++:

con tro pointer trong c

Biểu tượng Tên Miêu tả

& Toán tử Address Phân phối địa chỉ của một biến.

∗ Toán tử Indirection Lấy giá trị của một địa chỉ.

Trong số đó, toán tử tham chiếu (&) được sử dụng để phân phối địa chỉ của một biến. Để lấy giá trị được lưu trữ trong địa chỉ bộ nhớ lưu trữ, tất cả chúng ta sử dụng toán tử (*).

Chẳng hạn, nếu biến kiểu số được lưu trữ trong địa chỉ bộ nhớ lưu trữ 0x123 & nó chứa giá trị là 5. Toán tử tham chiếu (&) phân phối giá trị 0x123, còn toán tử trỏ đến (*) cho giá trị 5.

Note: Dấu (*) đượcsử dụng trong khai báo con trỏ C++ không phải là con trỏ đến. Nó chỉ là một ký hiệu tương đương để tạo thành một con trỏ.

 

7. Chẳng hạn về con trỏ trong C++

Chẳng hạn 1:

Dưới đây là chẳng hạn dễ dàng về sử dụng con trỏ in địa chỉ & giá trị:

#include

Sử dụng namespace std;

int main()

Xem Thêm  canvas

{

int number=30;

int ∗ p;

p=&number;//lưu trữ địa chỉ của biến number

cout{C}{C}{C}{C}{C} <><>

cout <><>

cout{C}{C}{C}{C}{C} <><>

trả về 0;

}

Đầu ra có dạng:

Địa chỉ của biến number là:0x7ffccc8724c4

Địa chỉ của biến p là:0x7ffccc8724c4

Giá trị của biến p là:30

Chẳng hạn 2:

Trong chẳng hạn dưới đây, con trỏ hoán đổi 2 number mà không sử dụng biến thứ 3:

#include

sử dụng namespace std;

int main()

{

int a=20,b=10,∗p1=&a,∗p2=&b;

coutvàlt; p=” “=””><>

∗p1=∗p1+∗p2;

∗p2=∗p1-∗p2;

∗p1=∗p1-∗p2;

coutvàlt; p=” “=””><>

trả về 0;

}

Đầu ra có dạng:

Trước khi hoán đổi: ∗p1=20 ∗p2=10

Sau khoảng thời gian hoán đổi: ∗p1=10 ∗p2=20

 

8. Một số lỗi thường gặp khi làm việc với con trỏ trong C++

Giả sử, nếun mong muốn con trỏ pc trỏ đến địa chỉ của c. Sau đó:

int c, *pc;

pc=c; /* Sai! pc là địa chỉ còn c không phải địa chỉ. */

*pc=&c; /* Sai! * pc là giá trị được chỉ theo địa chỉ, còn %amp;c là một địa chỉ. */

pc=&c; /* Đúng! pc là địa chỉ, %amp;pc cũng là địa chỉ. */

*pc=c; /* Đúng! *pc là giá trị được chỉ theo địa chỉ, c là giá trị. */

Trong cả hai trường hợp, con trỏ pc không trỏ đến địa chỉ của c.

https://thuthuat.taimienphi.vn/con-tro-pointer-trong-c-45804n.aspx
Nội dung trên đây Taimienphi.vn vừa giới thiệu cho bạn về con trỏ (pointer) trong C++. Trong các nội dung kế đến, Taimienphi.vn sẽ giới thiệu tiếp cho bạn về tham chiếu trong C++ là gì, vấn đề tham chiếu trong C cũng được nhiều bạn lập trình quan tâm, nội dung sẽ có các chẳng hạn & nghiên cứu rõ ràng và cụ thể.

“>”trướcvàgt;”>”địavàgt;”>

“>”trướcvàgt;”>”địavàgt;”>

Viết một bình luận