|
|
1
11
将*ptr的声明切换为。
问题是,你本质上是将一个const char*赋值给一个char*。这违反了const,因为你要从const变为非const。 |
|
2
10
正如JaredPar所说,将ptr的声明更改为
它应该起作用。虽然它看起来很令人惊讶(你怎么能迭代一个const指针?),但你实际上是在说指向的字符是const,而不是指针本身。事实上,在指针声明中有两个不同的地方可以应用const(和/或volatile),这4个排列中的每一个都有稍微不同的含义。以下是选项:
有人(我认为Scott Meyers)说你应该从内到外阅读指针声明,即:
…将被读取为“ptr是指向常量字符的常量指针”。 祝你好运 德鲁 |
|
|
3
0
const声明获取左侧的任何内容。如果没有什么,它看起来是正确的。 |
|
|
4
0
对于像上面这样的迭代循环,如果你不关心返回的值,你应该说
对于原始类型,编译器将应用此优化,但在迭代C++对象时不会应用,因此您应该养成以正确方式编写它的习惯。 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |
|
|
tTt · 使用堆栈中的值重新分配指针 1 年前 |
|
|
manuel · 现代C中空指针的替代方案++ 1 年前 |