字元指標變數

2021-07-10 18:52:54 字數 1566 閱讀 7897

字元指標變數的注意問題:

指標就是位址。指標變數就是儲存位址的變數。

1.關於對字元指標的賦值相關問題。

char *p;

p = 「hello world」;

是錯誤的,因為此時 p 並沒有初始化,即沒有乙個位址,此時對p = 「hello world」 的賦值,即相當於將」hello world」放在了 乙個未知的位址,(這個位址也許是已經被占用的位址,就會覆蓋了該位址的原內容。在我們定義乙個字元陣列時候 char str =」hello world」 系統會為我們自動分配乙個空閒的位址空間。)。

但是可以直接使用 char *p = 「hello world」。

也可以char str = 「hello world」;

char *p;

p = str;

2.對字串的複製的時候,為了保險最後應該複製進去結束符 『\0』 。

3.對於字元陣列名 和 指標的關係:

char str = 「hello world」;

char *p;

p = str;

字元陣列名是不可變的,而指標是可以改變的。即 str 永遠是指向該字串的首位址,不能重新賦值,比如自增自減運算都是沒辦法執行的。而指標則可以進行相關算數運算,而指向字串的其他位置,可以自增自減。

以後再慢慢改進。

//將字串a複製為字串b 

#include

void copy_string(char *from,char *to);

int main()

// strb[ia]='\0'; //為什麼最後還要把\0加上去呢?----->因為

// printf("the string is : %s\n",strb);

printf("-------two---------\n");

copy_string(stra,strb);

printf("the string is : %s\n",strb);

printf("-------改變指標變數的值---------\n");

char *a_po=stra;

a_po=a_po+3;

printf("% s\n",a_po);

printf("-------字元陣列的個元素的值是可以改變的 可以對他們再賦值---------\n");

stra[5]='\0';

printf("% s\n",stra);

printf("-------字元指標變數指向的字串中的內容是不可以改變的再賦值 符串常量---------\n");

a_po[3]='\0';

printf("% s\n",a_po);

}void copy_string(char *from,char *to)

*to='\0';

*//*簡化

while((*to++=*from++)!='\0')

*to='\0';

*/while(*from)

*to='\0';

}

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

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

字元指標變數和字元陣列的對比

使用字元陣列和指標變數都能實現字串的儲存和運算,但它們兩者之間是有區別的,不應混為一談,主要有一下幾點 1 字元陣列由若干個元素組成,每個元素中放乙個字元,而字元指標變數中存放的是位址 字串中第乙個字元的位址 絕不是將字串放到字元指標變數中。2 賦值方式。可以對字元指標變數賦值,但不能對陣列名賦值。...

字元指標變數和字元陣列的討論

經常會弄錯字元指標變數和字元陣列的使用方式 寫在這裡方便查閱 1 內容不同 字元陣列由若干個元素組成,每個元素放乙個字元。而字元指標變數中存放的是位址 字串第乙個字元的位址 決不是將字串放到字元指標變數中。2 賦值方式 對字元陣列只能對各個元素賦值,不能用以下方法 char str 14 str i...