這裏我想用XOR操作來交換一個字符串中的兩個字符。但GCC編譯器給我一個segmentation fault
。兩個字符的異或操作
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *str = "welcome";
str[0] = str[0]^str[1]; // Segmenation fault here
str[1] = str[0]^str[1];
str[0] = str[1]^str[0];
printf("%s", str);
return 0;
}
順便說一句,編譯器不會「拋出[你]分段錯誤」。它發生在運行時間。 –