直接上代碼,編譯環境VIsual C++
#include<stdio.h>
int q;//q具有檔案作用域,此處為檔案作用域開始
//變量m具有函數原型作用域,從變量定義處一直到變量聲明的末尾,也就是局限在小括号()内,也可以不用變量名q,隻用int*告訴編譯器參數類型,
//如果加名字的話,也可以用int*m等别的名字,可以不與函數定義中的名字p相同
void fun(int*m);
int main(void)
{
//函數作用域開始,本質屬于代碼塊作用域
int i=10;
q=20;
printf("Before change ,i=%d\n",i);
fun(&i);
printf("After change ,i=%d\n",i);
printf("Global Variable q=%d\n",q);
for(int j=0;j<5;j++)//複合語句作用域開始,本質屬于代碼塊作用域
{
int m=0;
printf("j=%d\n",j);
}//複合語句作用域結束
return 0;
//函數作用域結束
}
void fun(int*p)
{//形參變量p函數作用域開始,本質屬于代碼塊作用域
*p=30;
//形參變量p函數作用域結束
}
//全局變量q的檔案作用域結束
編譯後結果如下