Pointer arithmetic là gì?

Phrase C
address arithmetic
Phép toán số học trên con trỏ

Một con trỏ (pointer ) trong ngôn ngữ C là một địa chỉ (address) và cũng là một giá trị số. Do đó bạn có thể thực hiện các phép toán số học trên một con trỏ giống như bạn có thể thực hiện trên một giá trị số. Có bốn toán tử số học có thể được sử dụng trên con trỏ: ++, -, + và -. Để hiểu phép toán số học trên con trỏ (pointer arithmetic), chúng ta hãy coi rằng ptr là một con trỏ số nguyên trỏ đến địa chỉ 1000. Giả sử số nguyên có kích thước 32 bit (4 byte), chúng ta hãy thực hiện phép toán số học sau trên con trỏ:


ptr++

Sau khi phép toán trên, ptr sẽ trỏ đến vị trí 1004 vì mỗi lần tăng ptr, nó sẽ trỏ đến vị trí số nguyên tiếp theo cách vị trí hiện tại 4 byte. Phép toán này sẽ di chuyển con trỏ đến vị trí bộ nhớ tiếp theo mà không ảnh hưởng đến giá trị thực tại vị trí bộ nhớ. Nếu ptr trỏ đến một ký tự có địa chỉ là 1000, thì phép toán trên sẽ trỏ đến vị trí 1001 vì ký tự có kích thước 1 byte.

Learning English Everyday