-
測試後,**執行OK,只修改了1個地方。
#include
int a[10]=;全域性陣列。
rev (int *m, int n) 是乙個遞迴函式,用於反轉整數組。
int t;
if(n>1) 如果 n 大於 1,則執行。
t=*m;t 是中間變數。
m=*(m+n-1);當前指標指向的值等於最後 1 個值。
m+n-1)=t;
rev(m+1,n-2);
如果呼叫以遞迴方式繼續,則應交換它,然後指標向後移動一位,長度為負 2main()。
int i;
rev(a,7);
for(i=0;i<7;我++)根據標題,它應該是 7,如果是 10,則會有 3 個零
printf("%d",a[i]);
printf("");
-
rev (int *m, int n) 函式將指標 m 指向的陣列元素與它後面的 n-1st 元素交換。
int t;t 是臨時變數 if(n>1) 如果 n 大於 1,則執行,遞迴控制條件。 }main()
-
rev (int *m, int n) 這個函式是乙個遞迴函式,它應該是相反的順序。
-
指標未分配記憶體,並且會產生段錯誤。
-
根據問題要求編寫的程式如下(見圖)。
-
以下是我的理解:
在C語言中,你需要定義乙個變數,你需要了解變數本身的兩個含義
1) 變數中的值是多少?有了這個值,我們就可以直接拿變數來參與操作,比如 int a=5;計算時 A 表示 5;
2) 變數儲存在記憶體中的什麼位置?變數的儲存位置是變數的位址,所以這個位址可以用指標來儲存,例如 int a=5, *p=&a;這裡 p 是指標變數,它儲存了變數 a 的位址,這時,如果使用 a 變數的值,可以直接使用 a,也可以使用 *p,*p 是通過 p 的指標(即 a 的位址),間接找到 a,在程式中 *p 和 a 是等價的。
-
指標指向位址,所以你對指標的修改也會影響到原位址的值,所以當你需要修改函式中的函式之外的變數時,可以考慮指標,當然指標也可以連線結構中的節點之類的,還有函式相關的後續, 只要你弄清楚,你就會明白。
-
指標可以理解為乙個位址,即指向乙個位址的指標,在使用它之前有三個問題需要澄清,指標的型別、指標指向的型別以及指向值的指標的記憶體區域。 通過傳遞值的位址來傳遞值。
-
它是位址的位址,然後我們會了解到指標函式是函式引數是指標型別,我們通常學習 int、float 等,我們也會了解到函式指標是呼叫函式的位址。
範圍。 你靜態字元 *chh;
static char *ch1;雖然兩個指標指向的位址沒有變化,但你有沒有想過它們指向的記憶體位址是否已經釋放,char chc[10]; 它是本地的,函式已經結束,生命週期已經結束,你正在嘗試使用 void times() 中的指標訪問它。 >>>More