關於自增自減運算符的一些問題

以下內容均以自增運算符爲例,自減運算符具有相似的特性。

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;
}

 這個留給大家自己驗證吧~~

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章