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