(1)**塊基本可以理解為一對大括號{}括起來的部分。
(2)**塊不等於函式,因為if,while,for都有{}。所以**塊是 <= 函式的。
(3)區域性變數的作用域是**塊作用域,也就是說乙個區域性變數可以被訪問和使用的範圍僅限於定義這個區域性變數的**塊中定義式之後的部分。
(1)檔案作用域的意思就是全域性的訪問許可權,也就是說在整個.c檔案中都可以訪問這些東西。這就是平時所說的區域性和全域性,全域性就是檔案作用域。
(2)詳細準確的說:函式和全域性變數的作用域是定義所在的整個.c檔案之內定義式之後的部分。
總結:1、不管是區域性變數、全域性變數、函式,都要先定義才能使用;
2、嚴格來說,我們上面的總結是錯誤的。準確的說:全域性變數/函式的作用域都是自己所在的**塊檔案,但是定義式之前的部分因為缺少宣告所以沒法用,解決方案是:1、把它定義到前面去;2、定義到後面但是在前面加宣告;區域性變數因為無法宣告,所以只能定義到前面去。
3、在c89標準的編譯器中(現在很多編譯器還延續使用c89標準),所有的區域性變數必須先定義在最前面,在變數定義之前不能有一句執行**。在c99標準的編譯器中(gcc相容c99標準)可以允許在**塊內任意地方定義變數。但是允許定義的變數還是只能使用在定義了之後,定義之前還是不能用的。
JavaScript 作用域,作用域鏈詳解
前言 es5缺少區域性作用域的概念,而es6已經補充了es6的概念。一 作用域 把作用域比作乙個個封閉的方塊,在相同乙個封閉方塊中的物體可以相互接觸,但是無法和別的封閉方塊中的物體直接接觸。二 全域性作用域 這個就是簡單的全域性作用域。全域性作用域相當於乙個最大的封閉空間,他裡面還有乙個個小的封閉空...
執行環境,作用域,作用域鏈詳解
宣告 該文章有些概念摘自 j ascript高階程式設計 1 執行環境 也稱 環境 執行環境定義了變數或函式有權訪問的其他資料,決定了他們各自的行為。全域性定義的變數,函式裡面可以訪問。一般情況下,函式裡面定義的變數,全域性無法訪問 2 全域性執行環境 全域性執行環境是最外圍的一直執行環境,在web...
C C 中作用域詳解
c c 中作用域詳解 作用域規則告訴我們乙個變數的有效範圍,它在哪兒建立,在哪兒銷毀 也就是說超出了作用域 變數的有效作用域從它的定義點開始,到和定義變數之前最鄰近的開括號配對的第乙個閉括號。也就是說,作用域由變數所在的最近一對括號確定。1 全域性變數 全域性變數是在所有函式體的外部定義的,程式的所...