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

C語言 字符指針的定義與初始化

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

指向字符串的指針稱為字符指針,其定義形式為:

    char *指針名

在定義字符指針的同時(shí)為其賦值稱為字符指針的初始化,如:

void main()

{

char *p="Hello"; 

printf("%s",p);

}

定義一個(gè)字符指針p,并使指針p得到字符串常量“Hello” 的首地址,即指針p指向字符串

“Hello”的第一個(gè)字符。當(dāng)指針指向字符串后,可將指針作為字符數(shù)組名使用。

當(dāng)程序中已經(jīng)使用一個(gè)字符指針指向一個(gè)字符串常量后,例如:

    char *p="Hello";

可以使用printf()函數(shù)輸出該字符串。

    printf("%s",p);

但不能使用scanfo輸入字符串,如下形式即是錯(cuò)誤的:

    scanf("%s",p);

    因?yàn)橹羔榩中指向的是一個(gè)字符串常量“Hello”,字符串常量的值是不能改變的,而scanf("%s",p);試圖從鍵盤輸入一個(gè)新的字符串,并將該字符串存放在字符指針p所指向的字符串常量地址之中。

    但如果字符指針p指向的是一個(gè)字符數(shù)組,例如:

    char s[80];

    char *p=s;

這時(shí)可以利用指針p使用gets()函數(shù)或scanf()函數(shù)對(duì)字符數(shù)組輸入內(nèi)容,如:

    gets(p);

    scanf("%s",p)


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

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