1. 程式人生 > >c語言:自增自減運算子的操作詳解

c語言:自增自減運算子的操作詳解

博主在回憶c語言的基本知識時,突然發現自增自減運算子(--、++)這個知識點有些模糊不清,故博主為了給同為小白的同學們提供一些經驗,特寫下這篇文章。

首先,自增自減運算子共有兩種操作方式。

比如,我先定義一個變數a,以“++”為例,共有“a++”、“++a”種操作方式。“下面我們在實際的程式碼中看一下。

#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();
}
執行後,很輕易的就可以得到輸出結果:21、21、20、22。

由此可知,我們可以得到一個結論:諸如“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語言小白,各位大神還請借道哈,不要噴我,如果有錯誤還請幫忙指出,不勝感激。

本人也是小白一枚,願與諸君共同進步,通向成神之路!!!