第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言大神求救!

C語言大神求救!

C
做一個好碼農(nóng) 2017-06-16 15:35:46
main() 〔          static char a[3];          scanf("%s",a);           printf("%c,%c",a[1] a[2]); 〕 如果输入ab     他的输出结果是啥啊?
查看完整描述

2 回答

已采納
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗 獲得超454個贊

首先,你這個 printf 語句的參數(shù) a[1] a[2] 間是不是少了個逗號啊。拋開這個筆誤。


你輸入的是一個字符串“ab”,不要忘了字符串結(jié)尾還有一個 \n。所以數(shù)組 a 中接受到的元素是 a b 和 \n。

printf 打印的是 a[1] 和 a[2]。數(shù)組下標(biāo)是從 0 開始的,所以打印的是 a 的第二個和第三個字符,也就是 b 和 \n。


當(dāng)然,那個 \n 只是一個回車,看不到字符的。 ?結(jié)果應(yīng)該是 b,[回車]

查看完整回答
1 反對 回復(fù) 2017-06-16
  • 做一個好碼農(nóng)
    做一個好碼農(nóng)
    明白了,謝謝
  • onemoo
    onemoo
    我無意中又點(diǎn)進(jìn)這里,發(fā)現(xiàn)我回答中竟然寫錯了! 回答的第2行中“不要忘了字符串結(jié)尾還有個\n”,這里應(yīng)該是\0,而不是\n! 抱歉了! 我另外又給你寫了一個回復(fù)來詳細(xì)說明。
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗 獲得超454個贊

前一個回答中我誤將 \0 寫成了 \n。

我想再詳細(xì)說明下 scanf 在讀字符串時的行為:當(dāng)格式化指示符為 %s 時,scanf 就會將輸入的內(nèi)容視為字符串,它會一個一個地接收字符直到你輸入了任何一個“空白字符”——回車、空格、tab 都算是空白字符——它就知道你字符串輸入完了,并且會自動再添加一個'\0'。 這是因為 C 規(guī)定字符串是以 '\0' 結(jié)尾的,所以它才自動添加這個 \0。

也就是說,就算我們輸入的是 a b [空格],這個字符串 a 得到的是 a b \0,而不是 a b \n。

另外,我們剛輸入的這個用來表明字符串結(jié)束的空白字符(不管是回車、空格還是tab),不會被 scanf 讀取走! ? 所以如果后面繼續(xù)用 scanf 讀 %c 的話,是會讀到這個空白字符的,這一點(diǎn)需要注意!。

查看完整回答
反對 回復(fù) 2017-09-12
  • 2 回答
  • 0 關(guān)注
  • 1517 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號