再看一個(gè)例子:
void a(int);
main()
{
int num;
scanf(%d,&num);
a(num);
}
void a(int num)
{
printf(%d\n,num);
}
看上面的例子,形式參數(shù)和實(shí)際參數(shù)的標(biāo)識(shí)符都是num,程序把實(shí)際參數(shù)num的值傳遞給形式參數(shù)num。有些人可能就不明白了,既然兩個(gè)都是num,為什么還要傳遞呢?干脆這樣不就行了嗎:
void a();
main()
{
int num;
scanf(%d,&num);
a();
}
void a()
{
printf(%d\n,num);
}
其實(shí)不然,這就要涉及到標(biāo)識(shí)符作用域的問(wèn)題。作用域的意思就是說(shuō),哪些變量在哪些范圍內(nèi)有效。一個(gè)標(biāo)識(shí)符在一個(gè)語(yǔ)句塊中聲明,那么這個(gè)標(biāo)識(shí)符僅在當(dāng)前和更低的語(yǔ)句塊中可見(jiàn),在函數(shù)外部的其實(shí)地方不可見(jiàn),其他地方同名的標(biāo)識(shí)符不受影響,后面我們會(huì)系統(tǒng)講解作用域的問(wèn)題。在這兒你就要知道兩個(gè)同名的變量在不同的函數(shù)中是互不干擾的。
前面將的都是變量與變量之間的值傳遞,其實(shí)函數(shù)也可以傳遞數(shù)組之間的值�?聪旅娴睦樱�
void a(int []);
main()
{
int array[5],i;
for(i=0;i<5;i++) scanf(%d,&array[i]);
a(array);
}
void a(int array[])
{
int i;
for(i=0;i<5;i++) printf(%d\t,array[i]);
printf(\n);
}
這就是數(shù)組之間的值傳遞。注意他們的聲明和定義形式,和變量參數(shù)傳遞有什么區(qū)別?有了后面的[]就表明傳遞的是一個(gè)數(shù)組。其中在定義的時(shí)候,也可以寫成void a(int array[5]);想想,如果我們寫成了int array[4]會(huì)有什么情況發(fā)生?
目前我們只學(xué)了數(shù)組和變量,以后還會(huì)知道指針、結(jié)構(gòu),到那是,函數(shù)也可以傳遞它們之間的值。
相關(guān)推薦:計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言教程匯總計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言常見(jiàn)知識(shí)點(diǎn)總結(jié)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |