日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > C++ > 正文

C++數組的存儲|C++數組所占內存空間

2020-05-23 14:27:31
字體:
來源:轉載
供稿:網友
我們以前說變量像箱子,數組像倉庫。在這一節,我們要來深入探究一下,這些“箱子”和“倉庫”在電腦內部是怎樣擺放的。

內存和地址

我們知道變量和數組都是放在內存里的,我們有時候還能夠聽到內存地址(Address)這個詞。那么地址究竟是什么意思呢?

其實在內存里,就像是許許多多的街道,每條街道有它的名字,而街道上的每幢房子又按順序地編了號,于是街道名和房子在街道上的編號就能確定內存中唯一的一幢房子,我們在這里認為所有的數據在內存中都是放在房子里。電腦就是依照這個原理找到所要的訪問或修改的數據的。街道名和房子在街道上的編號就稱為這個房子的地址。我們通常把地址表示為一串十六進制的數。關于十六進制數我們在這里不作展開說明。

C++數組的存儲|C++數組所占內存空間那么這些內存中的房子和我們所說的變量和數組是什么關系呢?在內存里的房子的大小是規定的,每幢房子只能存儲一個字節(Byte)的數據。(一個字節相當于一個半角的英文字母,一個漢字需要占用兩個字節。)有時候,一種類型的變量需要比較大的空間,比如一個浮點型的實數,一幢房子是放不下的,而是需要4幢房子的空間才能放得下。于是電腦就把連起來的4幢房子拼起來,每幢房子放這個實數的一部分數據。而這連起來的4幢房子,構成了一個能夠存放浮點型實數的變量。

我們認為,內存中的“房子”是客觀存在的,每幢房子的大小一樣,沒有任何區別;而不同類型的變量“箱子”則是由若干幢房子拼接而成,箱子在內存中是不存在的,只是我們為了方便理解而臆想出來的。右圖就是一個浮點型變量在內存中的情況。(圖7.2.1)

數組在內存中的存儲情況

C++數組的存儲|C++數組所占內存空間變量在內存中是由若干個相鄰的“房子”拼接而成的,而數組在內存中則是由若干個相鄰的數組元素按順序拼接而成的。每個數組元素又相當于一個變量。左圖是一個大小為3的短整型(short)數組在內存中的情況。(圖7.2.2)

我們在上一節的最后說到可以省略數組的大小,但是這樣一來我們就無法得知數組的大小了,這將可能造成越界訪問。當我們了解了數組在內存中的存儲情況后,我們就能夠知道數組的大小了。在C++中,有一個名為sizeof的操作符,可以求出一個數組或一種數據類型在內存中占了多少“房子”,它的使用方法是:
    sizeof(數組名或數據類型);

通過左圖我們可以理解,要求出數組的大小,應該是用整個數組占的“房子”數除以每一個數組元素占的“房子”數,即6除以2等于3。下面我們就來看一個求出數組大小的程序實例:(程序7.2.1)
#include "iostream.h"
int main()
{
int array[]={3,5,6,8,7,9};
int size=sizeof(array)/sizeof(int);
cout <<"size="<<size <<endl;
for (int i=0;i<size;i++)
cout <<array[i] <<" ";
cout <<endl;
return 0;
}
運行結果:
size=6
3 5 6 8 7 9

通過這個程序,可以成功地知道一個數組的大小,我們也不用為可能發生的越界訪問而發愁了。

字符的存儲情況

電腦是用電來計算和保存信息的。在電腦里,就好像有許許多多的開關,用導通(開)來表示1,用斷開(關)來表示0。那么這些個“0”和“1”是怎么來表示一些字符的呢?

當只有一個開關的時候,這個開關能表示兩種狀態,即0和1;當有兩個開關的時候,這兩個開關可以表示四種狀態,即00、01、10、11……如果你學過排列,就不難理解,當有8個開關的時候,可以表示28=256種狀態,分別是0~255。在電腦中,就是用8個開關(0或1)來表示一個字節的,每一個開關(0或1)稱為一個“位”(Bit),即8位組成一個字節。我們把一個字節所能表示的256種狀態和256個字符按一定的順序一一對應起來,一個字節就可以表示256種不同的字符。這種用8位二進制表示一個字符的編碼稱為ASCII碼(念aski),它的全稱是美國信息交換標準碼(America Standard Code for Information Interchange)。我們需要記住的ASCII碼有三個,數字0的ASCII碼為十進制的48,大寫字母A的ASCII碼為十進制的65,小寫字母a的ASCII碼為十進制的97。

下面我們就來編寫一段程序,輸出ASCII碼表的常用部分:(程序7.2.2)
#include "iostream.h"
#include "iomanip.h"
int main()
{
   char temp;
   for (int i=32;i<=127;i++)
   {
      temp=i;
      cout << setw(2) <<temp;
      if (i%16==15) //從0~15正好16個,所以余數為15的時候換行
      {
         cout <<endl; 
      }
   }
   return 0;
}
運行結果:
C++數組的存儲|C++數組所占內存空間
以上這段程序輸出了96個常用的字符,從空格(ASCII碼為十進制的32)一直到三角(ASCII碼為十進制的127)。每行16個字符,共6行。有些人可能要問一個問題,上面這段程序中怎么能把整型變量i賦值給字符型變量temp呢?根據前面我們所說的字符的存儲原理,不難發現字符的實質是一個0~255的整數,所以把一個在這個范圍內的整數賦值給字符變量在C++中是允許的。

字符數組在內存中的存儲情況

我們以前說過,字符和字符串是不同的:字符只能是一個,而字符串是由若干個字符連接而成。可是,’a’和”a”有區別嗎?

其實字符和字符串的區別有點像單詞和句子的區別。一句句子可能只有一個單詞組成,但是句號卻是必不可少的,否則就不能稱為句子了。字符串在結尾處也會加上一個“句號”來表示字符串的結束,稱為結尾符。在C++中用數組表示的字符串的結尾符是’/0’,它也是一個字符。所以字符串”a”實際上是兩個字符,即字符’a’和結尾符’/0’。

在初始化一個字符數組的時候有兩種初始化方式,一種是按字符串初始化,一種是按字符初始化。按字符串初始化就會在最后一個元素出現結尾符,而結尾符也要占用一個字符的空間,所以在聲明數組的時候一定要注意空間是否足夠。下面我們就來看一下這兩種初始化方法:(程序7.2.3)
C++數組的存儲|C++數組所占內存空間#include "iostream.h"
int main()
{
   char a[]={"Hello"};//按字符串初始化
   char b[]={'H','e','l','l','o'};//按字符初始化
   char c[]={'H','e','l','l','o','/0'};//按字符串初始化
   cout <<"Size of A=" <<sizeof(a) <<endl;
   cout <<"Size of B=" <<sizeof(b) <<endl;
   cout <<"Size of C=" <<sizeof(c) <<endl;
   cout <<a <<endl;
   cout <<b <<endl;
   cout <<c <<endl;
   return 0;
}
運行結果:
Size of A=6
Size of B=5
Size of C=6
Hello
Hello燙蘃ello
Hello

從數組a、b和c的大小,我們就能看出按字符串和按字符初始化的不同了。你可能還會發現,輸出的數組a和c都是正常的,為什么輸出的b卻夾雜著亂碼呢?這是因為a和c的屬性都是字符串的字符數組,而b是普通字符數組。b數組沒有結尾符,電腦在輸出它的時候就會發生問題了。

