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

C語言 指針與數(shù)組的詳解及區(qū)別

 更新時(shí)間:2017年03月19日 08:40:15   作者:cm_cyj_1116  
這篇文章主要介紹了C語言 指針與數(shù)組的詳解及對比的相關(guān)資料,需要的朋友可以參考下

C語言 指針與數(shù)組的詳解及對比

通俗理解數(shù)組指針和指針數(shù)組

數(shù)組指針:

eg:int( *arr)[10];

數(shù)組指針通俗理解就是這個(gè)數(shù)組作為指針,指向某一個(gè)變量。

指針數(shù)組:

eg:int*arr[10];

指針數(shù)組簡言之就是存放指針的數(shù)組;

——數(shù)組并非指針&&指針并非數(shù)組

(1)定義一個(gè)外部變量:

eg:int value=10; int *p=&value;

        舉例:當(dāng)需要在一個(gè)函數(shù)中用這個(gè)變量時(shí):externa int*p;而非extern int p[];

        分析:當(dāng)用:extern int p[];這樣的形式時(shí),其實(shí)是:由于在定義這個(gè)變量的時(shí)候,是作為一個(gè)指針而定義的,則p指向的是 value的地址,當(dāng)p當(dāng)做一個(gè)數(shù)組被引入是,它其實(shí)存放的是value的地址,而并非指向value,導(dǎo)致調(diào)用出現(xiàn)錯(cuò)誤。

(2)定義一個(gè)外部變量:

eg:int arr[10]={0};

        舉例:當(dāng)需要在函數(shù)中引入這個(gè)外部變量時(shí):extern int arr[10];而非extern int *arr;

        分析:當(dāng)用extern int *arr;這樣的方式進(jìn)行引入是,實(shí)際上這樣是不對的,在定義這個(gè)變量的時(shí)候是作為一個(gè)整形數(shù)組來定義的,但是在聲明的時(shí)候是用指針來聲明的,通過數(shù)組聲明可以訪問到整個(gè)數(shù)組,但是通過指針實(shí)際上聲明的指針并非指向數(shù)組,而是指向arr[10]數(shù)組中首元素arr[0]地址的指針,導(dǎo)致訪問出現(xiàn)問題。

——二維數(shù)組與指針的關(guān)系

       定義一個(gè)二維數(shù)組arr[3][3],由于二維數(shù)組在內(nèi)存中也是按照順序存儲,而并非我們所認(rèn)為的按照矩陣形式存儲的。所以,arr[3]其實(shí)就相當(dāng)與一個(gè)數(shù)組指針;指向arr[0][0],arr[1][0],arr[2][0].

____數(shù)組與指針的其他區(qū)別

(1) 指針保存的是數(shù)據(jù)的地址;

          數(shù)組是用來保存數(shù)據(jù)的。

(2)指針訪問數(shù)據(jù)是通過數(shù)據(jù)的地址進(jìn)行解引用,間接訪問的;

         數(shù)組訪問數(shù)據(jù)是直接的。

(3)指針通常用于動態(tài)數(shù)據(jù)結(jié)構(gòu);

         數(shù)組用于存放固定數(shù)目而且類型相同的數(shù)據(jù)。

(4)指針通常指向匿名數(shù)據(jù);

         數(shù)組通常存放已知的。

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • c++ 構(gòu)造函數(shù)中調(diào)用虛函數(shù)的實(shí)現(xiàn)方法

    c++ 構(gòu)造函數(shù)中調(diào)用虛函數(shù)的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猚++ 構(gòu)造函數(shù)中調(diào)用虛函數(shù)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • c文件匯編后函數(shù)參數(shù)傳遞的不同之處

    c文件匯編后函數(shù)參數(shù)傳遞的不同之處

    在w7 32位系統(tǒng)下把c文件匯編后,確實(shí)與mac后的差異很大??刹粌H僅是寄存器eax與rax的區(qū)別。我想說的是函數(shù)參數(shù)傳遞的不同
    2013-11-11
  • 淺談C++ IO流

    淺談C++ IO流

    這篇文章主要介紹了C++ IO流的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-08-08
  • c語言通過opencv實(shí)現(xiàn)輪廓處理與切割

    c語言通過opencv實(shí)現(xiàn)輪廓處理與切割

    這篇文章主要介紹了c語言通過opencv實(shí)現(xiàn)輪廓處理與切割,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • C語言實(shí)例之雙向鏈表增刪改查

    C語言實(shí)例之雙向鏈表增刪改查

    雙向鏈表(Doubly Linked List)是一種常見的數(shù)據(jù)結(jié)構(gòu),在單鏈表的基礎(chǔ)上增加了向前遍歷的功能,與單向鏈表不同,雙向鏈表的每個(gè)節(jié)點(diǎn)除了包含指向下一個(gè)節(jié)點(diǎn)的指針外,還包含指向前一個(gè)節(jié)點(diǎn)的指針,本文給大家介紹了C語言中雙向鏈表的增刪改查
    2023-08-08
  • C語言長字符串的換行方法詳解

    C語言長字符串的換行方法詳解

    在編寫C程序時(shí),如果想要打印某個(gè)字符串,而字符串的內(nèi)容比較多,這就涉及到對這個(gè)長字符串進(jìn)行書寫換行,本片文章就帶你了解一下
    2021-09-09
  • 嵌入式C語言二級指針在鏈表中的應(yīng)用

    嵌入式C語言二級指針在鏈表中的應(yīng)用

    這篇文章主要為大家介紹了嵌入式C語言二級指針在鏈表中的應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • 基于Matlab制作一款簡單的龍舟小游戲

    基于Matlab制作一款簡單的龍舟小游戲

    這篇文章主要為大家介紹如何利用Matlab制作一款簡單的龍舟小游戲,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-03-03
  • C語言 深入探究動態(tài)規(guī)劃之區(qū)間DP

    C語言 深入探究動態(tài)規(guī)劃之區(qū)間DP

    這幾天在做有關(guān)dp的題,看到一個(gè)石子合并的問題,本來以為是個(gè)貪心,后來仔細(xì)一想壓根不是貪心。貪心算法的思路是每次都取最大的,然而石子合并問題有個(gè)限制條件就是每次只能取相鄰的,這就決定了它不是個(gè)貪心
    2022-04-04
  • c++中do{...}while(0)的意義和用法

    c++中do{...}while(0)的意義和用法

    這篇文章主要介紹了c++中do{...}while(0)的意義和用法,需要的朋友可以參考下
    2015-01-01

最新評論