最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

關(guān)于scanf函數(shù)的問題

關(guān)于scanf函數(shù)的問題

C
慕牧羊6158366 2018-06-25 19:07:49
#include<stdio.h>int ?main(){ int a;char b; scanf("%d",&a); scanf("%[^.]",&b); printf("%d",a); printf("%c1",b); return 0;?}?請問為什么我這個代碼中的a得不到正確的結(jié)果,如:輸入6回車輸入.回車最后得到得結(jié)果為a=0;這是什么原因?
查看完整描述

1 回答

已采納
?
onemoo

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

原因是用 %[] 的那句 scanf 用錯了。

%[] 這個格式化指示符對應(yīng)的其實(shí)是字符串,而非字符?;蛘哒f,它在匹配結(jié)束后,會再存一個 null 字符進(jìn)去(用于構(gòu)成字符串結(jié)尾)。


代碼中你錯誤地只用一個字符去接收 %[] 的匹配結(jié)果,而最后的 null 字符仍會被寫到 b 的后面,這樣就寫越界了。


至于為什么你看到 a 的結(jié)果為 0?? 很可能在你編譯出的程序中 a 的內(nèi)存位置剛好在 b 后面,所以 a 中的結(jié)果被覆蓋了。

查看完整回答
反對 回復(fù) 2018-06-26
  • 1 回答
  • 0 關(guān)注
  • 798 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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