日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

C语言 标识符的作用域

發(fā)布時(shí)間:2025/5/22 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言 标识符的作用域 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#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); }

運(yùn)行結(jié)果:

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

運(yùn)行結(jié)果:

總結(jié):

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

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

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

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

  • 總結(jié)

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

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