我覺得你在看引用調用和值調用那一部分。
專注于為中小企業(yè)提供做網(wǎng)站、成都做網(wǎng)站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)陜西免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
首先,其實對于int
a[10],就是在內(nèi)存中開辟一段存儲空間存放十個整型元素。你要明白a不是一個變量,而是一個常量地址,什么地址呢?就是指向這10個元素空間的首地址(第一個元素的地址)。你可以給a賦個值試一試,編譯不會通過,因為a是個常量,不是變量。
而對于變量,他就是代表一個值,可以對他進行任意賦值。
如果將數(shù)組傳遞給函數(shù),因為數(shù)組名a是常量地址,所以函數(shù)形參有了主函數(shù)數(shù)組的地址,所以被調函數(shù)可以通過地址,修改主函數(shù)中數(shù)組的元素值。
明白嗎?
函數(shù)不可以定義為數(shù)組,可以用函數(shù)指針來操作。
1.函數(shù)指針的數(shù)組定義方法:返回值類型( * 指針變量名[Number]) (形參列表)。
例如:
double add(double a,double b){}
double sub(double a,double b){}
double mul(double a,double b){}
double div1(double a,double b){}
double (*oper_func[])(double, double) = {add,sub,mul,div1};//函數(shù)指針的數(shù)組定義。
2.函數(shù)指針是指向函數(shù)的指針變量。 因而“函數(shù)指針”本身首先應是指針變量,只不過該指針變量指向函數(shù)。這正如用指針變量可指向整型變量、字符型、數(shù)組一樣,這里是指向函數(shù)。
C在編譯時,每一個函數(shù)都有一個入口地址,該入口地址就是函數(shù)指針所指向的地址。有了指向函數(shù)的指針變量后,可用該指針變量調用函數(shù)。
擴展資料:
指針函數(shù)和函數(shù)指針的區(qū)別:
這兩個概念都是簡稱,指針函數(shù)是指返回值是指針的函數(shù),即本質是一個函數(shù)。我們知道函數(shù)都有返回類型(如果不返回值,則為無值型),只不過指針函數(shù)返回類型是某一類型的指針。其定義格式如下所示:返回類型標識符*函數(shù)名稱。
返回類型可以是任何基本類型和復合類型。返回指針的函數(shù)的用途十分廣泛。事實上,每一個函數(shù),即使它不帶有返回某種類型的指針,它本身都有一個入口地址,該地址相當于一個指針。比如函數(shù)返回一個整型值,實際上也相當于返回一個指針變量的值,不過這時的變量是函數(shù)本身而已,而整個函數(shù)相當于一個“變量”。
參考資料:百度百科 -?函數(shù)指針
方法
有2
將該數(shù)組定義為全局變量,即:
int
g_arr;
void
fun()
{...}
void
main()
{...}
2.將該數(shù)組作為函數(shù)參數(shù)傳遞到自定義函數(shù)里,即:
void
fun(int
arr[])
{...}
void
main()
{
int
arr[10];
fun(arr);
}
將數(shù)組傳遞給函數(shù)后,數(shù)組就會退化為指針
void?fun(int?x,?int?pp[],?int?*n)
void?fun(int?x,?int?*pp,?int?*n)
//?這兩種寫法是等價的
pp[j++]=j;?//?這句寫錯了
//?要保存到pp里的是能整除的整數(shù),而不是計數(shù)器j,如果這么寫,那么pp的值肯定是{0,1,2,3,4,5,...}
//?應該改成
pp[j++]?=?l;?//?L才是被整除的整數(shù),要保存的是這個
*n=j;?//?n作為一個指針,負責傳出得到的數(shù)字的數(shù)量,j是計數(shù)器,當所有的計算完畢后,j的值自然是這些數(shù)字的數(shù)量
當前題目:c語言函數(shù)變量數(shù)組,c語言可變數(shù)組的實現(xiàn)
URL地址:http://chinadenli.net/article22/heicjc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、App設計、微信小程序、虛擬主機、響應式網(wǎng)站、外貿(mào)網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)