const char *是字符串还是指针

我认为const char *表示指向不可变字符串的可变指针。

但是,当我这样做时

#include <iostream>
using namespace std;

const char *name1 = "Alex";

int main() 
{
   name1 = "John";
   cout << name1 << endl;
}

它只是打印约翰,没有任何问题。我想知道为什么程序将name1视为字符串并使其可变?

讲故事的人-Unslander Monica

我想知道为什么程序将name1视为字符串并使其可变?

并非如此,您只是为指针分配了一个新地址(的地址"John")。您自己说过它指向不可变字符串可变指针您修改了指针,并尝试实际修改指针,类型系统会阻止您执行该操作(由于const限定符)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

const char *与字符串文字的使用

在字符串中加入 const char*

如何比較 const char* 字符串?

C ++-char const * const *-<读取字符串的错误>

const char * 指针问题?

将字符串作为指针传递时出错,无法将 const char* 分配给 char*

是什么原因初始化或为C中的char指针或C ++中的const char指针分配空字符串文字?

为什么要使用const char *形式的字符串

从C ++中的字符串文字返回const char *吗?

从int转换为c字符串(const char *)失败

在存储在const char数组中之前修改字符串

从const char *转换为Swift字符串

const volatile char字符串无法正确打印

创建字符串如何改变const char *指向的值?

从Swift字符串转换为const char *

将字符串转换为const * char

字符串文字vs const char *函数重载

C ++-从const char *复制到字符串

错误:无法将参数1的const字符串转换为const char *到size_t strlen(const char *)

(const char *)++或(const char)++?

`boost :: function <int(const char *)> f`是指针还是对象?

由c ++字符串类定义的字符串文字是否为const char []类型

无法将 const char 转换为字符串构造字符串

由c ++字符串类定义的字符串文字是否为const char []类型

从 C# 传递的字符串与 C++ 字符串不同,都是 const char

字符串参数 const char* 和 const wchar_t*

一次将字符串文字常量定义为char const *和wchar const *

C /使用动态malloc复制字符串,从const char * org到char ** cpy

Typedef char指针分配的字符串