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

2021-07-04 13:42:46 字數 812 閱讀 2136

使用字串指標變數與字元陣列的區別

(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=str+5; //錯誤

pc=str+5; //正確

小結 字元陣列s[100] 指標變數pc

字串陣列與字串指標的區別

字元指標變數和字元陣列的區別 簡單說一下 字串陣列是用來存放字串的陣列,在記憶體中佔一段連續的單元。所佔記憶體存放的是字串。定義方法為 char a n n為常量表示式,可初始化。字元指標是指向字元的指標,所佔記憶體單元存放的是所指字元的記憶體單元。定義方法為 char p 完整的解答 1 字元陣列...

字串指標與字元陣列的區別

用字元陣列和字元指標變數都可實現字串的儲存和運算。但是兩者是有區別的。在使用時應注意以下幾個問題 字串指標變數本身是乙個變數,用於存放字串的首位址。而字串本身是存放在以該首位址為首的一塊連續的記憶體空間中並以 0 作為串的結束。字元陣列是由於若干個陣列元素組成的,它可用來存放整個字串。對字串指標方式...

指標與陣列 字元指標,字串和字元陣列的區別

指標和陣列是不相等的,把乙個陣列名作為乙個引數傳遞給函式時陣列名就是指向第乙個元素的指標,在大多數表示式中 陣列名的值是指向第乙個元素的指標 有兩個例外,乙個是sizeof返回的是整個陣列 的位元組數,乙個是 操作符返回 的是乙個指向陣列的指標 但不代表 兩者等價。int a 3 int b 宣告乙...