我正在学习 C 中的指针。当我声明时:
char c1[] ="hello";
c1[0] = c1[1];
printf("%s\n", c1);
它打印出来eello
但是当我执行以下操作时:
char * c2="hello";
c2[0] = c2[1];
printf("%s\n", c2);
它在 C# 中编译,但程序崩溃。你能帮我弄清楚当我执行程序时堆栈中发生了什么吗?
我正在学习 C 中的指针。当我声明时:
char c1[] ="hello";
c1[0] = c1[1];
printf("%s\n", c1);
它打印出来eello
但是当我执行以下操作时:
char * c2="hello";
c2[0] = c2[1];
printf("%s\n", c2);
它在 C# 中编译,但程序崩溃。你能帮我弄清楚当我执行程序时堆栈中发生了什么吗?