程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言基礎教程(五)函數(8)

C語言基礎教程(五)函數(8)

編輯:關於C語言

3.函數作用范圍

Turbo C2.0中每個函數都是獨立的代碼塊,函數代碼歸該函數所有,除了對函數的調用以外,其它任何函數中的任何語句都不能訪問它。例如使用跳轉語句goto就不能從一個函數跳進其它函數內部。除非使用全程變量,否則一個函數內部定義的程序代碼和數據,不會與另一個函數內的程序代碼和數據相互影響。
Turbo C2.0中所有函數的作用域都處於同一嵌套程度,即不能在一個函數內再說明或定義另一個函數。
Turbo C2.0中一個函數對其它子函數的調用是全程的,即是函數在不同的文件中,也不必附加任何說明語句而被另一函數調用,也就是說一個函數對於整個程序都是可見的。
4.函數的變量作用域
在Turbo C2.0中,變量是可以在各個層次的子程序中加以說明,也就是說,在任何函數中,變量說明有只允許在一個函數體的開頭處說明,而且允許變量的說明(包括初始化)跟在一個復合語句的左花括號的後面,直到配對的右花括號為止。它的作用域僅在這對花括號內,當程序執行到出花括號時,它將不復存在。當然,內層中的變量即使與外層中的變量名字相同,它們之間也是沒有關系的。
例9.
#include<stdio.h>
int i=10;
int main()
{
int i=1;
printf("%d\t, i);
{
int i=2;
pritnf("%d\t", i);
{
extern i;
i+=1;
printf("%d\t", i);
}
printf("%d\t", ++i);
}
printf("%d\n", ++i);
return 0;
}
運行結果為
1 2 11 3 2
從程序運行的結果不難看出程序中各變量之間的關系,以及各個變量的作用域。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved