ta nghĩ thằng "abc" đó nằm hẳn trên vùng read-write luôn, a chỉ là tên của nó.

Mã:
tntxtnt@vm-0:~/Cpp$ gcc main.cpp -o a0
tntxtnt@vm-0:~/Cpp$ cat main.cpp
int main() {}
 
tntxtnt@vm-0:~/Cpp$ size ./a0
   text    data     bss     dec     hex filename
   1117     552       8    1677     68d ./a0
tntxtnt@vm-0:~/Cpp$ cat main3.cpp
char a[] = "abc";
 
int main() { a[0] = 'b'; }
tntxtnt@vm-0:~/Cpp$ gcc main3.cpp -o a3
tntxtnt@vm-0:~/Cpp$ size ./a3
   text    data     bss     dec     hex filename
   1133     556       4    1693     69d ./a3
tntxtnt@vm-0:~/Cpp$ cat main4.cpp
const char* a = "abc";
 
int main() { a = 0; }
 
tntxtnt@vm-0:~/Cpp$ gcc main4.cpp -o a4
tntxtnt@vm-0:~/Cpp$ size ./a4
   text    data     bss     dec     hex filename
   1137     560       8    1705     6a9 ./a4
main3 chỉ có thêm 4 bytes ở vùng data, trong khi main4 có thêm 8...