c語言有以下說明和定義則對fun函式的正確呼叫

2021-03-09 02:06:45 字數 3286 閱讀 7329

1樓:禽司言夏蘭

答案:a

首先看main函式

定義int

(*a)(int*),定義

函式指標

a,即返值int型

引數int*種

函式型別

指標fun函式

應該返int型我看回幾答案:

(a)a既函答數指標要給賦值才能使用賦值候函式型別定要匹配要給a賦返值int型引數int*型函式指標fun

函式所a=fun

沒問題呼叫候候afun呼叫候fun換a行傳給a引數應該int*型面w整型

陣列名代表首元素址即w=&w[0],int*型所w傳給函式a沒問題(b)a=fun沒問題

引數傳遞

沒問題呼叫候用*a,直接a行

(c)int

*b(),看b返值int*引數空函式賦值候(d)b既函式能傳給funint*型引數呢

2樓:義柏廠

5 c語言,有以下說明和定義,則對fun函式的正確呼叫語句是(b)這個英語單詞應該是在裡面宣佈,不知道這樣可不可以幫到你,如果錯了的話希望你諒解。

3樓:小螺號

對的,這是c語言的專業程式設計知識。

4樓:匿名使用者

答案是b

其中的b是一個函式的宣告,宣告瞭一個返回值為int * 的函式b。所以b是不能作為指標使用的,因此c是錯誤的。

5樓:蝶彩楓林

你去相關論壇裡問問去

6樓:浪_跡_天_涯

個人答案:a

首先看main函式中的定義,int (*a)(int*),這裡定義了一個函式指標a,即返回值是int型,引數為int*這樣一種函式型別的指標。你的fun函式應該返回的是int型,這樣的話,我們來看下這幾個答案:

(a) a既然是函式指標,那麼要給它賦值才能使用,賦值的時候函式的型別一定要匹配,那麼就要給a賦一個返回值為int型,引數為int*型的函式指標,fun 正是這樣的函式,所以 a=fun沒有問題。呼叫的時候,這個時候a和fun就是一樣的了,呼叫的時候把fun換成a就行了,但是傳給a的引數應該是int*型的,這裡面的w是一個整型陣列名,也代表了首元素的地址,即w=&w[0],是int*型,所以將w傳給函式a沒有問題。

(b) a=fun沒有問題,引數傳遞也沒有問題,只是呼叫的時候不用*a,直接a就行了。

(c) int *b(),這樣看的話,b是一個返回值為int*,引數為空的函式,賦值的時候就不對了

(d) b既然是函式,怎麼能傳給fun的int*型引數呢

7樓:西部建設

b 其中的b是一個函式的宣告,宣告瞭一個返回值為int * 的函式b。所以b是不能作為指標使用的,因此c是錯誤的

c語言中fun()函式有什麼作用,要有例子說明。

8樓:不不見不念

c/c++語言中,fun函式通常被主函式所呼叫。它是指用fun來定義一個函式(或方法),這樣在引用時可以用fun表示。比如int fun(int x,int y),void fun(char* a,char* b) 等等。

有先前的定義,就可以在主函式裡呼叫它,比如ans=fun(3,7);或者fun(p1,p2);

fun函式是自定義函式。fun一詞沒有其它意思,只是在呼叫時用這個單詞表示該函式。

例一:例二:

9樓:匿名使用者

起到呼叫作用

#include

void fun(int *p)

main()

;fun(&a[3]);

}從main函式看起,定義一個陣列a,fun(&a[3])呼叫a[3]元素的地址,到fun函式中執行,fun函式總的*p指向a[3],輸出p[5]就是a[3]的地址加上5,即a[8],返回主函式中的值即為a[8]的值為9,執行結果為9

(陣列元素名從a[0]到a[9]共十個元素。)

10樓:苦味檸檬

首先不管是什麼意思 這個函式裡面的s[i] s[j+1] 會編譯出錯的··最好用*(s+j+1)這樣的形式,昨天考級就出了類似的題目,因為在子函式裡面沒有定義這個陣列 只定義了 指標。

s[i]!=0 應該是 s[i]!='\0'的 不然陣列裡面有個字元時0的話就跳出來了。

這個改的話你自己改吧··增加點經驗

void fun(char *s, char c)之後就想是 kingbird2011 說的那樣···不過 補充一點是輸入 是s=「sadag」的話··(注意是兩個a)輸出是 saadaag 應為是在for那個大迴圈裡面 這樣就解釋得了最後那個i+=1的意義了

c語言中fun()函式有什麼作用,要有例子說明。

11樓:匿名使用者

首先不管是什麼意思 這個函式裡面的s[i] s[j+1] 會編譯出錯的··最好用*(s+j+1)這樣的形式,昨天考級就出了類似的題目,因為在子函式裡面沒有定義這個陣列 只定義了 指標。

不過如果這個函式之前陣列有定義的話可能就不會出錯。

s[i]!=0 應該是 s[i]!='\0'的 不然陣列裡面有個字元時0的話就跳出來了。

這個改的話你自己改吧··增加點經驗

void fun(char *s, char c)之後就想是 kingbird2011 說的那樣···不過 補充一點是輸入 是s=「sadag」的話··(注意是兩個a)輸出是 saadaag 應為是在for那個大迴圈裡面 這樣就解釋得了最後那個i+=1的意義了

一步步的看就能看明白的了·加油吧

12樓:匿名使用者

沒想到我的答案被別人貼上過來了!

!!!既開心又無語!哈哈哈哈哈

13樓:匿名使用者

等級考試中喜歡使用fun(英文全名function,功能的意思)做為函式名,其具體功能由程式設計者確定。

14樓:從芷天鍾鈴

起到呼叫作用

#include

void

fun(int

*p)main()

;fun(&a[3]);

}從main函式看起,定義一個陣列a,fun(&a[3])呼叫a[3]元素的地址,到fun函式中執行,fun函式總的*p指向a[3],輸出p[5]就是a[3]的地址加上5,即a[8],返回主函式中的值即為a[8]的值為9,執行結果為9

(陣列元素名從a[0]到a[9]共十個元素。)

c語言,有以下程式,C語言,有以下程式。

結果是 4 7 10 13 輸出的是 a 0 3 a 1 2 a 2 1 a 3 0 的值 for i 0 i n 4 i 0 b 0 a 0 4 1 0 也就是 a 0 3 n 4 i 1 b 1 a 0 4 1 0 也就是 a 1 2 n 4 i 2 b 2 a 0 4 1 0 也就是 a 2 ...

c語言,有以下程式段,C語言,有以下程式段

a i p 是先a i p然後p再指向下陣列一位 所以你的那個for迴圈並沒有改變陣列a p 即為 p 程式先算 p 2,然後 後為3 即輸出3.輸出結果6 a 2 被初始化為6啊,你輸出的當然是6了.p是一個指標,它所代表的是一個位置,在這裡 p a表示指標p指向a所在的位置,也就是a所儲存的地址...

c語言若已定義 int a 41,3,5,6,9P a則p a的值是求過程

p是指向陣列第三列的地址值 a是指向陣列第一列的地址值 所以 p a 其實就是兩個地址的差值,實際就是前兩列資料所佔的儲存空間 4 2 2 8個位元組 a 2 是在第三行開頭嘛,一行4個,兩行就是8 若已定義 int a 0,1,2,3,4,5,6,7,8,9 p a,i 其中 0 i 9,則對a陣...