C語言 字符指針的定義與初始化
指向字符串的指針稱為字符指針,其定義形式為:
char *指針名
在定義字符指針的同時為其賦值稱為字符指針的初始化,如:
void main()
{
char *p="Hello";
printf("%s",p);
}
定義一個字符指針p,并使指針p得到字符串常量“Hello” 的首地址,即指針p指向字符串
“Hello”的第一個字符。當(dāng)指針指向字符串后,可將指針作為字符數(shù)組名使用。
當(dāng)程序中已經(jīng)使用一個字符指針指向一個字符串常量后,例如:
char *p="Hello";
可以使用printf()函數(shù)輸出該字符串。
printf("%s",p);
但不能使用scanfo輸入字符串,如下形式即是錯誤的:
scanf("%s",p);
因為指針p中指向的是一個字符串常量“Hello”,字符串常量的值是不能改變的,而scanf("%s",p);試圖從鍵盤輸入一個新的字符串,并將該字符串存放在字符指針p所指向的字符串常量地址之中。
但如果字符指針p指向的是一個字符數(shù)組,例如:
char s[80];
char *p=s;
這時可以利用指針p使用gets()函數(shù)或scanf()函數(shù)對字符數(shù)組輸入內(nèi)容,如:
gets(p);
或
scanf("%s",p)
點擊加載更多評論>>