向字符數(shù)組c中輸入字符串,它是這樣存儲(chǔ)的:
成都創(chuàng)新互聯(lián)IDC提供業(yè)務(wù):雙線服務(wù)器托管,成都服務(wù)器租用,雙線服務(wù)器托管,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。
將字符串中的第一個(gè)字符賦給字符數(shù)組的第一個(gè)元素c[0],第二個(gè)字符賦給第二個(gè)元素c[1],以此類推。
需要注意的是,當(dāng)給c[9]賦過(guò)值之后,如果在字符串中還有剩余的字符,程序會(huì)繼續(xù)命令指針從c[9]處繼續(xù)向后移動(dòng)一個(gè)存儲(chǔ)單元的長(zhǎng)度(在這里就是一個(gè)字節(jié)的長(zhǎng)度),并在讀入一個(gè)字符并賦給緊挨著c[9]的那個(gè)存儲(chǔ)單元,形象一點(diǎn)兒,把它叫做c[10],以此類推,直到讀完所輸入的字符串中的所有字符,并自動(dòng)加賦'\0'。
這種輸入方式一般也能運(yùn)行,但是這是十分危險(xiǎn)的。因?yàn)榫o挨在c[9]后面的單元中的內(nèi)容是不可預(yù)料的,它可能是一個(gè)空白的存儲(chǔ)空間,也可能已經(jīng)存放了一個(gè)十分有用的數(shù)據(jù)。如果存儲(chǔ)的是一個(gè)有用的數(shù)據(jù),越界輸入就會(huì)把越界部分原先已有的數(shù)據(jù)覆蓋掉。
在程序比較小的時(shí)候,由于空白地帶比較多,程序往往可以正常運(yùn)行,但是當(dāng)程序的規(guī)模很大的時(shí)候,一旦越界輸入,(越界部分)有用數(shù)據(jù)被覆蓋掉的可能性就很大了。
最好的方法就是使用scanf("%10s", c); 以限制向字符數(shù)組中輸入字符的個(gè)數(shù)。
你輸入的\0被認(rèn)為是2個(gè)字符。
'\\'和'0',不是'\0'
至于輸入abcdefghij時(shí)出問(wèn)題,那是數(shù)組邊界問(wèn)題。
用字符數(shù)組保存字符串時(shí),要預(yù)留一個(gè)數(shù)組成員,用來(lái)保存結(jié)尾符號(hào)'\0'。
所以char[10]只能保存長(zhǎng)度為9的字符串。
printf輸出字符串的時(shí)候,只有遇到'\0'才會(huì)停止輸出。
'\0'的值就是0.它會(huì)一直輸出直到在后面連續(xù)的內(nèi)存里遇到'\0'
一維數(shù)組的元素作為函數(shù)實(shí)參,與同類型的簡(jiǎn)單變量作為實(shí)參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實(shí)參
數(shù)組名代表著整個(gè)數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實(shí)參,傳遞的是整個(gè)數(shù)組,即形參數(shù)組和實(shí)參數(shù)組完全相同,是存放在同一存儲(chǔ)空間的同一個(gè)數(shù)組。這樣形參數(shù)組
修改時(shí),實(shí)參數(shù)組也同時(shí)被修改了。形參數(shù)組的元素個(gè)數(shù)可以省略。
#includestdio.h
//數(shù)組作為函數(shù)參數(shù),可以省略元素個(gè)數(shù)
//數(shù)組作為函數(shù)參數(shù),傳遞是整個(gè)數(shù)組的地址,修改了函數(shù)形參數(shù)組元素的值,會(huì)影響到外面的實(shí)參數(shù)組
void change(int array[])
{
printf("array ==%p\n",array);
array[0] = 100;
}
int main()
{
int ages[6] = {10,11,13,15,11,18};
printf("array ==%p\n",ages);
change(ages);
printf("%d\n",ages[0]);
return 0;
}
輸出結(jié)果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100
網(wǎng)站題目:c語(yǔ)言數(shù)組輸入函數(shù)嗎 C語(yǔ)言函數(shù)輸入數(shù)組
文章分享:http://m.kartarina.com/article6/hjgcig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、建站公司、外貿(mào)網(wǎng)站建設(shè)、Google、移動(dòng)網(wǎng)站建設(shè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)