以下內容均以自增運算符爲例,自減運算符具有相似的特性。
1.自增運算符在單獨使用時,前置自增運算符(++i)和後置自增運算符(i++)效果相同,都是使i的值增加1,如下例子所示:
int main(){
int j=0;
++j;
cout<<"j的值爲:"<<j<<endl;
}
int main(){
int j=0;
j++;
cout<<"j的值爲:"<<j<<endl;
}
經測試,兩段代碼的輸出都是“j的值爲1”。由此可見,單獨使用自增運算時,前置自增運算符和後置自增運算符具有相同效果。
2.自增運算符參與到其他語句的執行或者運算中時,則遵循以下規則:
++i:先將i自增1,然後再使用i。
i++:先使用i,然後再將i加1。
還是舉例說明:
int main(){
int j=0;
cout<<"j的值爲:"<<++j<<endl;
}
int main(){
int j=0;
cout<<"j的值爲:"<<j++<<endl;
}
執行過這兩段代碼後,我們發現:第一段代碼的輸出是“j的值爲1”,而第二段代碼的輸出是“j的值爲0”。這就說明,在cout語句的執行過程中,++j是先將j的值加1,再輸出j的值;j++是先輸出j的值,之後再將j加1。需要注意的是,無論是j++還是++j,j的值最終都變成了j+1。
同樣,以下例子是自增運算符參與運算時的情況:
int main(){
int i=0;
int j=0;
i=i+(j++);
cout<<"i的值爲:"<<i<<endl;
cout<<"j的值爲:"<<j<<endl;
}
int main(){
int i=0;
int j=0;
i=i+(++j);
cout<<"i的值爲:"<<i<<endl;
cout<<"j的值爲:"<<j<<endl;
}
這個留給大家自己驗證吧~~