国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

scope / 作用域(C變量的作用域)

這篇具有很好參考價值的文章主要介紹了scope / 作用域(C變量的作用域)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

scope / 作用域(C變量的作用域)

參考:C Primer Plus 第6版 第12章 存儲類別、鏈接和內(nèi)存管理

目錄
  • scope / 作用域(C變量的作用域)
    • 1. 定義
    • 2. 分類
      • 2.1. block scope / 塊作用域
        • 2.1.1. 定義
        • 2.1.2. 函數(shù)的形式參數(shù)
        • 2.1.3. 沒有花括號的塊
      • 2.2. function scope / 函數(shù)作用域
      • 2.3. function prototype scope / 函數(shù)原型作用域
      • 2.4. file scope / 文件作用域
    • 3. 總結(jié)

1. 定義

描述程序中可以訪問identifier(標(biāo)識符)的區(qū)域

2. 分類

scope可以分為四類:
scope / 作用域(C變量的作用域)

2.1. block scope / 塊作用域

2.1.1. 定義

  • block/塊是用一塊花括號括起來的代碼區(qū)域
  • 塊作用域變量的范圍是從定義處到包含該定義塊的末尾
  • 聲明在內(nèi)層塊中的變量,其作用域僅局限于該聲明所在的塊

2.1.2. 函數(shù)的形式參數(shù)

  • 雖然函數(shù)的形式參數(shù)聲明在函數(shù)的花括號之前,但是它們也具有塊作用域,屬于函數(shù)體這個塊

2.1.3. 沒有花括號的塊

之前,具有塊作用域的變量都必須聲明在塊的開頭,C99標(biāo)準(zhǔn)放開了這個限制:作為循環(huán)或者if語句的一部分,即便不使用花括號,也是一個塊。

所以for循環(huán)語句可以這樣定義:for(int i=0; i<10; i++)

更完整地說,整個循環(huán)是它所在塊的子塊,循環(huán)體是整個循環(huán)塊的子塊;if語句是一個塊,與其相關(guān)聯(lián)的子語句是if語句的子塊,這其中包含著一種嵌套關(guān)系。

#include <stdio.h>

int main()
{
    int n = 8;

    printf("Initially, n = %d at %p\n", n, &n);

    for (int n = 1; n < 3; n++)
        printf("loop 1: n = %d at %p\n", n, &n);
    
    printf("After loop 1, n = %d at %p\n", n, &n);

    for (int n = 1; n < 3; n++)
    {
        printf("loop 2 index n: n = %d at %p\n", n, &n);
        int n = 6;
        printf("loop 2: n = %d at %p\n", n, &n);
        n++;
    }

    printf("After loop 2, n = %d at %p\n", n, &n);

    return 0;
}

該程序的輸出如下:

Initially, n = 8 at 000000950FDFF6D4
loop 1: n = 1 at 000000950FDFF6F4
loop 1: n = 2 at 000000950FDFF6F4
After loop 1, n = 8 at 000000950FDFF6D4
loop 2 index n: n = 1 at 000000950FDFF714
loop 2: n = 6 at 000000950FDFF734
loop 2 index n: n = 2 at 000000950FDFF714
loop 2: n = 6 at 000000950FDFF734
After loop 2, n = 8 at 000000950FDFF6D4

進入循環(huán)之后,隱藏了原有的n;
然后在循環(huán)體中又聲明了一個n,隱藏了索引n;
循環(huán)單次迭代結(jié)束之后,聲明在循環(huán)體中的n消失,循環(huán)頭仍調(diào)用到索引n;
當(dāng)整個循環(huán)完成之后,原始的n重新起作用。

簡而言之,索引n的作用域是整個循環(huán),而定義在循環(huán)體中變量n的作用域只有單個循環(huán)。

?。?!沒必要在程序中使用相同的變量名

