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
廣告