1
4
可以 C++标准使用“可能”或“可能”,如:
强调我的。基本上,标准使用了“可能”一词 is allowed to ".
write触发UB,因为const对象可能存储在某些平台上的只读内存中。 |
2
4
我的理解是,只有当所讨论的对象基本上是const对象而不是const指针或对最初不是const的对象的引用时,才会是UB。 基本上是const的数据可以被加载到内存的只读部分,而对它的写入是行不通的。但是,如果所讨论的对象基本上是可变的,那么它就可以正常工作。 前任:
对于下面的注释,因为代码在注释中看起来很糟糕:
所以这是特别允许的。 |
3
3
对于你的第一个问题,如果 可以 产生未定义的行为,那么这并不能减少它的未定义性。
对于第二部分,我认为这是因为互操作性的原因。例如,C在C99之前没有
即使在C++中,不一致或不完全的正确性也是很常见的。因此,我们偶尔会遇到这样的情况:为了将const对象传递给一个不修改其参数但按非const接受其参数的函数,我们必须丢弃const。 |
4
1
我相信那是因为
|
Xirema · 如何正确编写运算符的R值重载 7 年前 |
Mário Feroldi · 在运行时调用代码中未调用的函数 7 年前 |
chqrlie · 所有位0都可以是整数的陷阱表示吗? 7 年前 |
Vincent · 打印零,但不基于该条件退出循环 7 年前 |
Dror K. · 用%p打印空指针是未定义的行为? 7 年前 |
Bite Bytes · C中允许这种函数调用吗 7 年前 |
K J Gor · C中strncpy的内存混淆 8 年前 |