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

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

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

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

要檢查這一點,首先可以想到的是以下程序:

#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;
}

運行結果:

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

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

通過這個結果可以推斷出:

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

這個邏輯也可以擴展到多維數(shù)組。假設 twoDarray[5][4] 是一個二維數(shù)組。這里,“twoDarray”是一個指向擁有4個int型元素數(shù)組的指針,而“&twoDarray”是指向擁有5個元素,每個元素是擁有4個int型元素的數(shù)組的,數(shù)組的指針”??梢允褂贸绦虼蛴y試。 

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

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

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

如果感覺指向數(shù)組的指針書寫形式過于復雜,也可以直接使用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]” ?

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

相關文章

  • C++11的functional模塊介紹和使用案例

    C++11的functional模塊介紹和使用案例

    functional模塊是C++ 11提供了一組函數(shù)對象和算法,用于增強C++的函數(shù)式編程能力,本文主要介紹了C++11的functional模塊介紹和使用案例,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • C語言關鍵字union的定義和使用詳解

    C語言關鍵字union的定義和使用詳解

    這篇文章主要介紹了C語言關鍵字union的定義和使用詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 詳解如何用alpine鏡像做一個最小的鏡像并運行c++程序

    詳解如何用alpine鏡像做一個最小的鏡像并運行c++程序

    這篇文章主要介紹了詳解如何用alpine鏡像做一個最小的鏡像并運行c++程序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • C語言單鏈表實現(xiàn)通訊錄管理系統(tǒng)

    C語言單鏈表實現(xiàn)通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言單鏈表實現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • linux c 查找使用庫的cflags與libs的方法詳解

    linux c 查找使用庫的cflags與libs的方法詳解

    本篇文章是對在linux中使用c語言查找使用庫的cflags與libs的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言中的鏈接編寫教程

    C語言中的鏈接編寫教程

    這篇文章主要介紹了C語言中的鏈接編寫教程,是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2015-08-08
  • C++ Boost Coroutine使用協(xié)程詳解

    C++ Boost Coroutine使用協(xié)程詳解

    通過Boost.Coroutine,可以在C++中使用協(xié)程。協(xié)程是其他編程語言的一個特性,通常使用關鍵字yield來表示協(xié)程。在這些編程語言中,yield可以像return一樣使用
    2022-11-11
  • C語言實現(xiàn)流星雨效果流程

    C語言實現(xiàn)流星雨效果流程

    C本篇文章帶你用C語言去實現(xiàn)漫天流星雨的效果,代碼寫的很清晰,效果非常棒,另有視頻詳解整個過程,相信你一定能看懂,感興趣的童鞋快來看看吧
    2021-11-11
  • 關于UDP服務器客戶端編程流程介紹

    關于UDP服務器客戶端編程流程介紹

    大家好,本篇文章主要講的是關于UDP服務器客戶端編程流程介紹,感興趣的同學趕快來看看吧,對你有幫助的話記得收藏
    2021-12-12
  • C語言堆棧幀的介紹與創(chuàng)建

    C語言堆棧幀的介紹與創(chuàng)建

    這篇文章主要給大家介紹了關于C語言堆棧幀的相關資料,堆棧幀 (stack frame)( 或活動記錄 (activation Tecord)) 是一塊堆棧保留區(qū)域,用于存放被傳遞的實際參數(shù)、子程序的返回值、局部變量以及被保存的寄存器,需要的朋友可以參考下
    2021-08-08

最新評論

资源县| 博罗县| 嵊泗县| 刚察县| 星子县| 绥芬河市| 东乌珠穆沁旗| 绥阳县| 肃北| 波密县| 布尔津县| 珲春市| 绥芬河市| 乌拉特后旗| 开鲁县| 连江县| 宁国市| 房产| 荥阳市| 外汇| 青川县| 乌拉特前旗| 南投县| 绥德县| 蒙山县| 恭城| 双柏县| 衡南县| 洛浦县| 郴州市| 湾仔区| 茂名市| 榆林市| 广宁县| 克拉玛依市| 天台县| 兴安县| 望谟县| 嵊泗县| 海阳市| 翁源县|