首頁 > 後端開發 > C#.Net教程 > 什麼是變數的作用域

什麼是變數的作用域

青灯夜游
發布: 2020-10-12 16:23:29
原創
31333 人瀏覽過

什麼是變數的作用域

變數的作用域是指變數有效性的範圍,就是使用者自訂的變數可以使用的程式碼範圍;它與變數定義的位置密切相關。

作用域是從空間這個角度來描述變數的,依作用域的不同,變數可分為局部變數和全域變數。

1、局部變數

局部變數是在函數(或程式碼區塊)內部定義的變量,也稱為內部變量,局部變數只能在定義它的函數(或程式碼區塊)內被存取和使用,其他函數均不能使用。

局部變數的作用域,限於說明它的程式碼區塊內:從說明的地方開始至所在的程式碼區塊結束, 離開該函數後再使用這種變數是非法的。

例:

int f1(int a)
{
int b,c;
……
}a,b,c作用域
int f2(int x)
{
int y,z;
}x,y,z作用域
main()
{
int m,n;
}
登入後複製

說明:a為形參,b,c為一般變數;在f1的範圍內a,b,c有效,或者說a,b,c變數的作用域限於f1內。同理,x,y,z的作用域限於f2內; m,n的作用域限於main函數內。

注意,在同一個作用域內,不允許有同名的變數。

2、全域變數

全域變數是在全域環境下宣告的變量,它的作用域是從定義點開始直到程序檔案結束;它在程式的整個運作過程中,都佔用儲存單元。

全域變數在一個函數中改變了全域變數的值,其他函數可以共享;它相當於起到在函數間傳遞資料的作用。

例:

int a,b;
void f1()
{
……
}
float x,y;
int fz()
{
……
}
main()
{
……
}
登入後複製

說明:a、b、x、y 都是在函數外部定義的外部變量,都是全域變數。但x,y 定義在函數f1之後,在f1內又無對x,y的說明,所以它們在f1內無效。 a,b定義在原始程式最前面,因此在f1,f2及main內不加說明也可使用。

程式碼範例:

輸入立方體的長寬高l,w,h。求體積及三個面x*y,x*z,y*z的面積。

#include <stdio.h>
int s1,s2,s3;//全局变量 

int vs( int a,int b,int c)

{

int v;//局部变量 

v=a*b*c;

s1=a*b;

s2=b*c;

s3=a*c;

return v;

}

main()

{

int v,l,w,h;//局部变量 

printf("\n分别输入长度l、宽度w和高度h:\n");

scanf("%d%d%d",&l,&w,&h);

v=vs(l,w,h);

printf("面积1为:%d,面积2为:%d,面积3为:%d\n",s1,s2,s3);
printf("体积为:%d",v);

}
登入後複製

輸出:

什麼是變數的作用域

以上是什麼是變數的作用域的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板