在前面,我們通過讓陣列首位交換的方式,實現了陣列的逆序,那,在學習了指標之後,我們該如何運用指標實現陣列的逆序呢。
同樣的,我們的思路還是使用首位對應交換的方式,只不過,在此時,我們可以選用指標代替陣列的首尾元素了
#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 ...