c - 在 c 中弃用了从字符串常量到 'char*' 的转换

标签 c

<分区>

我正在处理字符串。

每当我执行以下程序时,我都会收到一个错误,因为 deprecated conversion from string constant to 'char' in c* on the line char *p = “你好”

我做错了什么?

这个错误是什么意思?我该如何更正它?

我的代码是:

#include<stdio.h>
int main()
{
    char *p = "hello";
    printf("%s",p+1);
    return 0;
}

最佳答案

这应该是一个警告(尽管您可能已将编译器设置为将警告视为错误,这通常是个好主意)。

您想要的是:char const *p = "hello";

尝试修改字符串文字会产生未定义的行为。 const 可以防止您意外地这样做(即,尝试通过指针写入的代码将无法编译,除非您删除 const 限定符,例如使用投)。

关于c - 在 c 中弃用了从字符串常量到 'char*' 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16767042/

相关文章:

c - IOCTL 和 IRP 之间有什么区别

python - 将 python -c 传递给 gdb 中运行的程序

c - 这个求和算法的复杂度是多少?

c - 使用 C 编程的连续整数

c - 自动生成结构体实例

c - c 中替代用户输入的替代函数

清除结构数组中的项目

c - 空白的 Windows 应用程序不显示?

c - 分段故障;初学者

c - fork() 和改变局部变量?