我收到以下代码的段错误,有什么问题吗?
在这里,我试图改变a
中的位。
另外,我知道char *
是一个只读内存。
所以,我们必须复制到char a[]
然后修改它???
char *str = "abc";
*str = *str << 1;
答案 0 :(得分:2)
char*
字符串文字指向只读内存。您需要使用char数组:
char str[] = "Hello";
*str = *str << 1;
答案 1 :(得分:0)
你准备做什么?
&LT;&LT;是一个按位运算符,* str不会引用整个字符串,而只引用第一个字符。
我还建议你在对其执行任何操作时在括号周围加上括号,以确保在地址上没有进行位移,而不是在该地址指向的位置。