C語言中陣列的字尾和字首遞增


問題

藉助C程式解釋陣列字尾和字首遞增概念。

解決方案

遞增運算子(++) −

  • 用於將某個變數的值遞增1

  • 有兩種遞增運算子−字首遞增和字尾遞增。

  • 遞增運算子置於字首遞增中的運算元之前,該值首先遞增,然後對該值執行操作。

eg: z = ++a; a= a+1
z=a
  • 遞增運算子置於字尾遞增中的運算元之後,該值在完成操作後再遞增。

eg: z = a++; z=a
a= a+1

讓我們考慮一個示例,透過使用字首遞增和字尾遞增來訪問記憶體位置中的特定元素。

宣告大小為5的陣列並進行編譯時初始化。之後,嘗試為‘a’變數賦值一個字首遞增值。

a=++arr[1] // arr[1]=arr[1]+1
a=arr[1]
b=arr[1]++// b=arr[1]
arr[1]+1

示例1

 線上演示

#include<stdio.h>
int main(){
   int a, b, c;
   int arr[5] = {1, 2, 3, 25, 7};
   a = ++arr[1];
   b = arr[1]++;
   c = arr[a++];
   printf("%d--%d--%d", a, b, c);
   return 0;
}

輸出

4--3--25

說明

here, a = ++arr[1]; i.e a = 3 //arr[2];
b = arr[1]++; i.e b = 3 //arr[2];
c = arr[a++]; i.e c = 25 //arr[4];
printf("%d--%d--%d",a, b, c);
printf("%d--%d--%d",4, 3, 25);
Thus 4--3--25 is outputted

示例2

考慮另一個示例來深入瞭解陣列的字首遞增和字尾遞增。

 線上演示

#include<stdio.h>
int main(){
   int a, b, c;
   int arr[5] = {1, 2, 3, 25, 7};
   a = ++arr[3];
   b = arr[3]++;
   c = arr[a++];
   printf("%d--%d--%d", a, b, c);
   return 0;
}

輸出

27--26—0

更新於:09-Mar-2021

4K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告