我正在使用字符串.
每当我执行下面的程序时,我都会收到一个错误,因为在行中c*的字符串常量被转换为'char 'char *p = "hello"
我究竟做错了什么?
这个错误是什么意思?我怎么能纠正它?
我的代码是:
#include<stdio.h>
int main()
{
char *p = "hello";
printf("%s",p+1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Jer*_*fin 18
这应该是一个警告(尽管您可能已将编译器设置为将警告视为错误,这通常是一个好主意).
你想要的是:char const *p = "hello";相反.
尝试修改字符串文字会产生未定义的行为.这会const阻止您意外地执行此操作(即,尝试通过指针写入的代码将无法编译,除非您删除const限定符,例如使用强制转换).
这是一个警告,因为"Hello"字符串是一个常量,并且您试图将其存储在非const char*中.解决问题要么成功
const char* p = "Hello" 要么 char[] p = "Hello"
| 归档时间: |
|
| 查看次数: |
6511 次 |
| 最近记录: |