C語言自加自減運(yùn)算符(++i / i++) - C語言零基礎(chǔ)入門教程

目錄

零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C 語言基礎(chǔ)入門

除了前面文章講解的邏輯運(yùn)算符 / 三目運(yùn)算符 / 逗號表達(dá)式,C 語言中自加 ++ / 自減 -- 運(yùn)算符也是開發(fā)中使用比較頻繁的一種運(yùn)算符;在實(shí)際編寫中,尤其對初學(xué)者或者很久沒接觸它的,會對它的原理和運(yùn)算結(jié)果產(chǎn)生混淆,接下來做詳細(xì)辨析。

一.C 語言自加++ / 自減 -- 運(yùn)算符簡介

C 語言自加 ++ / 自減 -- 運(yùn)算符實(shí)際就是對變量本身做 +1 或者 -1 操作,例如:

/************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - 自增/自減運(yùn)算符(i++/++i/--i/i--)
//@Time:2021/05/28 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
/************************************************************************/

#include "stdafx.h"
#include "stdio.h"
#include <windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    printf("a = %d b = %d c = %d d = %d \n", a,b,c,d);
    a++; //等價 a = a + 1
    ++b; //等價 b = b + 1
    c--; //等價 c = c - 1
    --d; //等價 d = d - 1
    printf("a = %d b = %d c = %d d = %d \n", a, b, c, d);
    system("pause");
    return 0;
}

/*
輸出結(jié)果:

a = 0 b = 0 c = 0 d = 0
a = 1 b = 1 c = -1 d = -1
請按任意鍵繼續(xù). . .
*/

可能看到這里不少小伙伴有個疑問?++a 和 a++ 計算結(jié)果都是 1 ,前 ++++ 兩者有什么區(qū)別??

1.++++ 的區(qū)別

無論前++,后++,最后都會自增1,區(qū)別在于是先自增在參與運(yùn)算,還是先參與運(yùn)算再加1操作(自減與自增類似)。

  • ++:先進(jìn)行++操作,再參與運(yùn)算。
  • ++:先參與運(yùn)算,再進(jìn)行++操作。

2.---- 的區(qū)別

無論前--,后--,最后都會自減1,區(qū)別在于是先自減在參與運(yùn)算,還是先參與運(yùn)算再減1操作(自減與自增類似)。

  • --:先進(jìn)行--操作,再參與運(yùn)算。
  • --:先參與運(yùn)算,再進(jìn)行--操作。

二.C 語言自加++/自減--運(yùn)算符實(shí)戰(zhàn)

/************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - 自增/自減運(yùn)算符(i++/++i/--i/i--)
//@Time:2021/05/28 08:00
//@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!
/************************************************************************/

#include "stdafx.h"
#include "stdio.h"
#include <windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    int i = 0;
    int j = 0;
    printf("a = %d b = %d c = %d d = %d  i = %d j = %d \n", a, b, c, d, i, j);
    i = a++;  // 后++:先參與運(yùn)算,i = a,在執(zhí)行加1操作 a = a + 1
    j = ++b;  // 前++:先執(zhí)行加1操作 b = b + 1,參與運(yùn)算,j = 1
    printf("a = %d b = %d i = %d j = %d \n", a, b, i, j);
    i = c--;  // 后--:先參與運(yùn)算,i = c,在執(zhí)行減1操作 c = c - 1
    j = --d;  // 前--:先執(zhí)行加1操作 d = d - 1,參與運(yùn)算,j = -1
    printf("c = %d d = %d i = %d j = %d \n", c, d, i, j);
    system("pause");
    return 0;
}

/*
輸出結(jié)果:

a = 0 b = 0 c = 0 d = 0  i = 0 j = 0
a = 1 b = 1 i = 0 j = 1
c = -1 d = -1 i = 0 j = -1
請按任意鍵繼續(xù). . .
*/

需要重點(diǎn)說明的是:++ / -- 在變量前面和后面是有區(qū)別的,以++ 自增運(yùn)算符為例:

  • ++ 在前面叫做前自增(例如: ++a),前自增先進(jìn)行自增運(yùn)算,再進(jìn)行其他操作;
  • ++ 在后面叫做后自增(例如: a++),后自增先進(jìn)行其他操作,再進(jìn)行自增運(yùn)算;

三.猜你喜歡

  1. 安裝 Visual Studio
  2. 安裝 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸載
  4. Visual Studio 2003/2015 卸載
  5. 設(shè)置 Visual Studio 字體/背景/行號
  6. C 語言 Hello World
  7. C 語言代碼注釋
  8. C 語言數(shù)據(jù)類型 / 變量類型
  9. C 語言變量聲明和定義
  10. C 語言格式控制符/占位符
  11. C 語言 printf 函數(shù)
  12. C 語言條件判斷 if / else
  13. C 語言邏輯運(yùn)算符
  14. C 語言三目運(yùn)算符
  15. C 語言逗號表達(dá)式
  16. C 語言自加自減運(yùn)算符(++i / i++)

未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? C 語言自加自減運(yùn)算符(++i / i++)

本文由博客 - 猿說編程 猿說編程 發(fā)布!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容