W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
這個(gè)例子涉及一個(gè)循環(huán)的嵌套塊:
你在循環(huán)塊中聲明和定義count2:
count2在每次循環(huán)迭代時(shí)重新創(chuàng)建,初始值為0。
在每個(gè)循環(huán)迭代期間,count2被創(chuàng)建,初始化,遞增和銷毀。
變量count1存在于main()塊級(jí)別。
它在遞增時(shí)繼續(xù)存在。
#include <stdio.h>
int main(void) {
int count1 = 1; // Declared in outer block
do {
int count2 = 0; // Declared in inner block
++count2;
printf("count1 = %d count2 = %d\n", count1, count2);
} while( ++count1 <= 10);
// count2 no longer exists
printf("count1 = %d\n", count1);
return 0;
}
上面的代碼生成以下結(jié)果。
以下代碼有兩個(gè)名為count的變量。
在循環(huán)塊內(nèi),局部變量將“隱藏”存在于main()塊級(jí)別的count版本。
count是指的是在當(dāng)前塊的聲明。
在do-while循環(huán)中,只能達(dá)到局部版本的count。
循環(huán)塊中的printf()顯示局部count值,該值始終為1。
一旦退出循環(huán),外部count變量變?yōu)榭梢?jiàn),最后一個(gè)printf()從循環(huán)中顯示其最終值。
#include <stdio.h>
int main(void) {
int count = 0; // Declared in outer block
do {
int count = 0; // This is another variable called count
++count; // this applies to inner count
printf("count = %d\n", count);
}
while( ++count <= 10); // This works with outer count
printf("count = %d\n", count); // Inner count is dead, this is outer count
return 0;
}
上面的代碼生成以下結(jié)果。
每個(gè)函數(shù)的主體是一個(gè)塊。
在函數(shù)中聲明的變量是局部的函數(shù)。
函數(shù)的一般形式如下所示:
Return_type Function_name(type1 para1, type2 para2,...) { // Statements... }
函數(shù)體中的語(yǔ)句可以不存在。
從一個(gè)函數(shù)的返回值與body中的語(yǔ)句被指定為void。
對(duì)于具有非void返回類型的函數(shù),其返回語(yǔ)句必須返回指定返回類型的值。
該參數(shù)指定在調(diào)用函數(shù)時(shí)應(yīng)傳遞給該函數(shù)的值的類型。
傳遞給與參數(shù)相對(duì)應(yīng)的函數(shù)的值稱為參數(shù)。
函數(shù)參數(shù)由參數(shù)名稱后面的類型組成。
調(diào)用函數(shù)的一般形式是以下表達(dá)式:
Function_name(argument1, argument2, ...)
您使用函數(shù)的名稱后跟一個(gè)括號(hào)中的逗號(hào)分隔的參數(shù)列表。
一個(gè)函數(shù)調(diào)用本身可以作為一個(gè)語(yǔ)句顯示,如下所示:
printf("hi.");
這樣調(diào)用的函數(shù)可以是一個(gè)返回值的函數(shù)。
在這種情況下,返回的值被丟棄。
已經(jīng)使用void返回類型定義的函數(shù)只能這樣調(diào)用。
返回值的函數(shù)可以在表達(dá)式中。
例如:
result = 2.0*sqrt(2.0);
函數(shù)的名稱可以是C中的任何合法名稱。
函數(shù)參數(shù)是需要指定的參數(shù)的占位符。
函數(shù)的參數(shù)是具有其類型的參數(shù)名稱列表,連續(xù)的參數(shù)用逗號(hào)分隔。
將參數(shù)傳遞給函數(shù)時(shí),將參數(shù)值復(fù)制到函數(shù)中。
我們?cè)賮?lái)看一下函數(shù)的一般形式:
Return_type Function_name(... { // Statements... }
Return_type指定函數(shù)返回的值的類型。
您可以先定義main()函數(shù),然后定義函數(shù)Average()。
// #include ... int main(void) { ... Average... } double Average(double x[], size_t n) { ... }
這不會(huì)編譯。
當(dāng)編譯器看到main()中的Average()函數(shù)時(shí),它不會(huì)知道Average()函數(shù)。
我們可以使用函數(shù)原型來(lái)解決這個(gè)問(wèn)題。
函數(shù)聲明或函數(shù)原型是定義函數(shù)原型的語(yǔ)句。
函數(shù)原型定義函數(shù)的名稱,返回值類型以及每個(gè)參數(shù)的類型。
一個(gè)函數(shù)的原型與函數(shù)頭完全相同,后綴中帶有一個(gè)分號(hào)。
以下代碼顯示了如何創(chuàng)建函數(shù)原型。
// Function prototypes double Average(double data_values[], size_t count); int main(void) { ... } // Definitions for Average()
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: