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

C++的array和&array有什么區(qū)別

 更新時(shí)間:2022年08月19日 12:15:51   作者:哦...  
本文主要介紹了C++的array和&array有什么區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

如果在C++中定義了一個(gè)數(shù)組,例如“ int array[5] ”,那么“ array ”或“ &array ”是什么意思?它們是相同的還是不同的?讓我們一探究竟!

要檢查這一點(diǎn),首先可以想到的是以下程序:

#include <iostream>
using namespace std;
int main()
{
   int array[5]; 
   cout<<"array= "<<array<<" ,&array= "<<&array<<endl;
   return 0;
}

“ array ”和“ &array ”輸出的地址是相同。雖然地址的內(nèi)容相同,但它們是不同類型的地址。這才是“ array ”和“ &array ”真正的區(qū)別。

為了顯示這種差異,修改一下上面的程序:

#include <iostream>
using namespace std;
 
int main()
{
    
    int array[5];
    cout<<"array= "<<array<<" ,&array= "<<&array<<endl;
    cout<<"array+1= "<<array+1<<endl;
    cout<<"&array+1= "<<&array+1<<endl;
    
    return 0;
}

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

 將整數(shù)添加到指針時(shí)會(huì)指向該指針類型的下一個(gè)地址。從輸出結(jié)果可以看出:

  • array+1輸出的結(jié)果中地址值相較于array增加了4個(gè)字節(jié)。
  • &array+1輸出的結(jié)果中地址值相較于&array增加了20個(gè)字節(jié)(0x14 bytes)。

通過(guò)這個(gè)結(jié)果可以推斷出:

“ array ”是“指向 array 的第一個(gè)元素的指針”,而“ &array ”是“指向 擁有5 個(gè) int 元素的整個(gè)數(shù)組的指針”。

這個(gè)邏輯也可以擴(kuò)展到多維數(shù)組。假設(shè) twoDarray[5][4] 是一個(gè)二維數(shù)組。這里,“twoDarray”是一個(gè)指向擁有4個(gè)int型元素?cái)?shù)組的指針,而“&twoDarray”是指向擁有5個(gè)元素,每個(gè)元素是擁有4個(gè)int型元素的數(shù)組的,數(shù)組的指針”。可以使用程序打印測(cè)試。 

所以結(jié)論是:任何數(shù)組名稱本身都是指向數(shù)組第一個(gè)元素的指針,它更像是&array[0]。 但數(shù)組名稱的 &(即地址)是指向整個(gè)數(shù)組本身的指針。

在使用其它的指針變量通過(guò)賦值符號(hào)保存地址值時(shí)。數(shù)組名稱既然代表的是第一個(gè)元素,那么聲明指針變量時(shí)就是:元素類型* 指針名稱;而對(duì)于&數(shù)組名稱,就需要聲明一個(gè)指向數(shù)組的指針保存&array的值,要注意書(shū)寫(xiě)方式,指向數(shù)組的指針的書(shū)寫(xiě)方式與指向函數(shù)的指針有些類似。

int* p1 = array;
int* p2 = &array[0];
int    (*p3)[5] = &array;

如果感覺(jué)指向數(shù)組的指針書(shū)寫(xiě)形式過(guò)于復(fù)雜,也可以直接使用auto推斷類型:

int* p1 = array;
int* p2 = &array[0];
int    (*p3)[5] = &array;
auto p4 = &array;

本文部分內(nèi)容參自:What’s difference between “array” and “&array” for “int array[5]” ?

到此這篇關(guān)于C++的array和&array有什么區(qū)別的文章就介紹到這了,更多相關(guān)C++ array和&array內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談C++模板元編程

    淺談C++模板元編程

    本篇文章主要介紹了淺談C++模板元編程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 深入解析C++中的虛函數(shù)與多態(tài)

    深入解析C++中的虛函數(shù)與多態(tài)

    對(duì)C++ 了解的人都應(yīng)該知道虛函數(shù)(Virtual Function)是通過(guò)一張?zhí)摵瘮?shù)表(Virtual Table)和一個(gè)指向虛函數(shù)表的指針(vptr)來(lái)實(shí)現(xiàn)的
    2013-09-09
  • VS2019中QT連接及使用的方法步驟

    VS2019中QT連接及使用的方法步驟

    這篇文章主要介紹了VS2019中QT連接及使用的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C語(yǔ)言數(shù)組應(yīng)用實(shí)現(xiàn)掃雷游戲

    C語(yǔ)言數(shù)組應(yīng)用實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言數(shù)組應(yīng)用實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語(yǔ)言聯(lián)合體類型的實(shí)現(xiàn)

    C語(yǔ)言聯(lián)合體類型的實(shí)現(xiàn)

    聯(lián)合體也是一種構(gòu)造數(shù)據(jù)類型,和結(jié)構(gòu)體類型一樣,它也是由各種不同類型的數(shù)據(jù)組成,本文主要介紹了C語(yǔ)言聯(lián)合體類型的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • C++事件處理中__event與__raise關(guān)鍵字的用法講解

    C++事件處理中__event與__raise關(guān)鍵字的用法講解

    這篇文章主要介紹了C++事件處理中__event與__raise關(guān)鍵字的用法,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-01-01
  • C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比

    C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比

    這篇文章主要介紹了C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比,分別用于讀取組格式函數(shù)和讀取密碼格式,需要的朋友可以參考下
    2015-08-08
  • C++位圖的實(shí)現(xiàn)原理與方法

    C++位圖的實(shí)現(xiàn)原理與方法

    位圖(bitset)是一種常用的數(shù)據(jù)結(jié)構(gòu),常用在給一個(gè)很大范圍的數(shù),判斷其中的一個(gè)數(shù)是不是在其中。這篇文章主要給大家介紹了關(guān)于C++位圖以及位圖的實(shí)現(xiàn)原理與方法,需要的朋友可以參考下
    2021-05-05
  • 如何用c++表驅(qū)動(dòng)替換if/else和switch/case語(yǔ)句

    如何用c++表驅(qū)動(dòng)替換if/else和switch/case語(yǔ)句

    本文將介紹使用表驅(qū)動(dòng)法,替換復(fù)雜的if/else和switch/case語(yǔ)句,想了解詳細(xì)內(nèi)容,請(qǐng)看下文
    2021-08-08
  • 用C語(yǔ)言實(shí)現(xiàn)從文本文件中讀取數(shù)據(jù)后進(jìn)行排序的功能

    用C語(yǔ)言實(shí)現(xiàn)從文本文件中讀取數(shù)據(jù)后進(jìn)行排序的功能

    這是一個(gè)十分可靠的程序,這個(gè)程序的查錯(cuò)能力非常強(qiáng)悍。程序包含了文件操作,歸并排序和字符串輸入等多種技術(shù)。對(duì)大家學(xué)習(xí)C語(yǔ)言很有幫助,有需要的一起來(lái)看看。
    2016-08-08

最新評(píng)論