Странный результат при предварительном инкременте и постинкременте внутри массива в C++
Я искал на этом сайте подобный вопрос, но ни один из них не касался этого подробно. Мне очень жаль, если это самый часто используемый вопрос на этом сайте. Но этот фрагмент кода очень озадачивает.
#include<bits/stdc++.h> using namespace std; int main(){ int a[3]; cout<<"Enter number to be inserted: "<<endl; int num;//Value that is intended to be inserted in a[0]. int index;//To keep track of array index. cin>>num; cout<<"Postincrement"<<endl; index=-1; a[index++]=num; cout<<a[index]<<endl; cout<<index<<endl; cout<<"Preincrement"<<endl; index=-1; a[++index]=num; cout<<a[index]<<endl; cout<<index<<endl; }
Что я уже пробовал:
3 Postincrement -606760192 3 Preincrement 3 0
Преинкремент работает отлично. Элемент вставляется в a[0], а индекс равен 0.
Я не понимаю, почему значение индекса становится числом(в данном случае 3) при последующем приращении. Не должен кол-во быть вставлен в массив ([0]).Как можно было бы присвоить номер индексу, если было четко указано, что a[index++]=num. Может ли кто-нибудь помочь мне лучше понять это?