C語言的自增自減運(yùn)算符詳解
C語言的自增自減運(yùn)算符
簡(jiǎn)單去理解,C語言的自增自減運(yùn)算符的最終結(jié)果就是對(duì)自身進(jìn)行加一和減一操作。
但是當(dāng)++、--作為后綴時(shí)則具有延后性,可能對(duì)程序有一些副作用,并且其的優(yōu)先級(jí)也會(huì)對(duì)程序產(chǎn)生一定的影響。
舉例
#include <stdio.h>
int main()
{
int a=0;
if(++a)
printf("%d",a);
printf("%d",a--);
printf("%d",a);
return 0;
}
輸出結(jié)果是:
110
在這里充分展示了++、--在變量的前綴和后綴時(shí)的作用。
++、--在變量前綴時(shí),表示先對(duì)變量進(jìn)行加一(或減一),然后再參與運(yùn)算。++、--在變量后綴時(shí),表示變量先參與運(yùn)算,然后再去加一(或減一)。
以下是對(duì)上面代碼例子的解釋
- 程序先定義變量a的值為0,然后
if()判斷,因?yàn)?code>++在前綴,所以a先加一,值為1,因此if(1)下的輸出語句執(zhí)行,輸出a的值1。 - 接著第二次輸出語句里,
--在后綴,因此a的值先參與運(yùn)算輸出a的值1,然后a的值再減一,為0. - 第三次輸出語句,輸出a的值0。
考慮其優(yōu)先級(jí),自增自減運(yùn)算符的優(yōu)先級(jí)很靠前,因此常常會(huì)被用于數(shù)組操作,如a[i++]。并且由于其書寫方便,在循環(huán)結(jié)構(gòu)中也常常使用其來與a=a+1等價(jià)。
單就結(jié)果來說
a++、++a和a=a+1、a+=1之間毫無任何區(qū)別。a--、--a和a=a-1、a-=1之間毫無任何區(qū)別。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)和雙向鏈表操作
這篇文章主要介紹了C語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)雙向鏈表操作,需要的朋友可以參考下2017-03-03
C++圖論之Bellman-Ford算法和SPFA算法的實(shí)現(xiàn)
貝爾曼-福特算法(Bellman-Ford)是由理查德·貝爾曼和萊斯特·福特創(chuàng)立的,求解單源最短路徑問題的一種算法。SPFA 算法是 Bellman-Ford算法 的隊(duì)列優(yōu)化算法的別稱,通常用于求含負(fù)權(quán)邊的單源最短路徑。本文將詳解兩個(gè)算法的實(shí)現(xiàn),需要的可以參考一下2022-06-06
輕松實(shí)現(xiàn)C/C++各種常見進(jìn)制相互轉(zhuǎn)換
這篇文章主要介紹了輕松實(shí)現(xiàn)C/C++各種常見進(jìn)制相互轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

