char c[]="opop";
c[2]='k';
Run Code Online (Sandbox Code Playgroud)
但它应该给出一个总线错误,为什么它有效?
你拥有的是一个数组,而不是一个字符串文字.这是完全有效的代码.
char *c="opop";
c[2]='k';
Run Code Online (Sandbox Code Playgroud)
会导致未定义的行为,很可能是崩溃.
好读:
char a [] ="string"有什么区别; 和char*p ="string";