3 回答

TA貢獻1816條經(jīng)驗 獲得超6個贊
這是一個函數(shù)的指針。它要指向一個函數(shù)才能有用。指向一個函數(shù)之后可以用它來代替該函數(shù)。之后使用這個指針相當(dāng)于使用該函數(shù)。
int (*f)()則是一個函數(shù)指針。指向一個 int f() 這樣的函數(shù)。比如有函數(shù):
int get1() { return 1; }
int get2() { return 2; }
int main(){
int (*pf)();// pf是一個函數(shù)指針,參數(shù)為空,返回int
pf = get1;// pf保存 get1函數(shù)入口地址。 注意,不是 pf = get1() ,后者是一個函數(shù)調(diào)用
cout<< pf()<< endl; // 1
pf = get2;// pf保存 get2的入口地址
cout<< pf() << endl; // 2
}
C語言是一門面向過程、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設(shè)計語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業(yè)平臺的許多計算機平臺上進行編譯。
擴展資料:
C語言語言特點:
1、具有結(jié)構(gòu)化的控制語句
C語言是一種結(jié)構(gòu)化的語言,提供的控制語句具有結(jié)構(gòu)化特征,如for語句、if?else語句和switch語句等??梢杂糜趯崿F(xiàn)函數(shù)的邏輯控制,方便面向過程的程序設(shè)計。
2、豐富的數(shù)據(jù)類型
C語言包含的數(shù)據(jù)類型廣泛,不僅包含有傳統(tǒng)的字符型、整型、浮點型、數(shù)組類型等數(shù)據(jù)類型,還具有其他編程語言所不具備的數(shù)據(jù)類型,其中以指針類型數(shù)據(jù)使用最為靈活,可以通過編程對各種數(shù)據(jù)結(jié)構(gòu)進行計算。
3、豐富的運算符
c語言包含34個運算符,它將賦值、括號等均視作運算符來操作,使C程序的表達式類型和運算符類型均非常豐富。
4、可對物理地址進行直接操作
C語言允許對硬件內(nèi)存地址進行直接讀寫,以此可以實現(xiàn)匯編語言的主要功能,并可直接操作硬件。c語言不但具備高級語言所具有的良好特性,又包含了許多低級語言的優(yōu)勢,故在系統(tǒng)軟件編程領(lǐng)域有著廣泛的應(yīng)用。

TA貢獻1831條經(jīng)驗 獲得超4個贊
這就是傳地址進去 比如 數(shù)組 a的 內(nèi)存地址模型如:
0012FF00--0012FF03 :這是a[0]=1
0012FF00--0012FF03 :這是a[1]=2
0012FF00--0012FF03 :這是a[2]=3
0012FF00--0012FF03 :這是a[3]=4
0012FF00--0012FF03 :這是a[4]=5
0012FF00--0012FF03 :這是a[5]=6
0012FF00--0012FF03 :這是a[6]=7
0012FF00--0012FF03 :這是a[7]=8
你調(diào)用f 其實 就 把 &a[3] =0012FF00 傳給了 f(int *a,int n) 里面的a,把3傳給了n
函數(shù)實現(xiàn):
最后返回 s,那 s 是怎么得來的? 初值 為1 ,經(jīng)過 循環(huán)計算,得到最后的 s
i=0 s=s*(*a++)=1*(4) 這里要注意 這個 *的作用 是 到它后面的跟的地址里面去取值,也就是 到 0012FF00 里面取值 ,得到的是 4,然后后面的估計自己也能分析出來了,,如果沒出錯的話,得到的應(yīng)該是 4*5*6=120 吧。
- 3 回答
- 0 關(guān)注
- 95 瀏覽
添加回答
舉報