Con trỏ trỏ đến hằng số – Pointers to constants
Con trỏ hằng và con trỏ hằng số là khác nhau – đừng quên điều này, nó rất quan trọng.
Hãy xem đoạn code sau đây →
1 2 3 |
int arr[5] = {1, 2, 4, 8, 16}; const int *iptr = arr + 2; const char *cptr = "Why?"; |
Các từ khóa const đã thay đổi vị trí của chúng so với ví dụ trong bài trước và bây giờ chúng được đặt ở đầu khai báo. Điều đó làm cho các con trỏ iptr và cptr có thể thay đổi giá trị. Code như sau là hoàn toàn OK →
1 2 |
--iptr; ++cptr; |
Tuy nhiên, các thực thể được trỏ bởi các con trỏ này không thể sửa đổi được nữa. Hai dòng sau sẽ không được chấp nhận bởi trình biên dịch:
1 2 |
*iptr = 0; *cptr = 'T'; |