直接上代碼,編譯環境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的文件作用域結束
編譯後結果如下