陣列和指標並不同 總結《C專家程式設計chap4》

2021-09-01 19:59:47 字數 1014 閱讀 6253

左值(位址)和右值(位址的內容):

1. 使用陣列_直接引用:因為符號表中,符號a對應的值就是a陣列的首位址。

2. 使用指標_間接引用:因為符號表中,符號p的值是「位址」,需要從記憶體中取得對應的「位址的內容」,然後才能像「訪問陣列元素」那樣進行元素的訪問。

混合兩種方式:

**示例:

#include using namespace std;

int main();

char *p3=a1;

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

//3. 指標和陣列的分配空間

//(1)定義指標時,為指標分配了空間,不為指向的內容分配空間

//特例:若指標指向"唯讀字串",編譯器"指標"和"指向的內容"分配空間

char *p4="breadfruit";

//*(p4+1)='4'; 唯讀

cout<

//否則,編譯錯誤

//float *p5=3.141;

//(2)陣列則是分配空間的,指向的字串是"讀寫"的

char a="gooseberry";

a[1]='4';

cout<

return 0;

}

指標和陣列 C專家程式設計筆記

對於編譯器而言,乙個陣列就是乙個位址,乙個指標就是乙個位址的位址。什麼時候陣列和指標是相同的 1 表示式中的陣列名 與宣告不同 被編譯器當作乙個指向該陣列第乙個元素的指標 在表示式中,指標和陣列是可以互換的,因為它們在編譯器裡的最終形式都是指標,並且都可以去下標操作.例對陣列的引用如a i 在編譯時...

C專家程式設計 第四章 陣列和指標並不相同

1 宣告和定義 宣告相當於普通的宣告 它所說明的並非自身,而是描述其他地方的建立的物件。定義相當於特殊的宣告 它為物件分配記憶體。例如 定義 int my array 100 宣告 extern int my array 指代其他地方定義的物件。二維陣列需要提供除最左邊一維之外的其他維的長度 2 x...

C專家程式設計 十一 陣列和指標可交換性的總結

1.用a i 這樣的形式對陣列進行訪問總是被編譯器 改寫 或解釋為像 a l 這樣的指 針訪問。2.指標始終就是指標。它絕不可以改寫成陣列。你可以用下標形式訪問指標,一般都是 指標作為函式引數時,而且你知道實際傳遞給函式的是乙個陣列。3.在特定的上下文中,也就是它作為函式的引數 也只有這種情況 乙個...