就在今天,我偶然發現了一小段代碼,讓我感到困惑。關於解引用和遞增的混淆
#include <iostream>
#include <iterator>
int main()
{
int array[] = {0,1,2,3,4,5,6,7,8,9};
auto start = std::begin(array);
while (start != std::end(array))
std::cout << *start++ << std::endl;
}
這讓我很困惑的事情是,0是第一個輸出。我讀了很多關於2個操作員的順序的帖子,每個人都說:「開始」會先遞增,然後解除。但std :: begin()返回一個迭代器到數組的開頭。據說這樣,如果我在提取數組之前先將指針增加到數組的開頭,那麼我的第一個輸出不應該是1嗎? 在此先感謝!
您擁有它的方式是在增量後進行遞增,從而在遞增值之前進行推理。 –