因?yàn)楹瘮?shù)調(diào)用時(shí),參數(shù)是“值傳遞”,把參數(shù)的值傳遞給了被調(diào)用函數(shù)棧上的相同類型的變量。在函數(shù)內(nèi)入?yún)⒌闹当恍薷闹?,你修改的是被調(diào)用函數(shù)棧上的變量的值,而不是被調(diào)用函數(shù)棧之外的,調(diào)用函數(shù)之前作為參數(shù)值傳遞給被調(diào)用函數(shù)的參數(shù)的值。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、岢嵐網(wǎng)站維護(hù)、網(wǎng)站推廣。
如果想在函數(shù)內(nèi)修改入?yún)⒌闹祩鬟f出去,就要用指針,或者全局變量。如果是C++,還可以使用“引用類型“變量。
你將一個(gè)int類型設(shè)為參數(shù),然后地址傳遞就可以了
例如:
void?x(int?x)//注意這里有取地址符號(hào),是地址傳遞
{
x?=?x-1;
}
//然后main中調(diào)用
int?main()
{
int?i=10;
x(i);//
//此時(shí)i成功減一
}
#include?stdio.h
int?add(int?*a)
{
int?i?=?0;
int?sum?=?0;
for(?i?=?0;?i??100;?i++)
{
sum?+=?(*(a+i))*2;
}
return?sum;????
}
int?main(){
int?a[100]={1,2,3};
//result
printf("The?add?result?is?%d.\n",add(a));
//print?the?array
printf("{");
for(int?i?=?0;?i??100;?i++)
printf("%d,?",a[i]);
printf("}");
return?0;
}
sum result is 12.
{1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }
Press ENTER or type command to continue