Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++中的字符指针_C++_Pointers - Fatal编程技术网

C++中的字符指针

C++中的字符指针,c++,pointers,C++,Pointers,我正在运行下面的代码。我得到运行时错误 #include <iostream> using namespace std; int main() { char *p="hello"; //p="Hi"; *p='G'; cout<<*p; return 0; } 如果这是一个错误,那么const char*p=hello的用途是什么;在这种情况下,我的字符串应该是常量,而不是char*p=hello char *p="hello"

我正在运行下面的代码。我得到运行时错误

#include <iostream>
using namespace std;

int main() {
    char *p="hello";
    //p="Hi";
    *p='G';
    cout<<*p;
    return 0;
}
如果这是一个错误,那么const char*p=hello的用途是什么;在这种情况下,我的字符串应该是常量,而不是char*p=hello

char *p="hello";
*p='G';

你把p指向一个常数,你好。但是,然后您尝试修改p指向的内容。根据定义,常量不能修改。

您不能更改链接器放置字符[5]文本的内存。编译时也打开所有警告。此代码自C++11以来不再合法。字符串文字现在衰减为const char*only.Use char p[]=hello的可能重复;如果要创建一个由6个非常量字符组成的数组,并用值{h',e',l',l',o','\0'}初始化,那么const char*p的用途是什么=hello@Amanconst char*@Aman有很多用处,真的没有。您应该使用const char*p=hello;为了避免这样的错误。用非常量指针指向常量几乎从来都不是一个好主意。