中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c語言中的解釋局部和全局作用域實例分析

發布時間:2022-02-28 16:27:08 來源:億速云 閱讀:140 作者:iii 欄目:開發技術

這篇文章主要介紹“c語言中的解釋局部和全局作用域實例分析”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“c語言中的解釋局部和全局作用域實例分析”文章能幫助大家解決問題。

變量的作用域是什么?

在繼續了解局部和全局變量作用域之前,讓我們了解作用域的含義。

簡單來說,變量的作用域就是它在程序中的生命周期。

這意味著變量的作用域是整個程序中變量被聲明、使用和可以修改的代碼塊。

在下一節中,您將了解變量的局部作用域

C 中變量的局部作用域——嵌套塊

在本節中,您將了解局部變量如何在 C 中工作。您將首先編寫幾個示例,然后概括作用域原則。

? 這是第一個例子:

#include <stdio.h>

int main() 
{
    int my_num = 7;
    {
        //add 10 my_num
        my_num = my_num +10;
        //or my_num +=10 - more succinctly
        printf("my_num is %d",my_num);
    }
    
    return 0;
}

讓我們了解一下上面的程序是做什么的。

在 C 中,您用 {}分隔代碼塊。左花括號和右花括號分別表示塊的開始和結束。

  • 該main()函數有一個整數變量my_num,它在外部塊中初始化為 7 。

  • 有一個內部塊試圖將 10 添加到變量my_num。

現在,編譯并運行上面的程序。這是輸出:

//Output

my_num is 17

您可以看到以下內容:

  • 內部塊能夠訪問my_num在外部塊中聲明的值,并通過向其添加 7 來修改它。

  • 的值my_num現在是 17,如輸出中所示。

C 中變量的局部范圍——嵌套塊示例 2

? 這是另一個相關的例子:

#include <stdio.h>

int main() 
{
    int my_num = 7;
    {
        int new_num = 10;
    } 
    printf("new_num is %d",new_num); //this is line 9
    return 0;
}
  • 在這個程序中,main()函數my_num在外部塊中有一個整數變量。

  • 另一個變量new_num在內部塊中初始化。內部塊嵌套在外部塊內。

  • 我們試圖new_num在外部塊中訪問和打印內部塊的值。

如果您嘗試編譯上面的代碼,您會注意到它沒有成功編譯。您將收到以下錯誤消息:

Line   Message
9      error: 'new_num' undeclared (first use in this function)
這是因為變量new_num是在內部塊中聲明的,其作用域僅限于內部塊。換句話說,它對于內部塊是本地的,不能從外部塊訪問。

基于上述觀察,讓我們寫下以下變量局部作用域的通用原則:

{
	/*OUTER BLOCK*/
    
      {
    	
        
        //contents of the outer block just before the start of this block
        //CAN be accessed here
        
        /*INNER BLOCK*/
        
        
      }
     
       //contents of the inner block are NOT accessible here
 }

C 中變量的局部作用域——不同的塊

在前面的示例中,您了解了如何無法從塊外部訪問嵌套內部塊中的變量。

在本節中,您將了解在不同塊中聲明的變量的局部作用域。

#include <stdio.h>

int main()
{
    int my_num = 7;
    printf("%d",my_num);
    my_func();
    return 0;
}

void my_func()
{
    printf("%d",my_num);
}

在上面的例子中,

  • 整型變量my_num在main()函數內部聲明。

  • 在main()函數內部,my_num打印出的值。

  • 還有另一個函數my_func()試圖訪問和打印 my_num的值。

  • 當程序從main()函數開始執行時,會調用到函數my_func()內部main()。

? 現在編譯并運行上述程序。您將收到以下錯誤消息:

Line   Message
13     error: 'my_num' undeclared (first use in this function)

如果您注意到 on line 13,該函數my_func()嘗試訪問在my_num函數內部聲明和初始化的main()變量。

因此,變量的作用域my_num被限制在main()函數內,被稱為函數局部的main()。

我們可以將這種局部作用域的概念一般性地表示如下:

{

	/*BLOCK 1*/
    // contents of BLOCK 2 cannot be accessed here
    
}


{

	/*BLOCK 2*/
    // contents of BLOCK 1 cannot be accessed here
    
}

C 中變量的全局范圍

到目前為止,您已經了解了 C 變量的局部作用域。在本節中,您將學習如何在 C 中聲明全局變量。

? 讓我們從一個例子開始。

#include <stdio.h>
int my_num = 7;

int main()
{
    printf("my_num can be accessed from main() and its value is %d\n",my_num);
    //call my_func
    my_func();
    return 0;
}

void my_func()
{
  printf("my_num can be accessed from my_func() as well and its value is %d\n",my_num);
}

在上面的例子中,

  • 該變量my_num在函數main()和之外聲明my_func()。

  • 我們嘗試訪問函數my_num內部main(),并打印其值。

  • 我們在函數my_func()內部調用main()函數。

  • 該函數my_func()還嘗試訪問 的值my_num,并將其打印出來。

該程序編譯沒有任何錯誤,輸出如下所示:

//Output
my_num can be accessed from main() and its value is 7
my_num can be accessed from my_func() as well and its value is 7

在這個例子中,有兩個函數 -main()和my_func()。

然而,該變量my_num不在兩個這兩個函數中。這種對任何函數都不是局部的變量被稱為具有全局作用域,稱為全局變量。

這個全局變量作用域的原理可以總結如下:

//all global variables are declared here
function1()
	{
    
    // all global variables can be accessed inside function1
    
    }
function2()
	{
    
    // all global variables can be accessed inside function2
     
    }

關于“c語言中的解釋局部和全局作用域實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高清| 锡林浩特市| 社会| 沙河市| 封开县| 泌阳县| 富顺县| 德昌县| 灵台县| 乐业县| 建德市| 白沙| 米易县| 新民市| 且末县| 滨州市| 区。| 龙岩市| 巴南区| 屏东市| 新泰市| 仁怀市| 中阳县| 望城县| 监利县| 合阳县| 酒泉市| 台北县| 西盟| 林口县| 名山县| 四会市| 新蔡县| 湘阴县| 韶山市| 汶上县| 河北省| 惠来县| 泰顺县| 定日县| 咸丰县|