2.2. function scope / 函數(shù)作用域

  • 僅用于goto語句的標(biāo)簽
  • 即使一個標(biāo)簽首次出現(xiàn)在函數(shù)的內(nèi)層塊中,它的作用域也將延伸至整個函數(shù)(是整個函數(shù)而非塊)
  • 標(biāo)簽的函數(shù)作用域防止在兩個塊中使用相同的標(biāo)簽所導(dǎo)致的混亂

2.3. function prototype scope / 函數(shù)原型作用域

參考:CSDN博客,但是它函數(shù)作用域?qū)戝e了

  • 用于函數(shù)原型中的形參名
  • 函數(shù)原型作用域的范圍是從形參定義處到原型聲明結(jié)束(可以理解為小括號內(nèi))
  • 函數(shù)原型聲明中的標(biāo)識符可以與函數(shù)定義中說明的標(biāo)識符名稱不同,只要讓函數(shù)聲明和函數(shù)定義中小括號內(nèi)每個變量的類型及數(shù)目一致即可,也可以省略掉參數(shù)名。
double max(double x, double y);
double max(double, double);
//兩者均可

2.4. file scope / 文件作用域

  • 從定義處到該定義所在的文件末尾均可見
  • 文件作用域變量也被稱作全局變量 global variable

3. 總結(jié)

  1. scope的定義
  2. scope的分類以及各自的含義

Others:文章來源地址http://www.zghlxwxcb.cn/news/detail-825020.html

  1. goto標(biāo)簽如何使用?
  2. 什么是函數(shù)原型?