數組a和b在內存中的存儲情況如右上圖所示(圖7.2.3)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
91精品国产欧美日韩| 中文字幕日韩欧美在线| 日韩精品在线中文字幕| 一级网站免费观看| 欧洲精品久久久| 精品国产免费视频| 综合激情一区| aa国产成人| 视频一区二区国产| 日韩色在线观看| 亚洲人成欧美中文字幕| 久久久99久久精品欧美| 日韩欧美一二三| 精品国产乱码久久久久久牛牛| 国产中文在线| aaa免费看大片| 日韩欧美综合| 亚洲女人天堂色在线7777| 婷婷综合福利| 亚洲免费专区| 不卡视频一区二区三区| 日韩在线小视频| 欧美日韩在线国产| 亚洲高清在线免费| 伊人国产视频| 国产在线视频一区二区| 亚洲免费精品| 日韩av一区二区在线| 亚洲大片免费看| 国产欧美日韩中文| 美女黄a一级视频| 日韩精品一二三四区| 欧美久久一二三四区| 久久久水蜜桃| 91精品国产自产观看在线 | 国产无遮挡在线视频免费观看| 日韩欧美三级视频| 日本精品专区| 久久99蜜桃精品| 日韩欧美国产片| 国产日韩av一区| 久草视频观看| 欧美在线中文字幕| 一区三区视频| 午夜国产福利在线观看| 日韩欧美在线网址| 国产1卡2卡三卡四卡网站| 91精品视频播放| 日韩免费看网站| 99久久www免费| 午夜一区二区视频| 91精品在线观看国产| 91精品国产91久久久久久不卡| 中文在线视频观看| 91精品国产91| 精品视频—区二区三区免费| 久久精品日韩无码| 欧美日韩精品不卡| 欧美日韩国产综合网| 黄色片免费看| 日韩精品视频在线观看免费| 中文字幕狠狠干| 欧美一级在线免费| 欧美日韩中文另类| 不卡中文一二三区| 国产三级视频在线| 在线一区二区不卡| 欧美 日韩 国产 在线| 午夜精品一区二区三区免费视频| 欧美在线观看视频一区| 日韩欧美999| 最近高清中文在线字幕在线观看| 亚洲高清视频在线| 亚洲一区日韩在线| 国产亚洲短视频| 在线日韩精品视频| 亚洲成av人综合在线观看| 欧美日韩高清一区二区| 日韩免费高清一区二区| 国产最新在线| 高清1区2区| 久久av免费| 亚洲精品欧美二区三区中文字幕 | 日韩av一区二区在线| 在线欧美日韩国产| 一本一道综合狠狠老| 中文字幕久精品免费视频| 69av亚洲| 亚洲a中文字幕| 日韩 国产 一区| 国产日韩av一区二区| 国产欧美 在线欧美| 内射国产内射夫妻免费频道| 欧美日韩在线国产| 国产黄色精品| 免费看ww视频网站入口| 色综合天天性综合| 国产永久免费高清在线观看| 国产视频一区三区| 韩国一区二区av| 国产视频97| 国产成人精品免费网站| 久久精品视频免费看| 久久精品免费看| 欧美日韩国产一级片| 伊人网站在线| 日韩欧美在线1卡| 99精品免费观看| 亚洲成在线观看| 日韩欧美亚洲国产一区| 欧美日韩第一| 亚洲一级影院| 在线免费91| 久久婷婷亚洲| 国产福利一区二区精品秒拍| 国产最新在线| a√免费观看在线网址www| 人人做人人澡人人爽欧美| 91精品国产色综合久久不卡蜜臀| 日韩精品国产欧美| 在线黄色国产电影| 一级免费a一片| 精品国产免费观看一区| 天天综合天天添夜夜添狠狠添| 日韩在线视频免费观看高清中文| 在线欧美日韩国产| 日韩精品高清不卡| 日韩a一区二区| 在线视频日韩欧美| 精品不卡一区二区| 国产不卡的av| 国产永久在线观看| 91日韩中文字幕| 日韩一级免费视频| av免费在线观看网址| 国产视频2区| 亚洲国产综合久久| 中文字幕在线导航| 日韩精品国产欧美| 欧美日韩在线观看一区| 亚洲国产无线乱码在线观看| 国产三级做爰在线观看| 亚洲男人在线| 91精品久久久久久久久久入口| 欧美日韩精品久久久| 色屁屁一区二区| 国产精久久久久| 亚洲欧美久久久| 91精品国产全国免费观看| 日韩在线视频二区| 精品人妻一区二区三区视频| wwwav91com| 亚洲综合日韩| 午夜成人鲁丝片午夜精品| 一级免费a一片| 亚洲日本欧美日韩高观看| 欧美在线日韩在线| 一区免费视频| 色综合天天综合网天天狠天天 | 国产欧美日韩在线视频| 日韩精品综合在线| 欧美日韩国产综合网| 日韩欧美亚洲日产国| 欧美大片在线观看一区| www在线视频| 欧美日韩精品三区| 最新日韩中文字幕| 91精品日本| 久久riav| 亚洲成年网站在线观看| 午夜国产视频| 91精品视频免费在线观看| 91精品国产调教在线观看| 日韩视频精品在线| 91久久精品国产| 亚洲乱码中文字幕综合| 高清在线一区| 精品国产乱码久久久久久蜜臀| 国产三级在线| 久久中文免费视频| 国产综合精品在线| 国产资源中文字幕| www.中文字幕在线观看| 亚洲第一网中文字幕| 91欧美在线| 在线国产1区| 中文字幕欧美人妻精品一区蜜臀| 欧美日韩国产123区| 精品国产乱码久久久久久蜜臀 | 国产黄色在线网站| 国产精久久久久| 日韩免费高清一区二区| 国产羞羞视频在线播放| 国产乱国产乱老熟300部视频| 一区二区在线看| 中文字幕欧美日韩va免费视频| 日韩精品视频中文字幕| 欧美不卡视频| 亚洲一区视频在线观看视频| 亚洲美女视频一区| 日本不卡高清视频一区| 日本精品国语自产拍在线观看| 午夜国产福利在线观看| 天天综合天天做| 日韩精品视频中文在线观看| 国产成人精品综合久久久| 国内精品不卡| 一区二区三区精品99久久| 91精品国产综合久久香蕉的特点| 欧美精选午夜久久久乱码6080| 欧美日韩精品是欧美日韩精品| 日韩中文字幕二区| 蜜臀国产一区| 欧美高清一级片在线| 高清中文字幕在线| 国产欧美日韩第一页| 亚洲精品欧美二区三区中文字幕 | 日韩欧美国产三级| 91精品久久久久久久久| 欧美日韩综合在线观看| 欧美日韩亚洲不卡| 国产在线高潮| 精品色蜜蜜精品视频在线观看| 中文国产字幕在线观看| 亚洲一区在线观看免费| 亚洲黄色片在线观看| 人人做人人澡人人爽欧美| 国产日韩精品在线观看| 一本一道综合狠狠老| 不卡一二三区| 中文字幕在线视频网| 欧美 日韩 国产 在线| 午夜福利一区二区三区| 中文精品在线观看| 国产调教精品| 中文字幕亚洲在| lutube成人福利在线观看| 欧美激情一区二区三区在线| 蜜臀91精品国产高清在线观看| 日韩欧美亚洲视频| 一区二区欧美国产| 一区二区视频在线| 欧美日韩亚洲综合在线| 午夜av一区| 精品国产1区二区| 精品久久久久久无| 国产拍揄自揄精品视频麻豆| 欧美日韩国产系列| 欧美日韩在线观看一区| 精品人妻一区二区免费视频| 国产欧美日韩高清| 中文在线视频观看| 日韩一级网站| 日韩精品视频在线播放| 日韩精品视频在线| 日韩一级二级三级| 日韩一级在线免费观看| 国产一级在线免费观看| 国产羞羞视频在线播放| 老司机久久99久久精品播放免费| 91久久久精品国产| 欧美精品一区二区三区在线播放| 91蜜桃婷婷狠狠久久综合9色| 日韩欧美中文免费| 亚洲欧美久久234| 国自产拍在线网站网址视频| 日韩欧美资源站| 欧美日韩国产中字| 蜜臀国产一区| 久久riav| 国产一区久久久| 日本不卡视频一区| 色综合久久六月婷婷中文字幕| 国产一级片播放| 欧美日韩国产免费观看| 欧美日韩成人综合| 国产日韩1区| 国产成免费视频| 欧美日韩精品中文字幕| 精品久久九九| 中文字幕在线视频精品| 久久久99精品久久| av不卡免费看| 99久久精品国产成人一区二区| 91精品国产91久久久久久青草| 欧美日韩精品三区| 最近高清中文在线字幕在线观看| 日韩欧美国产视频| 日韩精品第一区| 国产一级网站视频在线| 精品日韩在线播放| 亚洲一区不卡在线| 欧美日韩高清在线播放| 日韩欧美中文字幕在线播放| 日韩高清不卡一区二区| 中文字幕在线观看欧美| 国产第一页在线播放| 91精品网站| 国产在线欧美日韩| 国产精久久久久| 免费精品国产自产拍在| 欧美日韩精品三区| 高清不卡一区二区| 亚洲素人一区二区| 91精品国产免费| 久久精品黄色片| 欧美日韩性视频一区二区三区| 国产视频97| 国产黄在线看| 日韩精品在线视频观看| 美女免费视频一区| 日韩av一区在线| 中文字幕综合在线| 国产欧美日韩成人| 欧美91精品| 在线观看91精品国产入口| 日韩不卡一二区| 国产不卡在线| 欧美日韩亚洲不卡| 国产日韩精品在线| 在线欧美一级视频| 国产农村妇女精品一二区| 国产欧美日韩在线| 欧美日韩中文字幕日韩欧美| 99色在线视频| 亚洲欧洲日产国码av系列天堂| 一区二区不卡视频在线观看| 日韩国产亚洲欧美| www日韩在线观看| 在线视频观看日韩| 一二三区精品福利视频| 一区二区在线高清视频| 精品久久人人做人人爽| 欧美日韩免费不卡视频一区二区三区| 日韩欧美国产片| 免费高清在线一区| 99精品999| 精品久久香蕉国产线看观看gif| 中文字幕 乱码 中文乱码91| 国产91欧美| 国产成人精品综合网站| 精品久久香蕉国产线看观看gif| 精品在线91| 91精品国产综合久久香蕉最新版| 你懂的亚洲视频| 极品久久久久久| 午夜一区二区三区视频| 中文字幕在线欧美| 中文字幕在线观看国产| 亚州黄色一级| www在线视频| 亚洲免费中文字幕| 婷婷中文字幕综合| 日韩三区免费| 日韩在线不卡一区| 顶级网黄在线播放| 国产欧美日韩不卡免费| 日韩在线视频一区| 蜜桃视频中文字幕| 亚洲一区在线观看视频| 国产无遮挡在线视频免费观看| 日韩精品一级| 亚洲国产www| 亚洲久草视频| 日本а中文在线天堂| 狠狠色综合色区| 日韩在线视频免费观看 | 91极品视频在线观看| 免费在线国产| 伊人亚洲视频| 在线看欧美日韩| 欧美日韩亚洲综合| 欧美三级日韩三级| 日韩中文字幕精品视频| 狠狠色综合色区| 欧美久久综合性欧美| 精品亚洲成a人片在线观看| 欧美日韩国产一中文字不卡| 久久久精品免费免费| 日韩中文字幕在线观看视频| 内射国产内射夫妻免费频道| 精品视频国产| 91精品国产综合久久久久久漫画| 999精品在线| 中文在线а√在线8| www.狠狠| 91精品999| 亚洲开心激情| 欧美高清视频一区二区三区| 国产高清在线一区| 欧美天堂一区二区| 欧美久久综合性欧美| 国产免费一级片| 成人a在线观看| 不卡在线视频| 刘玥91精选国产在线观看| 日韩欧美在线综合网| 久久精品www| 欧美二区在线观看| 久久精品黄色片|