【发布时间】:2018-04-19 10:51:50
【问题描述】:
我正在尝试将指针 y 分配给指针 x,*x = *y 但如果 testChar 是指针,它会崩溃。
char *testChar = "abc";
char *x = testChar;
char *y = testChar + 1;
char temp;
temp = *x;
*x = *y;
*y = temp;
如果我将代码更改为 char testChar[] 而不是 *testchar 它工作得很好。谁能解释一下这些区别?
【问题讨论】:
-
*x = *y;? o.O -
另外,这在 SO 中得到了广泛的讨论。您的
testChar应该是const因为它指向一个只读对象的字符串文字。但是,在c 中,您可以使用const来防止意外修改您不想修改的内容,但防止它最终是您的责任。 -
char testChar[] = "abc";字符 *x = 测试字符;字符 *y = testChar + 1;炭温度;温度 = *x; *x = *y; *y = 温度;这个程序帮助交换。我在极客的极客中找到了它。我没有在c中玩过字符数组。看不懂
-
@Sujananth 你自己找到了解决方案。你在这里需要什么?
-
无法理解为什么会崩溃
标签: objective-c c xcode pointers llvm