新聞中心
急求一個c語言定義函數(shù)的程序,有一個參數(shù)但無返回值,實現(xiàn)輸出一行n
前面我們說的都是無參數(shù)無返回值的函數(shù),實際程序中,我們經(jīng)常使用到帶參數(shù)有返回值的函數(shù)。
10年積累的成都網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有普安免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
一、函數(shù)參數(shù)傳遞
1.形式參數(shù)和實際參數(shù)
函數(shù)的調(diào)用值把一些表達式作為參數(shù)傳遞給函數(shù)。函數(shù)定義中的參數(shù)是形式參數(shù),函數(shù)的調(diào)用者提供給函數(shù)的參數(shù)叫實際參數(shù)。在函數(shù)調(diào)用之前,實際參數(shù)的值將被拷貝到這些形式參數(shù)中。
2.參數(shù)傳遞
先看一個例子:
void a(int); /*注意函數(shù)聲明的形式*/
main()
{
int num;
scanf("%d",num);
a(num); /*注意調(diào)用形式*/
}
void a(int num_back) /*注意定義形式*/
{
printf("%d\n",num_back);
}
在主函數(shù)中,先定義一個變量,然后輸入一個值,在a()這個函數(shù)中輸出。當程序運行a(num);這一步時,把num的值賦值給num_back,在運行程序過程中,把實際參數(shù)的值傳給形式參數(shù),這就是函數(shù)參數(shù)的傳遞。
形參和實參可能不只一個,如果多于一個時,函數(shù)聲明、調(diào)用、定義的形式都要一一對應(yīng),不僅個數(shù)要對應(yīng),參數(shù)的數(shù)據(jù)類型也要對應(yīng)。
void a(int,float);
main()
{
int num1;
float num2;
scanf("%d",num1);
scanf("%f",num2);
a(num1,num2);
}
void a(int num1_back,float num2_back)
{
printf("%d,%f\n",num1_back,num2_back);
}
上面的例子中,函數(shù)有兩個參數(shù),一個是整型,一個是浮點型,那么在聲明、調(diào)用、定義的時候,不僅個數(shù)要一樣,類型也要對應(yīng)。如果不對應(yīng),有可能使的編譯錯誤,即使沒錯誤,也有可能讓數(shù)據(jù)傳遞過程中出現(xiàn)錯誤。
再看一個例子:
void a(int);
main()
{
int num;
scanf("%d",num);
a(num);
}
void a(int num)
{
printf("%d\n",num);
}
看上面的例子,形式參數(shù)和實際參數(shù)的標識符都是num,程序把實際參數(shù)num的值傳遞給形式參數(shù)num。有些人可能就不明白了,既然兩個都是num,為什么還要傳遞呢?干脆這樣不就行了嗎:
void a();
main()
{
int num;
scanf("%d",num);
a();
}
void a()
{
printf("%d\n",num);
}
其實不然,這就要涉及到標識符作用域的問題。作用域的意思就是說,哪些變量在哪些范圍內(nèi)有效。一個標識符在一個語句塊中聲明,那么這個標識符僅在當前和更低的語句塊中可見,在函數(shù)外部的其實地方不可見,其他地方同名的標識符不受影響,后面我們會系統(tǒng)講解作用域的問題。在這兒你就要知道兩個同名的變量在不同的函數(shù)中是互不干擾的。
前面將的都是變量與變量之間的值傳遞,其實函數(shù)也可以傳遞數(shù)組之間的值??聪旅娴睦樱?/p>
void a(int []);
main()
{
int array[5],i;
for(i=0;i5;i++) scanf("%d",array[i]);
a(array);
}
void a(int array[])
{
int i;
for(i=0;i5;i++) printf("%d\t",array[i]);
printf("\n");
}
C語言中沒有返回值的函數(shù)調(diào)用有什么意義呢?
可以實現(xiàn)很多功能啊,只是他不需要于使用者進行互動而已。
例如 int add(int a,int b) return a+b;
這些需要和用戶交互信息的。
而void display(void) printf("Hello Word!");
這些不需要反之某一個有意義的值,但是也可以幫你實現(xiàn)某些功能。
個人觀點,有錯的地方望大神指正!
C語言中調(diào)用有返回值和無返回值函數(shù)有何區(qū)別??
無返回值的函數(shù),只進行某種操作。
有返回值的函數(shù),可以將某個變量或指針返回其調(diào)用函數(shù)。
兩者形式上的區(qū)別如下:
無返回值:void
fun1();
有返回值:int
fun2();
調(diào)用的區(qū)別:
無返回值:
main()
{
……
fun1();
……
}
有返回值:
main()
{
int
a;
……
a=fun2();
……
}
關(guān)于c語言中的無return的函數(shù)
編譯器是可以通過的。但這不是標準的寫法,f函數(shù)沒有聲明,那么在C語言中默認是int類型的,應(yīng)該有return 語句。 而且也不利于調(diào)試,因為如果要使用調(diào)試工具gbd的話,它進入函數(shù)后一定要有return才能跳出來。 我建議寫代碼一定要養(yǎng)成好的習(xí)慣,這樣可以避免很多麻煩。
C語言中返回值的作用,什么函數(shù)可以不需要返回值
一個方法,可以有返回值,也可以沒有!首先方法有參數(shù),方法就像一個箱子,里面有機關(guān)。然后參數(shù)就是需要通過機關(guān)處理的東西,然后被機關(guān)處理完之后·最后從出口出來一個新的東西。那個就是返回的值。!你傳進一個值~然后通過你寫的方法處理,返回一個新的值,來達到你的目的。例如我寫一個方法st()。方法的作用就是傳遞進去一個字符串,然后自動截取最后的兩個字符。然后返回給你!
public string st(string str)
{
return str.substring(2,str.length-1);
}
然后你使用這個方法就會返回最后兩位。。應(yīng)該沒寫錯把。。錯了別拍我。
這個看的懂把。我是自學(xué)C#的。C也看過,其實大致上都是差不多的。!沒有返回值的話就相當于是一個過程存儲在方法里??梢苑磸?fù)的利用。只要需要這個過程的時候。直接用這個方法就可以了。多省事。
c語言函數(shù)問題:1.不需要返回值的函數(shù),即直接讓函數(shù)輸出某個值或符號的,必須要定義成void類型才規(guī)范對?
void表示函數(shù)無返回值,也就不需要寫return。如沒有返回值的函數(shù),void要寫,否則默認返回值是int型需要return語句。
關(guān)于函數(shù)返回多個值,有很多方法:
一、不返回,函數(shù)返回值依然是void,但傳值的時候傳變量地址,那么在函數(shù)運行中改變變量地址里的值,函數(shù)運行結(jié)束,外面實參變量也改變了。比如void fun(int* a)。
二、不返回,函數(shù)通過全局變量傳遞值。
三、返回數(shù)組類型(包括結(jié)構(gòu)數(shù)組),在函數(shù)中將要返回的多個值放在數(shù)組中返回,比如char *fun()。
標題名稱:不返回值的函數(shù)c語言 c語言為什么要返回函數(shù)值
分享路徑:http://ef60e0e.cn/article/hiceph.html