最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言變量和全局變量能否重名問題

 更新時間:2024年08月21日 09:02:12   作者:Code repairman  
這篇文章主要介紹了C語言變量和全局變量能否重名問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

C語言變量和全局變量能否重名

解答

全局變量和局部變量是按照變量的作用域劃分的。

簡單地說,局部變量是定義在函數(shù)內(nèi)部的變量;全局變量是定義在函數(shù)之外的變量。

全局變量可以為本文件中其他函數(shù)所共用。

局部變量和全局變量可以重名,局部變量會屏蔽全局變量。要使?全局變量,要在變量名前添加" :: "。

心得

局部變量和全局變量是可以重名的,因為它們的作用域不同。

在函數(shù)中,默認(rèn)使用的是局部變量。

全局變量和局部變量重名了會怎么樣

在交流群里面看到這樣一個問題:

為什么這個程序中下面我定義的void型函數(shù)smart在全局變量前聲明了,但是在man函數(shù)中調(diào)用了smart函數(shù),m的值打印出來還是0。

#include<stdio.h>

int m;
void smart(void);

int main(void)
{
	printf("m = %d.\n", m);
	smart();
	printf("m = %d.\n", m);
	//m+=1;
	//printf("m = %d.\n", m);
	
	
	return 0;
}

void smart(void)
{
	int m = 25;
	
}

說實話,這個問題對于C語言有一個簡單理解的肯定明白問題在哪里。但是,群里面人講了半天沒講到重點,還是有點抓急。有講局部變量函數(shù)執(zhí)行結(jié)束自動釋放的,所以全局變量的m沒有被改變。有講作用域不同的。千奇百怪的回答。

因為,能夠搜到這篇文章的,大概率都是新手小白,我也就不會講太深奧的東西了,盡量以簡單易懂的語言講明白。

全局變量和局部變量同名編譯器是如何處理

(1)如果在函數(shù)內(nèi)部同時存在一個局部變量和一個全局變量,它們的名字相同,那么在函數(shù)內(nèi)部使用該變量時,將優(yōu)先使用局部變量。

(2)舉個現(xiàn)實生活的例子,兩個除了長相不同,其他都一樣的角色。一個是游戲活動期間才能玩的角色A,一個是你永久擁有的角色B。

  • 雖然他們的數(shù)值是一樣的,但是對于絕大多數(shù)玩家而言,在活動期間大概率還是會優(yōu)先用限時角色A。
  • 但是呢,游玩角色,打怪能夠升級。可是角色A在活動結(jié)束之后,就會消失,那么活動期間你所得到的所有經(jīng)驗值都會消失。并不會反饋給永久角色B。
  • 最后,你只能憤憤不平,被官方擺了一套。

(3)根據(jù)上面這個舉例,我們就很好理解了全局變量和局部變量同名情況了。

對于計算機(jī)而言,全局變量和局部變量究竟是什么?

(1)我們都知道,對于計算機(jī)而言,他本質(zhì)上只能夠識別0和1。哪些所謂的代碼,變量名,其實都是給人類看的。因此,我們?nèi)祟惪吹饺肿兞亢途植孔兞棵忠粯樱菍τ谟嬎銠C(jī)而言是不一樣的。

(2)這個將人類看的懂的語言,變成計算機(jī)能夠看懂的01語言需要通過編譯器來決定。