到了這里,關(guān)于scope / 作用域(C變量的作用域)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring Bean 的作用域(Bean Scope)

    大家好,我是 god23bin,今天我們來聊一聊 Spring 框架中的 Bean 作用域(Scope)。 我們在以 XML 作為配置元數(shù)據(jù)的情況下,進行 Bean 的定義,是這樣的: 我們寫了一個 Bean 定義(Bean Definition),就是用于創(chuàng)建所定義的類的實例的。 一個 Bean 定義,我們可以類比一個類的定義,你

    2024年02月09日
    瀏覽(20)
  • 基于Xml方式的Bean的配置-Bean的作用范圍scope配置

    基于Xml方式的Bean的配置-Bean的作用范圍scope配置

    Bean的配置范圍 默認(rèn)情況下( 基本的Spring環(huán)境 ),單純Spring環(huán)境Bean的作用范圍有兩個:Singleton和prototype singleton :單例,默認(rèn)值, Spring容器創(chuàng)建的時候,就會進行Bean的實例化 ,并儲存到Bean的內(nèi)部的 單例池 中,每次getBean時都是從單例池中獲取相同的Bean實例 prototype :原型,

    2024年02月07日
    瀏覽(22)
  • C++ Primer 5th 閱讀筆記:變量和基本類型

    C++ Primer 5th 閱讀筆記:變量和基本類型

    內(nèi)建類型 ,如整型,字符型等; 變量 ,為值綁定的一個名字; 表達式和語句 ,操作值。 分支和循環(huán) ,允許我們條件執(zhí)行和重復(fù)執(zhí)行; 函數(shù) ,定義抽象計算單元。 自定義類型; 標(biāo)準(zhǔn)庫。 學(xué)習(xí)語言的基本知識和標(biāo)準(zhǔn)庫。 內(nèi)建類型; 簡要介紹自定義類。 定義了數(shù)據(jù)的意義

    2024年02月02日
    瀏覽(18)
  • 【vue2第九章】組件化開發(fā)和根組件以及style上的scoped作用

    【vue2第九章】組件化開發(fā)和根組件以及style上的scoped作用

    組件化開發(fā)和根組件 什么是組件化開發(fā)? 一個頁面可以拆分為多個組件,每個組件有自己的 樣式,結(jié)構(gòu),行為 ,組件化開發(fā)的好處就是,便于維護,利于重復(fù)利用,提升開發(fā)的效率。 便于維護 :頁面中塊出了問題,可以直接去找到這個組件,修改組件的樣式邏輯結(jié)構(gòu)。

    2024年02月10日
    瀏覽(102)
  • Vue在表格中拿到該行信息的方式(作用域插槽-#default-scope-解決按鈕與行點擊的順序問題)

    Vue在表格中拿到該行信息的方式(作用域插槽-#default-scope-解決按鈕與行點擊的順序問題)

    在做表格的時候,表格是封裝好了的,用于展示數(shù)據(jù)。如果想給單行增加按鈕,可以單獨寫一列存放按鈕,最基本的需求是,點擊按鈕后要拿到數(shù)據(jù)然后發(fā)起請求。 且Vue的element-plus,當(dāng)我們點擊按鈕之后會自動觸發(fā)行點擊事件。這本身是一件好的事情,但難搞的地方在于,執(zhí)

    2024年02月10日
    瀏覽(32)
  • C++的作用域、變量作用域、生命周期和變量分類介紹

    C++ 中的作用域(scope)指的是變量、函數(shù)或其他標(biāo)識符的可見和可訪問的范圍。 變量作用域(Variable Scope)是指變量的生命周期和可見性,也就是變量在程序中的哪些部分可以使用。按照作用域(Scope)變量可分類為全局變量和局部變量。 還可按照生命周期(Lifetime)進行分

    2024年02月13日
    瀏覽(35)
  • 【C語言趣味教學(xué)】(6) 作用域:局部變量 | 全局變量 | 局部變量優(yōu)先原則 | 利用大括號限制作用域 | 變量的生命周期

    【C語言趣味教學(xué)】(6) 作用域:局部變量 | 全局變量 | 局部變量優(yōu)先原則 | 利用大括號限制作用域 | 變量的生命周期

    ??? ?? 【C語言趣味教程】專欄介紹?? 猛戳了解?。?! 0x00 引入:什么是作用域? 變量和常量在程序中都是有作用范圍的,這個范圍我們稱之為變量的? 作用域 (scope) 。 作用域也稱為 \\\"定義域\\\",是程序中 定義的變量所存在的區(qū)域,出了該區(qū)域變量就不能被訪問。 變量的作

    2024年02月14日
    瀏覽(19)
  • 【C語言趣味教程】(6) 作用域:局部變量 | 全局變量 | 局部變量優(yōu)先原則 | 利用大括號限制作用域 | 變量的生命周期

    【C語言趣味教程】(6) 作用域:局部變量 | 全局變量 | 局部變量優(yōu)先原則 | 利用大括號限制作用域 | 變量的生命周期

    ??? ?? 【C語言趣味教程】專欄介紹?? 猛戳了解?。?! 0x00 引入:什么是作用域? 變量和常量在程序中都是有作用范圍的,這個范圍我們稱之為變量的? 作用域 (scope) 。 作用域也稱為 \\\"定義域\\\",是程序中 定義的變量所存在的區(qū)域,出了該區(qū)域變量就不能被訪問。 變量的作

    2024年02月14日
    瀏覽(30)
  • 面向?qū)ο蟆境蓡T變量與局部變量、方法聲明與作用】

    面向?qū)ο蟆境蓡T變量與局部變量、方法聲明與作用】

    Java中的成員變量是指 類中聲明的變量 ,也稱為實例變量或?qū)傩?。它們與方法一樣屬于類的成員,不同之處在于,它們存儲在對象(堆)中而不是棧中,并且每個對象都有自己的一組值。 成員變量可以用來描述一個對象的狀態(tài),例如人的年齡、學(xué)生的姓名等。它們可以具有pub

    2024年02月10日
    瀏覽(31)
  • MySQL 5.7服務(wù)器系統(tǒng)變量參考

    ?官網(wǎng)地址:MySQL :: MySQL 5.7 Reference Manual :: 5.1.4 Server System Variable Reference 歡迎關(guān)注留言,我是收集整理小能手,工具翻譯,僅供參考,筆芯筆芯. MySQL 5.7 參考手冊??/??...??/??服務(wù)器系統(tǒng)變量參考 5.1.4 服務(wù)器系統(tǒng)變量參考 下表列出了 中適用的所有系統(tǒng)變量? mysqld 。 該表在

    2024年02月03日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包