c - c中与指针相关的段错误

标签 c

<分区>

int main()
{
        char *s="Hello";
        *s="World";
        printf("%s\n",s);
}

为什么上面的程序会导致段错误?

最佳答案

int main()
{
    char *s="Hello"; // makes 's' point to a constant
    *s="World";      // modifies what 's' points to
    printf("%s\n",s);
}

第一行代码让s指向一个常量。第二行尝试修改 s 指向的内容。所以你试图修改一个常量,你不能这样做,因为常量是......好吧......常量。

关于c - c中与指针相关的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18389372/

相关文章:

c - "A : B : C"形式的 makefile 规则语法是什么意思?

c++ - 将字符串连接成自己的协议(protocol)

c - C 中的 UDP : Losing first byte when sending data

c - printf ("\033c") 是什么意思?

c++ - 在具有可变参数的方法中转换警告

c - 最长路径: Recursive Backtracking with Constraints in C

c - K60 系列 GPIO 键盘(C 语言)

c - 使用 OpenMP 按列和按行并行矩阵乘以 vector

c# - ASP.NET 中文本框的正则表达式验证器出现问题

c - 具有许多数字的随机数组出现错误