欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

2015122152650673.png (604×123)

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

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

int i;
char a;

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

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

int i;
char a;

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

2015122152709044.png (609×134)

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

賦值給變量

再看下面賦值:

i = 30;
a = 't';

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

2015122152729534.png (616×132)

變量在哪里?

即我想知道變量的地址。

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

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

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

printf("%x", &i);

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

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

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

#include "stdio.h"

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

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

程序運(yùn)行結(jié)果:

5
2686748

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

相關(guān)文章

  • C++實(shí)現(xiàn)LeetCode(889.由先序和后序遍歷建立二叉樹)

    C++實(shí)現(xiàn)LeetCode(889.由先序和后序遍歷建立二叉樹)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(889.由先序和后序遍歷建立二叉樹),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 利用Matlab制作環(huán)形相冊(cè)效果詳解

    利用Matlab制作環(huán)形相冊(cè)效果詳解

    這篇文章主要為大家介紹了如何利用Matlab制作出環(huán)形相冊(cè)的效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-03-03
  • Java C++ 算法題解leetcode1608特殊數(shù)組特征值

    Java C++ 算法題解leetcode1608特殊數(shù)組特征值

    這篇文章主要為大家介紹了Java C++ 算法題解拓展leetcode1608特殊數(shù)組特征值實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 詳解C語(yǔ)言結(jié)構(gòu)體中的函數(shù)指針

    詳解C語(yǔ)言結(jié)構(gòu)體中的函數(shù)指針

    這篇文章主要介紹了詳解C語(yǔ)言結(jié)構(gòu)體中的函數(shù)指針,文中對(duì)函數(shù)指針的基本概念也有講解,需要的朋友可以參考下
    2016-04-04
  • C++基礎(chǔ)算法基于哈希表的索引堆變形

    C++基礎(chǔ)算法基于哈希表的索引堆變形

    這篇文章主要為大家介紹了C++基礎(chǔ)算法,基于哈希表的索引堆變形示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • VS C++頭文件引用提示“未定義標(biāo)識(shí)符”的問題解決

    VS C++頭文件引用提示“未定義標(biāo)識(shí)符”的問題解決

    本文主要介紹了VS C++頭文件引用提示“未定義標(biāo)識(shí)符”的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • VS?Code+msys2配置Windows系統(tǒng)下C/C++開發(fā)環(huán)境

    VS?Code+msys2配置Windows系統(tǒng)下C/C++開發(fā)環(huán)境

    我們?cè)趙indows10中使用VS Code做C++程序開發(fā)過程中,需要安裝MSYS2和MinGW,下面這篇文章主要給大家介紹了關(guān)于VS?Code+msys2配置Windows系統(tǒng)下C/C++開發(fā)環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • socket多人聊天程序C語(yǔ)言版(二)

    socket多人聊天程序C語(yǔ)言版(二)

    這篇文章主要為大家詳細(xì)介紹了socket多人聊天程序C語(yǔ)言版第二篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 一文掌握C++ 智能指針全部用法

    一文掌握C++ 智能指針全部用法

    學(xué)習(xí)智能指針有很多好處,可以幫我們C++程序員管理動(dòng)態(tài)分配的內(nèi)存的,它會(huì)幫助我們自動(dòng)釋放new出來的內(nèi)存,從而避免內(nèi)存泄漏,感興趣的朋友跟隨小編一起看看吧
    2021-08-08
  • 詳解C++中賦值,關(guān)系,函數(shù)調(diào)用運(yùn)算符重載的實(shí)現(xiàn)

    詳解C++中賦值,關(guān)系,函數(shù)調(diào)用運(yùn)算符重載的實(shí)現(xiàn)

    本文主要為大家講解一下三個(gè)C++中的運(yùn)算符重載,分別是賦值運(yùn)算符重載、關(guān)系運(yùn)算符重載和函數(shù)調(diào)用運(yùn)算符重載,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-06-06

最新評(píng)論