位置:首頁(yè) > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 字符指針與字符數(shù)組的比較

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-01

雖然用字符指針變量和字符數(shù)組都能實(shí)現(xiàn)字符串的存儲(chǔ)和處理,但二者是有區(qū)別的,不能混為一談。

(1)存儲(chǔ)內(nèi)容不同。

    字符指針變量中存儲(chǔ)的是字符串的首地址,而字符數(shù)組中存儲(chǔ)的是字符串本身(數(shù)組的每個(gè)元素存放一個(gè)字符)。

(2)賦值方式不同。

    對(duì)于字符指針變量,可采用下面的賦值語句賦值:

    char *pointer; 

    pointer="I love c.";

而字符數(shù)組,既可以在定義時(shí)初始化,也可以對(duì)字符數(shù)組中的單個(gè)元素賦值,如:

    char str[20];

    str[0]="I";

但不能用賦值語句對(duì)一個(gè)字符數(shù)組整體賦值。如下面的用法是錯(cuò)誤的:

    char str[20];

    str="I" love c.";

(3)指針變量的值是可以改變的,字符指針變量也不例外。字符指針既可以指向任意字符串,也可以指向字符串中任意字符;而數(shù)組名代表數(shù)組的起始地址,是一個(gè)常量,常量是不能被改變的。

例如:

char s[80]s="Hello";

char *p=s;       /*指針p指向宇符串首地址*/

p-s+3;        /*指針p指向字符串中第3個(gè)字符開始的字符串*/

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部