(3)當(dāng)你在代碼中寫了一個全局變量m和一個局部變量m。編譯器就會開辟兩個不同的地址分別存放全局變量m和局部變量m。

  • 當(dāng)你在smart()函數(shù)調(diào)用m變量的時候,編譯器就會告訴機(jī)器,你應(yīng)該操作的是地址A。
  • 當(dāng)smart()函數(shù)調(diào)用結(jié)束的時候,編譯器就會告訴機(jī)器,你應(yīng)該操作的是地址B。同時機(jī)器會自己將地址A釋放掉。
  • 那么你在地址A做的操作是無效的。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++畫正弦線實例代碼

    C++畫正弦線實例代碼

    這篇文章主要介紹了C++畫正弦線實例代碼,是C++圖形操作程序設(shè)計中比較常見的一個技巧,需要的朋友可以參考下
    2014-10-10
  • OpenCV實現(xiàn)圖像背景虛化效果原理詳解

    OpenCV實現(xiàn)圖像背景虛化效果原理詳解

    相信用過相機(jī)的同學(xué)都知道虛化特效,這是一種使焦點聚集在拍攝主題上,讓背景變得朦朧的效果。本文將詳細(xì)介紹一些這一效果的實現(xiàn)原理以及代碼,需要的可以參考一下
    2022-03-03
  • C++之WSAAsyncSelect模型實例

    C++之WSAAsyncSelect模型實例

    這篇文章主要介紹了C++的WSAAsyncSelect模型,實例講述了socket與Windows消息機(jī)制的用法,需要的朋友可以參考下
    2014-10-10
  • C++函數(shù)模板與重載解析超詳細(xì)講解

    C++函數(shù)模板與重載解析超詳細(xì)講解

    模板是C++最重要的設(shè)計。這篇文章講的是函數(shù)模板,只是簡單介紹模板的一些功能,關(guān)于模板的更多的內(nèi)容會在類模板中詳細(xì)介紹。文章還著重介紹了重載解析過程
    2022-08-08
  • C++中signed?main和int?main的區(qū)別

    C++中signed?main和int?main的區(qū)別

    這篇文章介紹了C++中signed?main和int?main的區(qū)別,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • C語言 詳細(xì)分析結(jié)構(gòu)體的內(nèi)存對齊

    C語言 詳細(xì)分析結(jié)構(gòu)體的內(nèi)存對齊

    C 數(shù)組允許定義可存儲相同類型數(shù)據(jù)項的變量,結(jié)構(gòu)是 C 編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許你存儲不同類型的數(shù)據(jù)項,本篇讓我們來了解C 的結(jié)構(gòu)體內(nèi)存對齊
    2022-03-03
  • C/C++?Qt實現(xiàn)文章小說人物關(guān)系分析

    C/C++?Qt實現(xiàn)文章小說人物關(guān)系分析

    這篇文章主要為大家詳細(xì)介紹了C/C++?Qt如何實現(xiàn)文章小說人物關(guān)系分析功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • C語言超詳細(xì)講解數(shù)據(jù)結(jié)構(gòu)中雙向帶頭循環(huán)鏈表

    C語言超詳細(xì)講解數(shù)據(jù)結(jié)構(gòu)中雙向帶頭循環(huán)鏈表

    帶頭雙向循環(huán)鏈表:結(jié)構(gòu)最復(fù)雜,一般用在單獨(dú)存儲數(shù)據(jù)。實際中使用的鏈表數(shù)據(jù)結(jié)構(gòu),都是帶頭雙向循環(huán)鏈表。另外這個結(jié)構(gòu)雖然結(jié)構(gòu)復(fù)雜,但是使用代碼實現(xiàn)以后會發(fā)現(xiàn)結(jié)構(gòu)會帶來很多優(yōu)勢,實現(xiàn)反而簡單
    2022-04-04
  • 深入Linux grep指令的詳解(實用型)

    深入Linux grep指令的詳解(實用型)

    本篇文章是對Linux下的grep指令進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++實現(xiàn)萬年歷功能

    C++實現(xiàn)萬年歷功能

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)萬年歷功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10

最新評論

孝感市| 凭祥市| 济阳县| 嵊泗县| 余江县| 柳河县| 南和县| 泾阳县| 新竹市| 岑溪市| 永康市| 镇远县| 宁阳县| 基隆市| 北票市| 钦州市| 宕昌县| 新营市| 偏关县| 永新县| 楚雄市| 长白| 舟山市| 宜章县| 多伦县| 祁阳县| 乐至县| 安多县| 望都县| 离岛区| 灵台县| 色达县| 泰兴市| 石家庄市| 横山县| 丽江市| 青神县| 诸暨市| 伊通| 龙门县| 高清|