为什么const char*
指向的值由char数组更新,该数组应该只保存应存储在ROM中的原始字符串文本的副本。const char *仍然修改指向的值
我知道const char*
,char* const
,const char* const
的基本理论从这个链接const char * const versus const char *?
#include <stdio.h>
#include <stdlib.h>
int main(){
char a[] = "ABCD";
char z[] = "WXYZ";
const char* b = a;
a[1] = 'N'; // WHY THIS WORKS AND UPDATES THE VALUE IN B.... a should make its own copy of ABCD and update
// it to NBCD... b should still point to a read only memory ABCD which can't be changed4
//b[1] = 'N'; // THIS FAILS AS DESIRED
printf("%s\n", b); // Output -> ANCD
return 0;
}
程序中没有数组的副本。赋值不会复制数组。 –