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

C語言中變量與其內(nèi)存地址對應(yīng)的入門知識簡單講解

 更新時間:2015年12月02日 15:31:56   投稿:goldensun  
這篇文章主要介紹了C語言中變量與其內(nèi)存地址對應(yīng)的入門知識簡單講解,同時這也是掌握指針部分知識的基礎(chǔ),需要的朋友可以參考下

先來理解理解內(nèi)存空間吧。請看下圖:

2015122152650673.png (604×123)

如上圖所示,內(nèi)存只不過是一個存放數(shù)據(jù)的空間,就好像我的看電影時的電影院中的座位一樣。電影院中的每個座位都要編號,而我們的內(nèi)存要存放各種各樣的數(shù)據(jù),當(dāng)然我們要知道我們的這些數(shù)據(jù)存放在什么位置吧。所以內(nèi)存也要象座位一樣進行編號了,這就是我們所說的內(nèi)存編址。座位可以是遵循“一個座位對應(yīng)一個號碼”的原則,從“第1號”開始編號。而內(nèi)存則是按一個字節(jié)接著一個字節(jié)的次序進行編址,如上圖所示。每個字節(jié)都有個編號,我們稱之為內(nèi)存地址。好了,我說了這么多,現(xiàn)在你能理解內(nèi)存空間這個概念嗎?

我們繼續(xù)看看以下的C/C++語言變量聲明:

int i;
char a;

每次我們要使用某變量時都要事先這樣聲明它,它其實是內(nèi)存中申請了一個名為i的整型變量寬度的空間(DOS下的16位編程中其寬度為2個字節(jié)),和一個名為a的字符型變量寬度的空間(占1個字節(jié))。

我們又如何來理解變量是如何存在的呢。當(dāng)我們?nèi)缦侣暶髯兞繒r:

int i;
char a;

內(nèi)存中的映象可能如下圖:

2015122152709044.png (609×134)

圖中可看出,i在內(nèi)存起始地址為6上申請了兩個字節(jié)的空間(我這里假設(shè)了int的寬度為16位,不同系統(tǒng)中int的寬度可能是不一樣的),并命名為i。a在內(nèi)存地址為8上申請了一字節(jié)的空間,并命名為a。這樣我們就有兩個不同類型的變量了。

賦值給變量

再看下面賦值:

i = 30;
a = 't';

你當(dāng)然知道個兩個語句是將30存入i變量的內(nèi)存空間中,將“t”字符存入a變量的內(nèi)存空間中。我們可以利用這樣的形象來理解:

2015122152729534.png (616×132)

變量在哪里?

即我想知道變量的地址。

好了,接下來我們來看看&i是什么意思?

是取i變量所在的地址編號嘛。我們可以這樣讀它:返回i變量的地址編號。你記住了嗎?

我要在屏幕上顯示變量的地址值的話,可以寫如下代碼:

printf("%x", &i);

以上圖的內(nèi)存映象為例,屏幕上顯示的不是i值30,而是顯示i的內(nèi)存地址編號6了。當(dāng)然,在你的實際操作中,i變量的地址值不會是這個數(shù)了。

這就是我所認(rèn)為的作為初學(xué)者應(yīng)該能夠想象到的變量存儲的實質(zhì)了。請這樣理解吧。

最后總結(jié)代碼如下:

#include "stdio.h"

main()
{
  int i = 5;
  printf("%d\n", i); /*①*/
  printf("%d\n", &i); /*②*/
  return(0);
}

現(xiàn)在你可知道①、②兩個printf分別在屏幕上輸出的是i的什么東西啊?

程序運行結(jié)果:

5
2686748

Process returned 0 (0x0)  execution time : 0.079 s
Press any key to continue.

相關(guān)文章

  • C語言編程數(shù)據(jù)結(jié)構(gòu)帶頭雙向循環(huán)鏈表全面詳解

    C語言編程數(shù)據(jù)結(jié)構(gòu)帶頭雙向循環(huán)鏈表全面詳解

    這篇文章主要為大家介紹了C語言編程的數(shù)據(jù)結(jié)構(gòu)中帶頭雙向循環(huán)鏈表全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步,早日升職加薪
    2021-10-10
  • C++11并發(fā)編程關(guān)于原子操作atomic的代碼示例

    C++11并發(fā)編程關(guān)于原子操作atomic的代碼示例

    今天小編就為大家分享一篇關(guān)于C++11并發(fā)編程關(guān)于原子操作atomic的代碼示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C語言全面梳理結(jié)構(gòu)體知識點

    C語言全面梳理結(jié)構(gòu)體知識點

    結(jié)構(gòu)體是一些值的集合,這些值稱為成員變量,結(jié)構(gòu)體的每個成員可以是不同類型的變量。本文將通過示例為大家詳細講講C語言中結(jié)構(gòu)體的使用,需要的可以參考一下
    2022-07-07
  • C++/GoLang如何實現(xiàn)自底向上的歸并排序

    C++/GoLang如何實現(xiàn)自底向上的歸并排序

    這篇文章主要給大家介紹了關(guān)于C++/GoLang如何實現(xiàn)自底向上的歸并排序的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳談C++的內(nèi)存泄漏問題

    詳談C++的內(nèi)存泄漏問題

    下面小編就為大家?guī)硪黄斦凜++的內(nèi)存泄漏問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • QT實現(xiàn)FTP上傳文件

    QT實現(xiàn)FTP上傳文件

    這篇文章主要為大家詳細介紹了QT實現(xiàn)FTP上傳文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言實現(xiàn)數(shù)字游戲

    C語言實現(xiàn)數(shù)字游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)數(shù)字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C++ 封裝 DLL 供 C# 調(diào)用詳細介紹

    C++ 封裝 DLL 供 C# 調(diào)用詳細介紹

    這篇文章主要介紹了C++ 封裝 DLL 供 C# 調(diào)用(以C# 調(diào)用C++ 二次封裝的VLC播放庫為介質(zhì),支持回調(diào)函數(shù)的封裝),需要的朋友可以參考下面我文章的具體內(nèi)容
    2021-09-09
  • C/C++惡意代碼盤點之文件自動刪除

    C/C++惡意代碼盤點之文件自動刪除

    惡意代碼的分類包括計算機病毒、蠕蟲、木馬等,有些技術(shù)經(jīng)常用到,有的也是必然用到。今天我們就分享一下文件自動刪除,感興趣的可以了解一下
    2022-09-09
  • 帶你從編碼角度分析C++重載原理

    帶你從編碼角度分析C++重載原理

    這篇文章主要為大家介紹了從編碼角度分析C++重載原理,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01

最新評論

红原县| 韶关市| 原平市| 石屏县| 洞口县| 沈阳市| 乐东| 溧阳市| 汉川市| 开平市| 桑日县| 南开区| 蒙自县| 惠安县| 望奎县| 建平县| 囊谦县| 阳信县| 延津县| 平乡县| 龙川县| 龙南县| 深泽县| 当阳市| 囊谦县| 双鸭山市| 阿克陶县| 西畴县| 普兰店市| 江津市| 准格尔旗| 西平县| 丁青县| 阳朔县| 呈贡县| 梅河口市| 花莲市| 开化县| 双江| 星座| 赤城县|