理解有關二維陣列位址作函式呼叫引數的問題

2021-10-11 22:44:22 字數 757 閱讀 5021

(使用指標作為引數解決問題)

編寫c語言**,實現以下功能:

有5名學生,每人有三門考試成績(語文、數學、英語),計算每個學生的平均成績,查詢有一門及以上課程不及格的學生,輸出不及格學生的課程成績(含學號和三門課成績和平均成績)。

#include

void

main()

}search

(s);

//傳遞的慘數字陣列的位址,也就時行位址

}void

search

(int

(*p)[3

])printf

("平均成績為:\n");

printf

("%3.2lf"

, sum /

3.0)

; sum =0;

printf

("\n");

}}}

1.該題主要的難點在於理解void search(int (*p)[3]);這個函式如何傳遞引數,記住如果是 int (p)[n]這種形式的話,指標變數p儲存的是行的位址,傳遞時必須對應,其次的話要理解,2為陣列名其實就是首行的位址,即a等於&a.

2.第2個重點就是你傳遞引數後,如何呼叫陣列元素,方法為:((p+i)+j),或者你也可以使用p[i][j]的形式。

3.區別於void search(int *p);的形式,對應於這種形式的函式引數,應該是search(*p);void search(int *p)中p指代的位址應該是二維陣列元素的位址

C 二維陣列作函式引數

變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...

C 二維陣列作函式引數

變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...

C 二維陣列作函式引數

變數在作用域裡面被宣告的是什麼型別,就當作什麼型別來用。1 引數是二維陣列,但是要指定第二維的維數。int array 10 10 函式宣告 void fuc int a 10 函式呼叫 fuc array 在函式fuc中,a是二維陣列。使用a i j 形式來訪問陣列中元素。2 引數使用一維指標陣列...