Làm thế nào để triển khai con trỏ trong C ++?



Bài viết này sẽ giới thiệu cho bạn khái niệm về con trỏ trong C ++ và sau đó theo dõi nó với một minh chứng thực tế hỗ trợ.

Con trỏ trong C ++ là một biến giữ địa chỉ của một biến khác trong c ++. Địa chỉ được lưu trữ trong biến con trỏ và trợ giúp trong việc triển khai cuộc gọi theo tham chiếu.

Các gợi ý sau sẽ được đề cập trong bài viết này,





Bắt đầu với bài viết này về Con trỏ trên C ++

Cú pháp:



kiểu dữ liệu * tên con trỏ VÍ DỤ: int * ptr
  • Biến con trỏ có dấu * trước tên của nó.
  • Một con trỏ còn được gọi là bộ định vị hoặc Bộ chỉ thị.

Sử dụng con trỏ:

  • Phân bổ bộ nhớ động
  • Trong các chương trình khác nhau của mảng, cấu trúc và chức năng

Đây là một mã ví dụ:

#include sử dụng không gian tên std int main () {int num = 17 int * ptr ptr = & num cout<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' } 

Đầu ra:
Đầu ra- Con trỏ trong C ++ - Edureka



Giải trình:

cách sử dụng sắp xếp c ++

Trong chương trình trên, chúng tôi trình bày hoạt động cơ bản của một con trỏ. Chúng ta có một biến số nguyên num với giá trị 17. Chúng ta có biến con trỏ ptr kiểu int. Chúng ta gán địa chỉ của num cho con trỏ ptr.

Đầu tiên chúng ta in giá trị của ptr, đó là địa chỉ. Tiếp theo, chúng tôi in giá trị num và cuối cùng, chúng tôi in giá trị tại vị trí được giữ bởi con trỏ ptr.

Tiếp tục với bài viết này về Con trỏ trên C ++

Con trỏ và Mảng:

Chúng ta có thể coi phần tử đầu tiên của mảng là một con trỏ, vì tên mảng chứa địa chỉ của phần tử đầu tiên. Chúng ta có thể sử dụng một con trỏ theo cách sau.

Đây là một mã ví dụ:

#include using namespace std int main () {int arr [3] = {5, 10, 20} int * ptr ptr = arr cout<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] } 
 Đầu ra: 

Giải trình:

Trong chương trình trên, chúng tôi trình bày hoạt động cơ bản của một con trỏ với một mảng. Chúng ta có một mảng arr với các giá trị 5,10,20. Chúng ta có biến con trỏ ptr kiểu int. Chúng tôi gán địa chỉ của arr cho con trỏ ptr.

Đầu tiên chúng ta in giá trị của ptr [0], đó là phần tử đầu tiên của mảng. Tiếp theo, chúng tôi in phần tử thứ hai và thứ ba tương ứng. Vì các phần tử của mảng được lưu trữ liên tục, vì vậy con trỏ có thể truy cập vị trí khác của mảng theo mức tăng dần.

Tiếp tục với bài viết này về Con trỏ trên C ++

Con trỏ rỗng:

Có loại con trỏ không có giá trị và giữ giá trị null

Thí dụ :

int * ptr = NULL

Chúng rất hữu ích trong các cấu trúc dữ liệu như một danh sách liên kết.

Tiếp tục với bài viết này về Con trỏ trên C ++

Con trỏ Void:

Đây là loại con trỏ không có kiểu trả về.

Tiếp tục với bài viết này về Con trỏ trên C ++

Hoạt động số học con trỏ:

Các hoạt động khác nhau có thể được thực hiện trên con trỏ. Đây là một số loại quan trọng.

  • tăng dần (++)
  • giảm dần (-)
  • sự khác biệt giữa hai con trỏ (p1-p2)
  • thêm một số nguyên vào một con trỏ (+ hoặc + =)
  • phép trừ một số nguyên từ một con trỏ (- hoặc - =)

Đây là đoạn mã để demo một số thao tác sau:

#include using namespace std int main () {int arr [3] = {10, 100, 200} int * ptr ptr = arr for (int i = 0 i<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } } 

Đầu ra:

Giải trình:

Chúng tôi chứng minh hoạt động số học đơn giản của sự gia tăng của biến con trỏ được hiển thị trong chương trình trên.

Tiếp tục với bài viết này về Con trỏ trên C ++

Con trỏ tới con trỏ:

Trong loại hệ thống này, có hai con trỏ. Con trỏ đầu tiên trỏ đến con trỏ thứ hai và con trỏ thứ hai trỏ đến biến đang giữ giá trị.

Đây là một mã ví dụ:

#include sử dụng không gian tên std int main () {int num int * ptr int ** pptr num = 3000 ptr = & num pptr = & ptr cout<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 } 

Đầu ra:

Tiếp tục với bài viết này về Con trỏ trên C ++

Con trỏ đến các hàm:

Đây là một cách chuyển con trỏ đến các hàm. Tham số hàm phải được khai báo là kiểu con trỏ. Nó được hiển thị trong đoạn mã dưới đây,

#include using namespace std float getAverage (int * arr, int size) int main () {int balance [5] = {1432, 232, 3232, 17, 502} float avg avg = getAverage (balance, 5) cout<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg } 


Đầu ra

Đây là cách chúng ta truyền một con trỏ đến một hàm.

Như vậy chúng ta đã kết thúc bài viết này về 'Con trỏ trong C ++'. Nếu bạn muốn tìm hiểu thêm, hãy xem bởi Edureka, một công ty học trực tuyến đáng tin cậy. được thiết kế để đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.