c語言:自增自減運算子的操作詳解
阿新 • • 發佈:2019-01-29
博主在回憶c語言的基本知識時,突然發現自增自減運算子(--、++)這個知識點有些模糊不清,故博主為了給同為小白的同學們提供一些經驗,特寫下這篇文章。
首先,自增自減運算子共有兩種操作方式。
比如,我先定義一個變數a,以“++”為例,共有“a++”、“++a”種操作方式。“下面我們在實際的程式碼中看一下。
執行後,很輕易的就可以得到輸出結果:21、21、20、22。#include<stdio.h> //自增自減運算子的測試 int main() { int a = 21; int c; c = a--; printf("%d\n", c); a = 21; c = a++; printf("%d\n", c); a = 21; c = --a; printf("%d\n", c); a = 21; c = ++a; printf("%d\n", c); getchar(); }
由此可知,我們可以得到一個結論:諸如“a++”類自增自減運算子在變數之後的,進行操作時是先賦值,後運算;而“++a”類的操作則正是與此相反。
其次,我們來看一下上面程式碼中變數c的變化情況:
int main()
{
int a = 21;
int c;
c = a++;
printf("%d\n", c);
c = a--;
printf("%d\n", c);
c = --a;
printf("%d\n", c);
c = ++a;
printf("%d\n", c);
getchar();
}
執行結果則變成了:21、22、20、21,。為什麼會出現這種情況呢?
以c=a++為例,由上述結論可知,這個表示式實際上是先將a的值賦給c,這樣c就等於21,而後續符號操作的則直接是a,所以經過這個表示式之後,a的值實際上變成了22。由此,則可以推出下面的一系列內容。
好了,講述就到這裡了。
這篇文章主要是針對c語言小白,各位大神還請借道哈,不要噴我,如果有錯誤還請幫忙指出,不勝感激。
本人也是小白一枚,願與諸君共同進步,通向成神之路!!!