使用指標的方式實現陣列逆序

2021-08-05 19:37:26 字數 865 閱讀 7808

在前面,我們通過讓陣列首位交換的方式,實現了陣列的逆序,那,在學習了指標之後,我們該如何運用指標實現陣列的逆序呢。

同樣的,我們的思路還是使用首位對應交換的方式,只不過,在此時,我們可以選用指標代替陣列的首尾元素了

#include

int main() ;

int *p1 = a;                              // 指向陣列的第乙個元素下標

int *p2 = a + sizeof(a)/sizeof(a[0]) - 1;         // 求出最後乙個元素的下標

while (p1 < p2)

int i;

for (i = 0; i < 10; i++)

printf ("\n");

return 0; }

程式裡,我們的大致過程還是和以前一樣,沒有什麼多大的變化的,唯一不同的是我們使用了指標代替了陣列,使用指標代替陣列的好處就是,當陣列裡的元素發生變化時,我們的指標所指的位址可是不會變化,這就使我們的操作變得穩定。在使用sizeof求最後乙個元素的下標中,

sizeof

這個關鍵字,是用來求空間大小的乙個關鍵字,它能告訴我們,我們所使用的乙個變數所佔的空間大小。因為

sizeof(a)

求出了整個陣列所占用的空間,當

/它的型別時,我們就可以得到陣列

a的長度了,同時由於陣列的下標都是從

0開始的所以在計算最後乙個元素的下標時,一定要記得減一。

最後顯示的結果為:  10   9   8   7   6   5   4   3   2   1

是不是已經完全逆序過來了呢。動手來操作一下吧!

如何實現陣列逆序?

解題思路 對於陣列中的元素,想要進行逆序,就需要將整個陣列倒轉過來,我們可以講它們首尾進行交換,當交換到中間數時,整個陣列就已經完成了逆序。迴圈是陣列不可或缺的利器,首先,我們使用for迴圈來解決一下這道題目 include define n 10 for迴圈 int main int i int ...

C語言第46課指標與陣列實現逆序

指標的位址佔4個位元組 include include intmain int i int ptr array array 賦值完畢後,就可以使用是真訪問陣列元素了 for i 0 i 5 i return0 第1個元素的值為15 位址為 0060fef4 第2個元素的值為20 位址為 0060fe...

指標陣列和陣列指標的使用

問題 程式找錯or程式結果 include int main char p str 1 str 0 p 2 str 1 p 1 str 2 p 1 3 str 3 p 0 str 2 str 1 printf s n str 0 空 printf s n str 1 shenyang printf ...