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

C++數(shù)組和指針的區(qū)別與聯(lián)系

 更新時間:2022年01月06日 10:44:57   作者:龍小  
這篇文章主要介紹了C++數(shù)組和指針的區(qū)別與聯(lián)系,數(shù)組是具有固定大小和連續(xù)內(nèi)存空間的相同數(shù)據(jù)集合,指針是指存放內(nèi)存地址的變量,更多詳細(xì)資料請參考下面文章內(nèi)容

前言:

一直以來,有很多地方在說到數(shù)組和指針時都會說數(shù)據(jù)就是指針,這種觀點也被越來越多的人接受。本文將主要介紹數(shù)組和指針。是不是一樣的大家自己理解。如此而已……

1 數(shù)組和指針的概念

數(shù)組:具有固定大小和連續(xù)內(nèi)存空間的相同數(shù)據(jù)集合。里面的存儲的元素具有地址連續(xù)性和數(shù)據(jù)類型相同的特點。
指針:是指存放內(nèi)存地址的變量。從0開始。32位系統(tǒng)可訪問內(nèi)存4G,目前64位系統(tǒng)可尋址內(nèi)存空間為128G。(可能會更大。這個需要硬件資源的支撐。不抬杠)

2 數(shù)組和指針的操作

2.1 賦值

數(shù)組:對數(shù)組元素進(jìn)行逐個賦值。
指針:相同類型指針可以直接進(jìn)行賦值。

2.2 存儲

數(shù)組:從數(shù)組的定義就可以知道。數(shù)組的內(nèi)存是連續(xù)的??梢栽跅I线M(jìn)行定義也可以通過malloc或者new等在堆上進(jìn)行定義。
指針:本身是一個變量,指向其對應(yīng)的類型的變量。指向的地址也是變量的地址,然后在通過該地址獲取它指向變量的值。

2.3 大小

可以通過sizeof宏進(jìn)行獲得。

數(shù)組:數(shù)組的大小通過sizeof(數(shù)組名)/sizeof(類型名)獲取。
指針:在32位的操作系統(tǒng)中為4,在64位操作系統(tǒng)中是8。

2.4 初始化

數(shù)組的初始化方式為:

//初始化一個雙精度型數(shù)組
double balance[5] = {1.0, 2.0, 3.0, 4.0, 5.0};
//初始化一個二維數(shù)組
int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };

指針的初始化方式為:

//定義一個指向整型變量的指針
int *p=new int(0) ;
//定義一個指向數(shù)組的指針
int *p=new int[n];
//定義一個指針的指針
int **pp=new (int*)[2];?
pp[0]=new int[6];
pp[1]= new int[10];

指針數(shù)組和數(shù)組指針的定義請移步以下文章:C語言簡明知識系列十一(下):指針

3 數(shù)組和指針的傳參

C/C++的傳參方式可以分為傳值型和傳址型,傳值實際上對將參數(shù)進(jìn)行拷貝,在程序運行中對參數(shù)做的任何修改都是在拷貝后的變量產(chǎn)生的,函數(shù)退出后不會影響傳入?yún)?shù),傳址型恰恰相反,會對原有參數(shù)進(jìn)行修改。數(shù)組和指針當(dāng)做參數(shù)傳入時基本為引用方式,具體要看代碼作者是如何使用。

3.1 數(shù)組的傳參

數(shù)組傳參分為一維數(shù)組和多維數(shù)組。當(dāng)做參數(shù)傳入時會退化成指針。

一維數(shù)組:

void Fun(int a[])
{
? ? ;
}
int main()
{
? ?int testArray[]={1,2,3};
? ?Fun(testArray);
? ?return 0;
}

如上,當(dāng)然也可以將Fun函數(shù)的參數(shù)形式定義為如下形式:

void Fun(int *a)
{
? ? ;
}

二維數(shù)組:

void Fun(int (*a)[5])
{
? ? ;
}
int main()
{
? ?int testArray[2][5]={
? ? ? ?{1,2,3,4,5},
? ? ? ?{4,5,6,7,8}
? ?};
? ?Fun(testArray);
? ?return 0;
}

3.2 指針的傳參

如果函數(shù)的參數(shù)是一個指針。那么可以給函數(shù)傳遞的參數(shù)為三種,分別是:指針變量、變量的地址、一個數(shù)組名。在這里數(shù)組名實際上就是指向數(shù)組的首地址。
指針:

void Fun_p(int *p){};
int main()
{
? ?int testArray[]={1,2,3};
? ?int *pIntArray = testArray;
? ?int iValue = 10;
? ?//傳遞數(shù)組名
? ?Fun_p(testArray);
? ?//傳遞指針變量
? ?Fun_p(pIntArray);
? ?//變量地址
? ?Fun_p(&iValue);
? ?return 0;
}

