日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 标识符的作用域

發(fā)布時間:2025/5/22 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言 标识符的作用域 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#include <stdio.h> int x = 20;void print_x(void){puts("------print_x函數(shù)調(diào)用文件作用域------"); printf("x = %d\n", x); }int main(void){int i;int x = 88;print_x();puts("-------main函數(shù)調(diào)用塊作用域-----------"); printf("x = %d\n", x);puts("---for循環(huán)體打印for循環(huán)體內(nèi)部塊作用域---"); for (i = 0; i < 5; i++){int x = i * 100;printf("x = %d\n", x);}puts("---------main函數(shù)調(diào)用塊作用域-----------"); printf("x = %d\n", x); }

運行結(jié)果:

由于print_x函數(shù)內(nèi)沒有定義變量,所以會引入 函數(shù)體外定義的變量 x = 20;
當(dāng)在main函數(shù)內(nèi)部打印x變量時,會在內(nèi)部尋找是否定義了x 變量 如果有,則會就近原則打印main 內(nèi)部定義的變量,如果沒有 則會打印 main 函數(shù)體外面的變量。
for循環(huán)會打印循環(huán)體中的變量,當(dāng)for語句的循環(huán)結(jié)束之后,該變量 x 的名稱就會失效。
所以在調(diào)用最后一個printf函數(shù)時,x值顯示的是mian函數(shù)內(nèi)定義 x = 88;

#include <stdio.h> int x = 20;int main(void){puts("-------調(diào)用函數(shù)外層的變量-----------"); printf("x = %d\n", x);int x = 88;puts("---------調(diào)用函數(shù)內(nèi)層的變量------------"); printf("x = %d\n", x); }

運行結(jié)果:

總結(jié):

  • 如果 兩個同名變量分別擁有文件作用域和塊作用域,那么只有擁有塊作用域的變量是 “可見” 的,而擁有文件作用域的變量會被 “隱藏” 起來。

  • 當(dāng)同名變量都被賦予了塊作用域的時候,內(nèi)層的變量是“可見”的,而外層的變量會被 “隱藏” 起來。

  • 函數(shù)會就近原則,先找函數(shù)體內(nèi)是否存在定義的變量,如果沒有,則會尋找函數(shù)體外層的變量,如果都沒有,程序會報錯。

  • 程序是從上往下逐條執(zhí)行的
    如果在引用變量的下方定義了變量,沒有在上方定義變量,則不會調(diào)用函數(shù)體下方的變量。

  • 總結(jié)

    以上是生活随笔為你收集整理的C语言 标识符的作用域的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。