字元型指標變數與字元陣列的區別

2021-06-19 10:48:38 字數 917 閱讀 9181

(1)分配記憶體

設有定義字元型指標變數與字元陣列的語句如下:

char *pc ,str[100];

則系統將為字元陣列str分配100個位元組的記憶體單元,用於存放100個字元。而系統只為指標變數pc分配4個儲存單元,用於存放乙個記憶體單元的位址。

(2)初始化賦值含義

字元陣列與字元指標變數的初始化賦值形式相同,但其含義不同。例如:

char str[ ] ="i am a student ! " ,s[200];

char *pc="you are a student ! " ;

對於字元陣列,是將字串放到為陣列分配的儲存空間去,而對於字元型指標變數,是先將字串存放到記憶體,然後將存放字串的記憶體起始位址送到指標變數pc中。

(3)賦值方式

字元陣列只能對其元素逐個賦值,而不能將字串賦給字元陣列名。對於字元指標變數,字串位址可直接賦給字元指標變數。例如:

str="i love china! "; //字元陣列名str不能直接賦值,該語句是錯誤的。

pc="i love china! "; //指標變數pc可以直接賦字串位址,語句正確 

(4)輸入方式

可以將字串直接輸入字元陣列,而不能將字串直接輸入指標變數。但可將指標變數所指字串直接輸出。

例如: cin >> str //正確

cin >> pc //錯誤

cout乙個是變數、乙個是陣列,其實也是乙個變數符號(這個str本身不能改變而已),從這個共同點出發考慮問題,變數的事情,無非就是「儲存」、「操作(operate)」兩個方面,下面的任務就是詳細地思考了:

1,空間上的差異:兩種型別是如何儲存的。

2,操作上的差異:如何取用(輸入輸出,賦給別的元素)、如何對賦值、如何改變它們

盡可能地詳盡上面兩方面的內容,回憶平時程式設計的例子,最後就能寫出答案。

字元型指標變數與字元陣列的區別

1 分配記憶體 設有定義字元型指標變數與字元陣列的語句如下 char pc str 100 則系統將為字元陣列str分配100個位元組的記憶體單元,用於存放100個字元。而系統只為指標變數pc分配4個儲存單元,用於存放乙個記憶體單元的位址。2 初始化賦值含義 字元陣列與字元指標變數的初始化賦值形式相...

字元型指標變數與字元陣列的區別

字元型指標變數與字元陣列的區別 1 分配記憶體 假設有字元型指標變數與字元陣列如下 char p s 10 編譯器為字元陣列s分配 10個位元組記憶體,用於存放 10個字元。而編譯器只為指標變數p分配 4個位元組記憶體。2 初始化賦值含義 字元陣列與字元指標的初始化賦值形式相同,但其含義不同。例如 ...

字元陣列與字元型指標變數

int p 5 由於 的優先順序高。所以p先與 5 結合,p是長度為5的指標陣列,每個元素都為指向指標變數的指標。字元型指標就是儲存字元型資料記憶體單元的位址。字元陣列,是將字串放到為陣列分配的儲存空間去 字元型指標變數,是將字串存放到記憶體,然後將字串的記憶體起始位址送到指標變數中 字元陣列與指標...