指針的指針:
 

void Fun(int **p)
{
? ? ;
}

int main()
{
? ?int testArray[5]={1,2,3,4,5};
? ?int *pIntArray = testArray;
? ?int iValue = 10;
? ?int *tmpP = &iValue;
? ?//傳遞指針變量
? ?Fun(&pIntArray);
? ?//變量地址
? ?Fun(&tmpP);
? ?return 0;
}

4 總結(jié)

除了上面介紹外,指針還有函數(shù)指針,自然就會有指向函數(shù)的指針數(shù)組以及指向函數(shù)指針的指針。在實際使用時,這些類型的引入在指引我們靈活編程的同時也給我們帶來了很大的風(fēng)險,一旦出錯,排除問題和解決問題的復(fù)雜度也將增加。在進(jìn)行指針編程的時候需要謹(jǐn)慎使用。
函數(shù)和數(shù)組既有相同點,也有不各自獨特之處。細(xì)思之,一些所謂函數(shù)既指針的說法需要謹(jǐn)慎判斷。切勿人云亦云!

到此這篇關(guān)于C++數(shù)組和指針的區(qū)別與聯(lián)系的文章就介紹到這了,更多相關(guān)C++數(shù)組和指針的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言模擬實現(xiàn)簡單掃雷游戲

    C語言模擬實現(xiàn)簡單掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語言模擬實現(xiàn)簡單掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C語言編程銀行ATM存取款系統(tǒng)實現(xiàn)源碼

    C語言編程銀行ATM存取款系統(tǒng)實現(xiàn)源碼

    這篇文章主要為大家介紹了C語言編程銀行ATM存取款系統(tǒng)實現(xiàn)的源碼示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • C++調(diào)用EasyX庫實現(xiàn)嫦娥奔月小游戲

    C++調(diào)用EasyX庫實現(xiàn)嫦娥奔月小游戲

    這篇文章主要為大家詳細(xì)介紹了C++如何調(diào)用EasyX庫編寫一個簡單的嫦娥奔月小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2023-09-09
  • 史上最強C語言分支和循環(huán)教程詳解

    史上最強C語言分支和循環(huán)教程詳解

    這篇文章主要介紹了史上最強C語言分支和循環(huán)教程詳解,本文通過代碼演示給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • Qt調(diào)用MATLAB引擎混合編程的過程詳解

    Qt調(diào)用MATLAB引擎混合編程的過程詳解

    這篇文章給大家介紹了Qt調(diào)用MATLAB引擎混合編程的全過程,文中通過圖文結(jié)合的方式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • C語言實現(xiàn)簡易連連看游戲

    C語言實現(xiàn)簡易連連看游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡易連連看游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • CMake編譯中的庫文件和頭文件鏈接你了解嗎

    CMake編譯中的庫文件和頭文件鏈接你了解嗎

    這篇文章主要為大家詳細(xì)介紹了CMake編譯中的庫文件和頭文件鏈接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++采用TLS線程局部存儲的用法實例

    C++采用TLS線程局部存儲的用法實例

    這篇文章主要介紹了C++采用TLS線程局部存儲的用法實例,詳細(xì)講述了TLS索引及線程的操作,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • C語言實現(xiàn)打印數(shù)組以及打印注意事項說明

    C語言實現(xiàn)打印數(shù)組以及打印注意事項說明

    這篇文章主要介紹了C語言實現(xiàn)打印數(shù)組以及打印注意事項說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 程序員都不知道C語言中的這些小細(xì)節(jié)

    程序員都不知道C語言中的這些小細(xì)節(jié)

    本文通過7到實例題目給大家展示C語言中的一些小細(xì)節(jié),很少有朋友真正的掌握,感興趣的朋友跟隨小編一起看看吧
    2021-05-05

最新評論

都匀市| 响水县| 中超| 沭阳县| 洛宁县| 嵊州市| 双牌县| 额尔古纳市| 项城市| 朝阳县| 扎兰屯市| 黔江区| 额济纳旗| 清涧县| 酉阳| 新郑市| 定西市| 汉寿县| 琼中| 平阳县| 错那县| 彭州市| 南乐县| 宁武县| 理塘县| 唐山市| 亳州市| 社旗县| 蓬溪县| 墨脱县| 敦化市| 墨玉县| 桦甸市| 扬中市| 静海县| 旬阳县| 开原市| 万全县| 赞皇县| 潮州市| 牡丹江市|