函式 陣列和指標的形參

2021-07-31 09:24:21 字數 1126 閱讀 1132

有一點要注意,只有在函式原型或者是函式定義頭中,才可以使用int a代替int *a;如:

int sum (int a,int n);
int *a形式和int a形式都表示a是指向int的指標。但是,int a只能用於宣告形式參量。第二種形式(int a)則是提醒指標a指向的不止只乙個int型變數,還是乙個int型別陣列的元素。

因為陣列名是該陣列首元素的位址,作為實際引數的陣列名要求形式引數是乙個與之匹配的指標。只有在這種情況下,c才會把int a和int *a解釋成一樣的。所以以下四種方式是等價的:

int sum(int *a,int n);

int sum (int *,int n);

int sum(int a,int n);

int sum(int ,int );
但是在函式定義中不能省略引數名。如下面兩種形式等價:

int sum(int *a;int n)

int sum(int a,int n)

#include #define size 10

int sump(int *start,int *end);

int main()

; int answer;

answer = sump(marbles,marbles + size);

printf("the total number of marbles is %ld.\n",answer);

return 0;

}int sump(int *start,int *end)

{ int total = 0;

while(start注意程式中有一點很值得借鑑,sump()函式中while迴圈使用兩個指標來結束迴圈,while(start

total += *start++;

這樣可以使程式更加精簡,不過也更加難懂降低了可讀性,再理解透徹以後也可以嘗試多用用。

函式形參 指標,引用,const,陣列形參

指標也是物件,也會拷貝,所以分實參指標和形參指標。在傳進函式時,實參進行拷貝,所以在函式裡改變指標值不影響實參。void reset int ip 引用不是物件,通過引用可以改變實參 void reset int i 使用引用的好處是避免了拷貝。其實也只是兩個變數名的傳遞,和變數規則一致,如果在函式...

函式指標和指標函式 陣列指標和指標陣列

函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...

函式指標形參

一 在介紹指標形參之前,先簡要說明下兩個運算子 和 1 取址運算子 用來取得其運算元的位址。取址運算子的運算元必須是在記憶體中可定址到。換句話說,該運算子只能用作函式或物件 例如左值 而不可以用於位欄位,以及那些未被儲存型別修飾符register宣告的內容。float x,ptr ptr x 合法 ...