/*
练习4.18:把下列程序的后置递增改为前置递增,将得到什么结果?
auto pbeg = v.begin();
//输出元素直至遇到第一个负值为止
while(pbeg != v.end() && *pbeg >= 0)
cout<< *pbeg++ <<endl;//输出当前值并将pbeg向前移动一个元素
答:
前置递增与解引用,优先级相同,均满足右结合律。
前置递增返回增加后的对象,左值。第一个元素被忽略了。
如果序列中没有负值,到最后一个元素时,*pbeg++将试图解引用一个根本不存在的元素。
*/
#include "TouWenJian_4.h"
int main()
{
return 0;
}
文章分析了C++中前置递增和后置递增运算符的使用,指出它们在遍历过程中后置递增会忽略第一个元素,而前置递增返回增加后的左值,可能导致程序异常。讨论了优先级和结合律问题。
33万+

被折叠的 条评论
为什么被折叠?



