C語言 字符指針與字符數(shù)組的比較
雖然用字符指針變量和字符數(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è)字符開始的字符串*/
點(diǎn)擊加載更多評(píng)論>>