Địa chỉ bộ nhớ trong lập trình C là gì và cách tìm nó?

Dia Chi Bo Nho Trong Lap Trinh C La Gi Va Cach Tim No



thuật ngữ “địa chỉ bộ nhớ” TRONG lập trình C đề cập đến vị trí trong bộ nhớ của máy tính nơi dữ liệu được lưu giữ. Nói một cách đơn giản, một địa chỉ bộ nhớ giống như một địa chỉ đường phố giúp máy tính truy cập thông tin được lưu trữ nhanh hơn. Để hiểu cách dữ liệu được lưu trong bộ nhớ của máy tính, bạn phải hiểu địa chỉ bộ nhớ trong C. Điều quan trọng là phải nắm bắt được khái niệm về địa chỉ bộ nhớ trong C vì nó là điều cần thiết trong việc tạo ra các chương trình hiệu quả.

Địa chỉ bộ nhớ là gì?

MỘT địa chỉ bộ nhớ là một số thập lục phân xác định vị trí của dữ liệu hoặc hướng dẫn của chương trình trong bộ nhớ của máy tính và có thể khó hiểu đối với người mới bắt đầu. Để trực tiếp đọc và sửa đổi địa chỉ bộ nhớ , con trỏ là cần thiết. Để tìm địa chỉ của một biến, hãy sử dụng toán tử dấu và '&'. Có một biến con trỏ nơi lưu giữ địa chỉ.

Hiểu cách bộ nhớ được sắp xếp là rất quan trọng để hiểu rõ hơn về địa chỉ bộ nhớ . Các byte tạo thành bộ nhớ trong lập trình C và các địa chỉ cho biết vị trí bắt đầu của mỗi byte. Nói cách khác, mỗi byte trong bộ nhớ có một địa chỉ bộ nhớ . Một biến lưu trữ một số chiếm một lượng không gian bộ nhớ cụ thể theo byte và địa chỉ bộ nhớ tương ứng với byte ban đầu của biến.







Làm thế nào để tìm một địa chỉ bộ nhớ?

Có hai cách chúng ta có thể tìm thấy một địa chỉ bộ nhớ bằng ngôn ngữ lập trình C.



Cách 1: Sử dụng Toán tử ‘&’

Toán tử '&' hoặc ký hiệu dấu và trong lập trình C có thể được sử dụng để tìm một biến địa chỉ bộ nhớ . Toán tử này lấy địa chỉ của biến trong chương trình. Hãy xem ví dụ dưới đây để hiểu rõ hơn về phương pháp này.



#include

int chủ yếu ( ) {

int trên một = 40 ;

bản inf ( 'Giá trị của num là %d \N ' , trên một ) ;

bản inf ( 'Địa chỉ bộ nhớ của num là %p \N ' , & trên một ) ;

trở lại 0 ;

}

Trong đoạn mã trên, một biến số nguyên 'trên một' với giá trị 40 được xác định. Giá trị của 'trên một' và nó địa chỉ bộ nhớ sau đó được in bằng cách sử dụng inf() chức năng và các chỉ định định dạng lần lượt là %d và %p. Các '&trên một' biểu thức trả về địa chỉ bộ nhớ của num, mà sau đó được hiển thị bằng cách sử dụng bộ xác định định dạng %p ở định dạng thập lục phân.





đầu ra



Ghi chú: Phương pháp tương tự có thể được thực hiện để tìm địa chỉ của các biến kiểu dấu phẩy động hoặc kiểu chuỗi trong lập trình C.

Phương pháp 2: Sử dụng con trỏ

Trong lập trình C, cũng có thể xác định địa chỉ bộ nhớ sử dụng một con trỏ. Địa chỉ của một vùng bộ nhớ được lưu trữ trong một kiểu dữ liệu cụ thể được gọi là con trỏ trong ngôn ngữ C. Chúng thường được sử dụng trong C để thao tác với bộ nhớ của máy tính. Để tìm địa chỉ bộ nhớ trong lập trình C sử dụng con trỏ, hãy làm theo các bước dưới đây:

Bước 1: Bước đầu tiên trong việc định vị một địa chỉ bộ nhớ là tạo một biến con trỏ. Để tạo một biến con trỏ trong C, trước tên biến có dấu dấu hoa thị (*) . Đoạn mã dưới đây giải thích cách xây dựng “ptr” biến con trỏ.

int * ptr ;

Ghi chú: Vị trí bộ nhớ của biến được lưu trong biến con trỏ được chỉ định bởi dấu hoa thị (*) . Quá trình này được gọi là dereferencing.

Bước 2: Biến con trỏ sau đó sẽ được cung cấp một vị trí trong bộ nhớ. Các địa chỉ bộ nhớ của một biến hiện có được gán cho biến con trỏ bằng cách sử dụng '&' nhà điều hành. Đây là một ví dụ đơn giản:

int đã từng là = 5 ;

int * ptr = & đã từng là ;

Ví dụ sau minh họa một địa chỉ bộ nhớ trong C sử dụng một con trỏ .

#include

int chủ yếu ( ) {

int con số = 100 ;

int * ptr = & con số ;

bản inf ( 'Địa chỉ bộ nhớ của biến số: %p \N ' , ptr ) ;

trở lại 0 ;

}

Đoạn mã trên khai báo một biến con trỏ ptr để trỏ đến địa chỉ của một biến số nguyên con số với giá trị là 100. inf() chức năng sau đó được sử dụng để in địa chỉ bộ nhớ của một số bằng cách sử dụng bộ xác định định dạng %p, in địa chỉ bộ nhớ ở định dạng thập lục phân.

đầu ra

Điều quan trọng cần nhớ là địa chỉ bộ nhớ thay đổi tùy thuộc vào hệ điều hành mà mã đang chạy. Các địa chỉ bộ nhớ được trả về trên mỗi hệ thống sẽ khác nhau, ví dụ, nếu mã giống hệt nhau được chạy trên hai máy tính riêng biệt. Do đó, nên hoạt động với các địa chỉ bộ nhớ tương đối hơn là mã hóa cứng địa chỉ bộ nhớ trong mã.

Phần kết luận

Trong lập trình C, địa chỉ bộ nhớ rất quan trọng để sửa đổi và truy cập dữ liệu. Để lập trình thành công, điều cần thiết là phải hiểu cách tìm địa chỉ bộ nhớ . Trong lập trình C, chúng ta sử dụng toán tử dấu và (&) và một con trỏ để tìm địa chỉ bộ nhớ . Vì con trỏ có thể được sử dụng để truy cập và sửa đổi trực tiếp địa chỉ bộ nhớ , chúng rất quan trọng để thực hiện các chương trình. Lập trình viên có thể sử dụng địa chỉ bộ nhớ để viết mã thành công bằng cách ghi nhớ những nguyên tắc cơ bản này.