- 相關(guān)推薦
計(jì)算機(jī)二級(jí)C語言字符串的指針以及指向字符串的指針變量
1.用指針方法實(shí)現(xiàn)一個(gè)字符串的存儲(chǔ)和運(yùn)算
如:
char * strp=″china″;
此處定義了一個(gè)字符指針變量strp,變量中存放的是字符串第一個(gè)字符的地址。
C語言對(duì)字符串常量是按字符數(shù)組處理的,它實(shí)際上在內(nèi)存開辟了一個(gè)字符數(shù)組用來存放字符串變量,并把字符串首地址賦給字符指針變量strp。
在輸出時(shí)用
printf(″%s\n″,strp);
通過字符數(shù)組名或字符指針變量可以輸出一個(gè)字符串。而對(duì)一個(gè)數(shù)值型數(shù)組,是不能企圖用數(shù)組名輸出它的全部元素的。
2.字符指針變量與字符數(shù)組
雖然用字符數(shù)組和字符指針變量都能實(shí)現(xiàn)字符串的存儲(chǔ)和運(yùn)算,但它們二者之間是有區(qū)別的,不應(yīng)混為一談,主要有以下幾點(diǎn):
(1)字符數(shù)組由若干個(gè)元素組成,每個(gè)元素中放一個(gè)字符,而字符指針變量中存放的是地址(字符串的首地址),決不是將字符串放到字符指針變量中。
(2)對(duì)字符數(shù)組只能對(duì)各個(gè)元素賦值,不能用以下辦法對(duì)字符數(shù)組賦值。
Char str[14];
str=″I love China!″;
而對(duì)字符指針變量,可以采用下面方法賦值:
char *a;
a=″I love China!″;
但注意賦給a的不是字符,而是字符串的首地址。
(3)賦初值時(shí),對(duì)以下的變量定義和賦初值:
char *a=″I love China!″;
等價(jià)于:
char *a;
a=″I love China!″;
而對(duì)數(shù)組初始化時(shí):
static char str[14]={″I love China!″};
不能等價(jià)于
char str[14];
str[]={″I love China!″};
即數(shù)組可以在變量定義時(shí)整體賦初值,但不能在賦值語句中整體賦值。
(4)在定義一個(gè)數(shù)組時(shí),在編譯時(shí)即已分配內(nèi)存單元,有確定的地址。而定義一個(gè)字符指針變量時(shí),給指針變量分配內(nèi)存單元,在其中可以放一個(gè)地址值,就是說,該指針變量可以指向一個(gè)字符型數(shù)據(jù),但如果未對(duì)它賦予一個(gè)地址值,這時(shí)該指針變量并未具體指向哪一個(gè)字符數(shù)據(jù)。
(5)指針變量的值是可以改變的。
3.字符串處理函數(shù)
C語言中沒有對(duì)字符串進(jìn)行合并、比較和賦值的運(yùn)算符,但幾乎所有版本的C語言中都提供了有關(guān)的庫函數(shù)。例如:
(1)strcat函數(shù):連接兩個(gè)字符數(shù)組中的字符串
(2)strcpy函數(shù):字符拷貝函數(shù)
(3)strcmp函數(shù):字符比較函數(shù)
(4)strlen函數(shù):測試字符串長度的函數(shù)
(5)strlwr函數(shù):將字符串中大寫字母轉(zhuǎn)換成小寫字母
(6)strupr函數(shù):將字符中小寫字母轉(zhuǎn)換成大寫字母
【計(jì)算機(jī)二級(jí)C語言字符串的指針以及指向字符串的指針變量】相關(guān)文章:
c語言使用字符串指針變量與的區(qū)別05-05
C語言入門知識(shí)之字符串與指針07-23
C語言指針變量的類型07-31
C語言指針變量的運(yùn)算05-05
C語言函數(shù)指針變量06-04
c語言指針中的二級(jí)指針示例詳解03-02
C語言的指針12-21
c語言數(shù)組指針變量的說明和使用07-26
C語言指針教學(xué)02-10