【发布时间】:2013-04-24 10:39:17
【问题描述】:
c99/c++03 是否保证&a+1 > &a 始终为真?
例如,有一个(c-like)std::copy,并且
int a = 0 ;
int b[9] ;
std__copy(&a , &a+1 , b) ;
这总是有效吗?
【问题讨论】:
-
是的,虽然@MOHAMED 的答案是指数组,但对于一个简单的对象来说,原理是一样的。
-
@MOHAMED,不,那不一样。数组的情况是没有问题的,但非数组变量必须有特殊的写法。
-
如果 UB 用于 C90 和 C++98,则从内存中得到答案,对 C11 和 C++11 有效,但我不记得是否及时对 C99 和 C++03 进行了澄清;-(