a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

C語言中變量與其內存地址對應的入門知識簡單講解

2020-01-26 14:48:21
字體:
來源:轉載
供稿:網友

先來理解理解內存空間吧。請看下圖:

2015122152650673.png (604×123)

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

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

int i;char a;

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

我們又如何來理解變量是如何存在的呢。當我們如下聲明變量時:

int i;char a;

內存中的映象可能如下圖:

2015122152709044.png (609×134)

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

賦值給變量

再看下面賦值:

i = 30;a = 't';

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

2015122152729534.png (616×132)

變量在哪里?

即我想知道變量的地址。

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

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

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

printf("%x", &i);

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

這就是我所認為的作為初學者應該能夠想象到的變量存儲的實質了。請這樣理解吧。

最后總結代碼如下:

#include "stdio.h"main(){  int i = 5;  printf("%d/n", i); /*①*/  printf("%d/n", &i); /*②*/  return(0);}

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

程序運行結果:

52686748Process returned 0 (0x0)  execution time : 0.079 sPress any key to continue.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: av在线成人 | 欧美一区成人 | 九九久久久 | 日韩一区二区在线电影 | 色视频在线观看 | 九九久久久 | 成人性大片免费观看网站 | 色站综合 | 九九热精品视频 | 久久之精品 | 国产免费黄色 | 色欧美综合 | 国产精品久久久久久久久 | 欧美日本国产欧美日本韩国99 | 中文字幕国产 | 欧美在线一二三 | 国产精品久久久久久免费一级 | 午夜精品影院 | 日中文字幕在线 | 日韩在线高清视频 | 日本不卡一二三 | 视频一区二区三区在线观看 | 在线观看国产视频 | 免费观看黄a一级视频 | 日摸夜操| 亚洲精品在线观 | 中文字幕亚洲精品在线观看 | 久久久精选 | 日本男人的天堂 | 免费在线看a | 国产精品一区二区三区在线 | 国产一区二区三区在线免费观看 | 中文字幕在线视频免费观看 | 性处破╳╳╳高清欧美 | 91国内视频在线观看 | 国产精品久久久久久久久久免费看 | 久久精品91 | 亚洲欧美日韩国产综合 | www.久草| 国产精品自产av一区二区三区 | 国产精品原创巨作av色鲁 |