跪求大佬,請問下這個C的問題出在哪?

時間 2021-06-08 04:01:53

1樓:

把main函式中struct student *a[2]改成:

struct student a[2];

f(struct student a){

for(迴圈條件){

scanf("%d ", &a[i].age);

2樓:站起來

建議好好研究一下下列知識點:

1、指標和陣列的關係。

2、左值和右值(特別是陣列名做右值時退化成指標,陣列作為函式引數傳遞時退化成指標)

要明白int

fun1

(int*a

);int

fun2

(inta);

intfun3

(inta[

5]);//5

inbrackets

will

beignored

這仨函式原型是完全等價的,其中第三個裡面的5是廢話。不是「乙個傳指標,乙個傳陣列,乙個傳5個元素的陣列」。

所以為什麼函式引數傳遞陣列時,必須加乙個長度,如

intfun4

(int

*array

,size_t

nmeb

);順便提一下:

intfun5

(inta[

static5],

size_t

nmeb

);裡面的static 5表示陣列至少要有5個元素。(這裡面的5就不是廢話了)

還有:int

fun6

(size_t

,int[*

]);這裡面的int [*]表示傳遞的是乙個變長陣列。注意,必須把變長陣列的長度引數寫在變長陣列前面。

當然,在GCC以及絕大多數實現中,用fun4就可以傳遞變長陣列了,不必刻意寫成fun6的形式。(不要拿純標準來杠我,理論脫離實際是沒意義的,標準還沒規定乙個Byte有多少bit呢,但是實際上你會遇到1Byte不等於8bit的實現嗎?而且標準起的是指導作用,從來沒有哪個編譯器是絕對服從標準的,就像你中學時期也不可能絕對服從學校的校規校紀)

3、static關鍵字的各種含義(static是C語言最難懂的關鍵字)。

3、指標陣列(array of pointers)和陣列指標(pointer to an array)。

如果我直接說把第8行的方括號去掉、把第21行的*去掉,那麼你什麼都學不會。

這個家的問題出在哪?

默默漠漠 第一 離你表弟遠點,你借給他的錢如果數目不多,就不要讓他還了,也不要告訴你小姨,去找你媽,讓你媽幫你把錢還上。告訴你媽不要把借錢的事對你小姨說,錢沒有多少說了最終會鬧的一地雞毛。第二 你們家親戚的問題就在於彼此沒有界限感。你媽帶著你住在已婚的妹妹家 你和你表弟在錢上分的不夠清楚 你姥爺和你...

請問下華為績效C制度還有c這個指標嗎?

背c的人一般是轉崗 辭職的,正常工作,加班,完成任務基本上不會背c。進去就績效c的一般是比較有個性,不會跟人相處,部門其他人9點下班,他6點鐘走的那種。或者就是能力極差,碰運氣混過面試官的那種。我們部門總共100多人,c的比例大概是5 左右,轉崗,主動離職的人已經足夠背完指標了。 心爸 華為裡面,俗...

各位大佬,請問下一建考試報名的問題。

住建雲學院 住建雲學院一建證書是一種建築類執業資格證書,是擔任大型專案經理的前提條件,考試設有4個科目,參加全部4個科目考試的人員必須在連續的兩個考試年度內通過全部科目。取得住建雲學院建造師執業資格證書,且符合註冊條件的人員,必須經過註冊登記後,方能以建造師名義執業。一建報考條件 一建考試科目 一級...