【发布时间】:2021-05-26 23:22:23
【问题描述】:
vector<long> v = {1,2,3};
long i = v.size();
const long* w = (i != 0) ? &v.front() : NULL;
谁能解释第 3 行发生了什么?对我来说,感觉就像 v = w。我理解的对吗?
【问题讨论】:
-
ternary operator 你觉得奇怪吗?
-
您可以将其重构为
if (i != 0) w = &v.front(); else w = NULL; -
阅读 Jarod42 或 cplusplus.com/articles/1AUq5Di1 的参考资料,您就会明白它的含义
-
只是为了迂腐:
long i = v.size()不如size_t i = v.size()更好,在 C++ 中,您应该使用nullptr而不是NULL。 -
哦,我明白了。谢谢! @zois