您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!
用來(lái)存放字符的數(shù)組稱(chēng)為字符數(shù)組,例如:
字符數(shù)組實(shí)際上是一系列字符的集合,也就是字符串(String)。在C語(yǔ)言中,沒(méi)有專(zhuān)門(mén)的字符串變量,沒(méi)有string類(lèi)型,通常就用一個(gè)字符數(shù)組來(lái)存放一個(gè)字符串。
C語(yǔ)言規(guī)定,可以將字符串直接賦值給字符數(shù)組,例如:
數(shù)組第0個(gè)元素為 'c',第1個(gè)元素為 '.',第2個(gè)元素為 'b',后面的元素以此類(lèi)推。也可以不指定數(shù)組長(zhǎng)度,例如:
在C語(yǔ)言中,字符串總是以'\0'
作為串的結(jié)束符。上面的兩個(gè)字符串,編譯器已經(jīng)在末尾自動(dòng)添加了'\0'
。
'\0'
是ASCII碼表中的第0個(gè)字符,用NUL
表示,稱(chēng)為空字符。該字符既不能顯示,也不是控制字符,輸出該字符不會(huì)有任何效果,它在C語(yǔ)言中僅作為字符串的結(jié)束標(biāo)志。
puts 和 printf 在輸出字符串時(shí)會(huì)逐個(gè)掃描字符,直到遇見(jiàn) '\0' 才結(jié)束輸出。請(qǐng)看下面的例子:
運(yùn)行結(jié)果:
str1: http://c.biancheng.net
str2: C Language
str3: You are a good
str1 和 str2 很好理解,編譯器會(huì)在字符串最后自動(dòng)添加 '\0',并且數(shù)組足夠大,所以會(huì)輸出整個(gè)字符串。對(duì)于 str3,由于字符串中間存在 '\0',printf() 掃描到這里就認(rèn)為字符串結(jié)束了,所以不會(huì)輸出后面的內(nèi)容。
需要注意的是,用字符串給字符數(shù)組賦值時(shí)由于要添加結(jié)束符 '\0',數(shù)組的長(zhǎng)度要比字符串的長(zhǎng)度(字符串長(zhǎng)度不包括 '\0')大1。例如:
char str[] = "C program";
該數(shù)組在內(nèi)存中的實(shí)際存放情況為:
字符串長(zhǎng)度為 9,數(shù)組長(zhǎng)度為 10。
掃碼關(guān)注我們
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08