c語(yǔ)言const函數(shù)保存在哪里 c語(yǔ)言write函數(shù)參數(shù)?
c語(yǔ)言write函數(shù)參數(shù)?c語(yǔ)言write函數(shù)有兩種用法。一種是:ssize_twrite(inthandle,void*buf,intnbyte)handle是文件描述符;buf是指定的緩沖區(qū),即指
c語(yǔ)言write函數(shù)參數(shù)?
c語(yǔ)言write函數(shù)有兩種用法。
一種是:
ssize_twrite(inthandle,void*buf,intnbyte)
handle是文件描述符;
buf是指定的緩沖區(qū),即指針,對(duì)準(zhǔn)一段內(nèi)存單元;
nbyte是要讀取文件委托的字節(jié)數(shù);返回值:寫(xiě)入到文檔的字節(jié)數(shù)(完成);-1(出錯(cuò))
write函數(shù)把buf中nbyte讀取文件描述符handle所指的文檔,完成時(shí)直接返回寫(xiě)的字節(jié)數(shù),錯(cuò)誤時(shí)前往-1.
另外一種是:
write(constchar*str,intn)
str是字符指針或字符數(shù)組,用處貯放一個(gè)字符串。n是int型數(shù),它用來(lái)它表示輸出來(lái)會(huì)顯示字符串中字符的個(gè)數(shù)。
write(#34string#34,strlen(#34string#34)表示輸出低字符串常量。
c語(yǔ)言中怎么存一個(gè)字符串?
在c語(yǔ)言中存儲(chǔ)一個(gè)字符串,象有兩種方法,一種是字符指針,一種是使用字符數(shù)組。.例如:
1
2
constchar*str
c const是什么?
const是C中的類(lèi)型修飾符。
const的作用是:
1、對(duì)變量后續(xù)聲明可讀寫(xiě)特性,保衛(wèi)變量值以防被可以修改。
2、節(jié)省空間,避免不必要的內(nèi)存分配。const修飾的變量在程序運(yùn)行過(guò)程中只有一一份u盤(pán)拷貝。
3、提高程序運(yùn)行效率。編譯器不為特殊const常量分配存儲(chǔ)空間,只不過(guò)是將他們需要保存在符號(hào)表中,這使得它下一界一個(gè)程序編譯期間的常量,沒(méi)有了存儲(chǔ)和無(wú)法讀取內(nèi)存的操作。
c語(yǔ)言中幾種情況產(chǎn)生const?
一、可以修飾局部變量
constintnum5
intconstnum5
這兩種寫(xiě)法是一般的,全是來(lái)表示變量num的值沒(méi)法被改變,用const可以修飾變量時(shí),要先初始化操作,不然的話(huà)之后就又不能再參與變量定義了(后面會(huì)講過(guò)一種特殊情況)。
二、可以修飾全局變量
全局變量的作用域是整個(gè)文件,且全局變量的生存周期為程序運(yùn)行的整個(gè)過(guò)程,因?yàn)槲覀儜?yīng)該是盡量避免在用全局變量,若是某個(gè)函數(shù)決定了全局變量的值,會(huì)影響到其他引用這個(gè)變量的函數(shù),是一個(gè)很十分隱蔽的操作。
三、可以修飾常量指針與指針常量
1.常量指針
常量指針是指針指向的內(nèi)容是常量,可以有以上兩種定義。
constint*num
intconst*num
以下兩點(diǎn)必須注意一點(diǎn):
常量指針說(shuō)的是不能不能是從這個(gè)指針決定變量的值,但也可以通過(guò)其他的引用來(lái)變動(dòng)變量的值。
intcnt5
constint*numampcnt
cnt6
常量指針正指向的值不能轉(zhuǎn)變,但這的確意味著指針本身不能不能變動(dòng),常量指針是可以正指向其他的地址。
intcnt5
inttmp6
constint*numampcnt
numamptmp
2.指針常量
指針常量是指指針本身是個(gè)常量,沒(méi)法再對(duì)準(zhǔn)其他的地址,寫(xiě)法不勝感激:
int*constnum
需要注意的是,指針常量對(duì)準(zhǔn)的地址不能變動(dòng),只不過(guò)地址中能保存的數(shù)值是也可以決定的,這個(gè)可以按照其他正指向改地址的指針來(lái)修改。
intcnt5
int*tmpampcnt
int*constnumampcnt
*tmp6
怎么區(qū)分常量指針和指針常量的關(guān)鍵就取決于人星號(hào)的位置,我們以星號(hào)為分界線(xiàn)。
如果不是const在星號(hào)的左邊,則為常量指針;如果不是const在星號(hào)的右邊則為指針常量。
如果我們將星號(hào)讀作‘指針',將const讀作‘常量'的話(huà),內(nèi)容恰好條件符合。
intconst*num;是常量指針,
int*constnum;是指針常量。
3.打向常量的常指針
還有一個(gè)一種情況是正指向常量的常指針,這超過(guò)是常量指針與指針常量的結(jié)合,指針朝的位置沒(méi)法改變因此也又不能實(shí)際這個(gè)指針轉(zhuǎn)變變量的值,的或
constint*constnum
這個(gè)代表num所正指向的對(duì)象的值包括它的地址本身都肯定不能被改變。
四、修飾修飾函數(shù)的形參
參照常量指針與指針常量,const修飾函數(shù)的參數(shù)都是兩類(lèi)三種情況
1.避兔改指針朝的內(nèi)容
voidenjoy(char*destin,constchar*source)
其中source是鍵入?yún)?shù),destin是輸出參數(shù)。給source再加const可以修飾后,如果沒(méi)有函數(shù)體內(nèi)的語(yǔ)句企圖修改后source的內(nèi)容,編譯器將報(bào)錯(cuò),但反過(guò)來(lái)是也可以的,編譯器愿意將char*類(lèi)型的數(shù)據(jù)賦值給constchar*類(lèi)型的變量。
2.能夠防止可以修改指針正指向的地址
voidenjoy(int*constp1,int*constp2)
指針p1和指針p2對(duì)準(zhǔn)的地址都沒(méi)法直接修改。
3.以上兩種的生克制化。
五、修飾函數(shù)的返回值
假如給與“指針傳遞”的函數(shù)返回值加const可以修飾,這樣的話(huà)函數(shù)的定義返回值(即指針)的內(nèi)容沒(méi)法被修改,該返回值沒(méi)有辦法被賦給加const修飾的同類(lèi)型指針。