指標與陣列的撲朔迷離,你知道嗎?

2021-07-11 11:50:23 字數 1037 閱讀 8179

——通俗理解陣列指標和指標陣列

陣列指標:

eg:int( *arr)[10];

陣列指標通俗理解就是這個陣列作為指標,指向某乙個變數。

指標陣列:

eg:int*arr[10];

指標陣列簡言之就是存放指標的陣列;

——陣列並非指標&&指標並非陣列

(1)定義乙個外部變數:eg:int value=10; int  *p=&value;

舉例:當需要在乙個函式中用這個變數時:externa int*p;而非extern int p;

分析:當用:extern int p;這樣的形式時,其實是:由於在定義這個變數的時候,是作為乙個指標而定義的,則p指向的是 value的位址,當p當做乙個陣列被引入是,它其實存放的是value的位址,而並非指向value,導致呼叫出現錯誤。

(2)定義乙個外部變數:eg:int arr[10]=;

舉例:當需要在函式中引入這個外部變數時:extern int arr[10];而非extern int *arr;

分析:當用extern int *arr;這樣的方式進行引入是,實際上這樣是不對的,在定義這個變數的時候是作為乙個整形陣列來定義的,但是在宣告的時候是用指標來宣告的,通過陣列宣告可以訪問到整個陣列,但是通過指標實際上宣告的指標並非指向陣列,而是指向arr[10]陣列中首元素arr[0]位址的指標,導致訪問出現問題。

——二維陣列與指標的關係

定義乙個二維陣列arr[3][3],由於二維陣列在記憶體中也是按照順序儲存,而並非我們所認為的按照矩陣形式儲存的。所以,arr[3]其實就相當與乙個陣列指標;指向arr[0][0],arr[1][0],arr[2][0].

____陣列與指標的其他區別

(1) 指標儲存的是資料的位址;

陣列是用來儲存資料的。

(2)指標訪問資料是通過資料的位址進行解引用,間接訪問的;

陣列訪問資料是直接的。

(3)指標通常用於動態資料結構;

陣列用於存放固定數目而且型別相同的資料。

(4)指標通常指向匿名資料;

陣列通常存放已知的。

C語言中const和指標的秘密你知道嗎

目錄 將乙個型別為 char 的值賦值給乙個 const char 型別的物件是否合法呢?先說結果,在vs的環境下,編譯器不會報錯也不會有任何程式設計客棧警告。但在linux環境下用gcc編譯就會出現下面的警告 warning assignment from incompatible pointer...

熱流道的優點與缺點,你都知道嗎?

熱流道的優點與缺點,你都知道嗎?優點 1 縮短週期 製件成型週期縮短,因沒有澆道系統冷卻時間的限制,製件成型固化後便可及時頂出。許多用熱流道模具生產的薄壁零件成型週期可在5秒鐘以下。2 節省塑料 在純熱流道模具中因沒有冷澆道,所以無生產費料。這對於塑料 貴的應用專案意義尤其重大。事實上,國際上主要的...

RPA與ERP之間的那些事兒,你都知道嗎?

erp enterprise resource planning 概念性的定義我們不去過多解釋,從大家的普遍認知來看,都會認為erp是乙個企業必不可少的系統,能幫助企業改善業務流程,提高企業的核心競爭力。rpa robotic process automation 而rpa即機器 程自動化,在大多數...