标签: c++ pointers pointer-arithmetic
C ++标准[sec 5.7]说:
如果指针操作数和结果都指向同一个数组对象的元素,或者一个过去的元素 数组对象的最后一个元素,评估不应产生溢出;否则,行为是 未定义。
那么,我是否正确地假设其他类型的指针比数组的结尾未定义?
例如:
int a = 0; vector<int> v(&a, (&a)+1);
上面的代码片段编译并且工作正常(使用g ++),但是它有效吗?
答案 0 :(得分:25)