Sự khác biệt giữa toán tử * và toán tử & trong lập trình C là gì

Su Khac Biet Giua Toan Tu Va Toan Tu Trong Lap Trinh C La Gi



Các toán tử được sử dụng để thực hiện các thao tác trên các biến và rất hữu ích cho người lập trình để thực hiện các thao tác như các dạng toán học, quan hệ và logic. Trong ngôn ngữ C, chúng ta có nhiều loại hàm dựng sẵn được sử dụng để thực hiện các tác vụ cụ thể với sự trợ giúp của toán tử dấu đơn.

Trong hướng dẫn này, chúng ta sẽ thấy sự khác biệt giữa * & toán tử trong lập trình C.

* Toán tử trong C

Các * toán tử là một trong những toán tử được sử dụng rộng rãi trong ngôn ngữ lập trình C được sử dụng để truy xuất các giá trị của một con trỏ. Chúng tôi cũng đặt tên toán tử * là toán tử dereference-operator. Bằng cách sử dụng toán tử này, bạn có thể dễ dàng truy cập dữ liệu được lưu trữ trong bộ nhớ bằng sự trợ giúp của con trỏ địa chỉ. Nếu bạn sử dụng nó trong chương trình, bạn phải khởi tạo một con trỏ đang trỏ đến địa chỉ để người ta có thể dễ dàng truy xuất giá trị được lưu trữ trong con trỏ địa chỉ.







& Toán tử trong C

& mặt khác, toán tử được sử dụng để trả về địa chỉ của toán hạng trong vị trí bộ nhớ. Nhờ toán tử &, bạn có thể dễ dàng lấy địa chỉ của biến được tham chiếu trong vị trí bộ nhớ. Để xem địa chỉ của biến thuộc bất kỳ loại dữ liệu nào, bạn sẽ phải đặt tên của biến có dấu &-toán tử.



ví dụ

Dưới đây là một số ví dụ về các chương trình C sử dụng * nhà điều hành, & toán tử và sự kết hợp của cả hai.



Ví dụ 1: Sử dụng chương trình (*) Toán tử

#include

int chủ yếu ( ) {
int MỘT = 5 ;
int * P = & MỘT ;
bản inf ( 'Giá trị của A là %d \N ' , * P ) ;
trở lại 0 ;
}

Mã khởi tạo biến MỘT với giá trị 5 thì nó khai báo một biến kiểu con trỏ có địa chỉ nào đó của bộ nhớ và trong hàm printf nó hiển thị giá trị của địa chỉ MỘT đó là 5.





đầu ra



Ví dụ 2: Toán tử Sử dụng Chương trình (&)

#include

int chủ yếu ( )
{
int biến1 = 1000 ;
int var2 ;
var2 = & biến1 ;
bản inf ( ' Địa chỉ vị trí bộ nhớ của var2 là %i' var2 ) ;
trở lại 0 ;
}

Trong đoạn mã trên, đầu tiên, có một biến số nguyên biến1 có giá trị là 1000. Có một biến khác var2 lấy địa chỉ của biến biến1 . Địa chỉ sau đó được in bằng cách sử dụng %Tôi định dạng specifiers.

đầu ra

Ví dụ 3: Chương trình sử dụng cả toán tử & và *

#include
int chủ yếu ( ) {
int aa = 5 , b ;
int * trang ;
trang = & aa ;
bb = * trang ;
bản inf ( '----địa chỉ của aa là 0x%x \N -----' , & aa ) ;
bản inf ( '----Địa chỉ của-bb là 0x%x \N -----' , & bb ) ;
bản inf ( '----Giá trị của pp là 0x%x \N -----' , trang ) ;
bản inf ( '--------Bây giờ giá trị của aa là %d \N -----' , à ) ;
bản inf ( '-------giá trị của *pp iss %d \N -----' , * trang ) ;
bản inf ( '-----Giá trị của bb là: %d----' , b ) ;
trở lại 0 ;
}

Trong mã C ở trên, hai biến số nguyên đơn giản được khởi tạo và một biến kiểu con trỏ *pp. Sau đó, chúng tôi gán địa chỉ aa cho pp và một lần nữa hủy đăng ký giá trị của nó bằng biến bb. Cuối cùng, chúng tôi in tất cả các giá trị bằng cách sử dụng hàm printf.

đầu ra

Phần kết luận

Các toán tử có một vai trò rất quan trọng trong ngôn ngữ lập trình. Trong bài viết này, chúng ta đã thảo luận về hai toán tử chỉ hoạt động với một toán hạng duy nhất và sử dụng để nâng cao hiệu suất của mã trong ngôn ngữ lập trình C. Cả hai * & các nhà khai thác suy ra ý nghĩa và chức năng của chúng như * được sử dụng cho 'trả về giá trị biến' trong khi & là để 'thao tác các giá trị trong thời gian chạy bằng cách lấy địa chỉ bộ nhớ'.