Mọi ngưởi giải thích dùm em dòng code dưới với ạ.Với cho em hỏi tại sao lại dùng const trong.
Giải thích code bst
Nếu là code C thì const
chỉ là hình thức và ý nói rằng hàm này không thay đổi gì với nội dung được trỏ bởi root
cả. (nhìn hàm là thấy, chỉ return không à)
Ở trên mình nói là hình thức nghĩa là mình vẫn có thể thay đổi được nội dung được quản lý bởi con trỏ root
bằng cách… cast về non const. :v
Vd:
#include <stdio.h>
void sher(const int *a) {
*a = 3;
}
int main() {
int a = 0;
sher(&a);
printf("%d\n", a);
}
Compile sẽ lỗi:
prog.c: In function 'sher':
prog.c:4:8: error: assignment of read-only location '*a'
4 | *a = 3;
| ^
Nhưng nếu mình cast về int*
void sher(const int *a) {
*(int*)a = 3;
}
3
Vẫn in ra 3
như thường. :V :V :V
4 Likes