Giải thích code bst

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.
image

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
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?