所以这仅仅是一个重复的问题:
char * const 和 const char * 有什么区别?
两者有什么不同:
但我仍然不明白。
所以,根据第一个答案:
const char *是指向const char的指针,而char * const是指向char的常量指针。
前者指向的值不能更改,但指针可以更改。后者指向的值可以更改,但指针不能更改(类似于引用)。
好的,所以,我已经编写了以下代码:
根据上面的回答,
char * const
并且
const char *
但我仍然不明白。
所以,根据第一个答案:
const char *是指向const char的指针,而char * const是指向char的常量指针。
前者指向的值不能更改,但指针可以更改。后者指向的值可以更改,但指针不能更改(类似于引用)。
好的,所以,我已经编写了以下代码:
//exercises
char* barfoo = "variable_test";
const char* my_pointer_to_const_char = barfoo; //"barfoo" can't be changed but the pointer to it, can!
barfoo = "changed!";
std::cout<< barfoo << std::endl;
根据上面的回答,
barfoo
无法更改?
但我在我的代码中已经将其更改,并打印了“更改”。我不明白难道它不应该抛出错误吗?
请给我一个正确的示例,因为我显然做错了什么。
barfoo
不能被改变?它是一个非const指向非const字符的指针。你创建了一个指向它原始值的const指针并不相关。 - Dave Newtonstd::cout<< my_pointer_to_const_char << std::endl;
并查看结果。 - Nebbarfoo
是一个指针,它可以被改变,在这个例子中它不是常量!你应该看到my_pointer_to_const_char
。 - Ali Sepehri-Amin