char型与int型不是可以相互转换的? C语言中 char与int有什么区别?

java\u91cc\u4e0d\u662f\u8bf4char\u7c7b\u578b\u81ea\u52a8\u5411int\u578b\u8f6c\u6362\u5417\uff1f\u90a3\u4e3a\u4ec0\u4e48..

\u4f60\u9996\u5148\u8981\u660e\u767d\uff0c\u5728\u57fa\u672c\u7c7b\u578b\u6570\u636e\u5f53\u4e2d\uff0c\u5f3a\u5236\u7c7b\u578b\u8f6c\u6362\u53ea\u53d1\u751f\u5728int\u3001long\u3001float\u548cdouble\u4e4b\u95f4\u3002\u6bd4int\u7c7b\u578b\u4f4e\u6216\u5c31\u662fint\u578b\u7684\u50cfbyte\u578b\u3001short\u578b\u3001char\u578b\u3001int\u578b\u4e4b\u95f4\u7684\u8f6c\u6362\u4e0d\u4e0d\u8981\u5f3a\u5236\u7c7b\u578b\u8f6c\u6362\uff0c\u4e5f\u4e0d\u5b58\u5728\u7740\u8fd0\u7b97\u4f18\u5148\u7ea7\u548c\u7c7b\u578b\u8f6c\u6362\u7684\u95ee\u9898\uff0c\u8fd9\u662fjava\u5b98\u65b9\u89c4\u5b9a\u7684\uff0c\u4f60\u65e0\u6743\u4fee\u6539\u3002\u81f3\u4e8e\u8fd0\u7b97\u540e\u7684\u7ed3\u679c\u662f\u5426\u80fd\u591f\u88ab\u5de6\u8fb9\u7684\u7c7b\u578b\u5bb9\u7eb3\uff0c\u4f60\u5728\u8f93\u5165\u7684\u65f6\u5019\u5c31\u80fd\u77e5\u9053\u3002

C\u8bed\u8a00\u4e2d char \u4e0e int \u5177\u4f53\u533a\u522b\u5982\u4e0b\uff1a
1\u3001\u8868\u793a\u7684\u53d8\u91cf\u7c7b\u578b\u4e0d\u540c\uff1a
char \u662f\u5b57\u7b26\u53d8\u91cf\uff0c\u800c int \u662f\u6574\u578b\u53d8\u91cf\u3002
2\u3001\u7533\u8bf7\u7684\u7c7b\u578b\u6570\u636e\u4e0d\u540c\uff1a
char \u7528\u6765\u7533\u8bf7\u5b57\u7b26\u548c\u5b57\u7b26\u4e32\u6216\u8005\u5b57\u7b26\u4e32\u6307\u9488\uff1bint \u7528\u6765\u7533\u8bf7\u6574\u578b\u6570\u636e\uff0c\u6216\u8005\u6574\u5f62\u6570\u636e\u6307\u9488\u3002
3\u3001\u5b57\u8282\u3001\u80fd\u8868\u793a\u7684\u5185\u5bb9\u4e0d\u540c\uff1a
char\u53ea\u6709\u4e00\u4e2a\u5b57\u8282\uff0cint\u67094\u4e2a\u5b57\u8282\uff0c\u80fd\u8868\u793a\u7684\u5185\u5bb9\u5927\u5c0f\u4e0d\u4e00\u6837\uff1bchar\u53ea\u67090~255\uff0cint\u8303\u56f4[-2^31 , 2^31 -1] \uff08\u5904\u7406\u5668\u662f64\u4f4d\u7684\u53ef\u4ee5\u66f4\u5927\uff09

\u6269\u5c55\u8d44\u6599\uff1a\u4e00\u3001char\u548cint\u5b9a\u4e49\u540e\u7684\u6570\u636e\uff0c\u6253\u5370\u65f6printf("")\u62ec\u53f7\u5185\u90e8\u586b\u5199\u7684\u6570\u636e\u7c7b\u578b\u5206\u522b\u662f"%c"\u548c"%d"\u3002
\u4e8c\u3001char\u578b\u6570\u636e\u4e0eint\u578b\u6570\u636e\u867d\u6709\u533a\u522b\uff0c\u4f46\u4e5f\u80fd\u76f8\u4e92\u8f6c\u6362\u3002\u5177\u4f53\u65b9\u6cd5\u5982\u4e0b\uff1a
1\u3001char\u578b\u6570\u5b57\u8f6c\u6362\u4e3aint\u578b\uff0c\u8f6c\u6362\u65b9\u6cd5\uff1aa[i] - '0' \u53c2\u8003\u4ee3\u7801\u5982\u4e0b\uff1a

2\u3001int\u7c7b\u578b\u8f6c\u5316\u4e3achar\u7c7b\u578b\uff0c\u8f6c\u5316\u65b9\u6cd5\uff1aa[i] + '0' \u53c2\u8003\u4ee3\u7801\u5982\u4e0b\uff1a

\u53c2\u8003\u8d44\u6599\uff1aint-\u767e\u5ea6\u767e\u79d1
char-\u767e\u5ea6\u767e\u79d1

就是输出的“是”呀,比较的就是ascii码,char强制转换成int,是将ascii码给int,int转换成char,是将ascii码对应的字符给char



因为a是int型,你试图把字符'B'存进去但是scanf函数判断出这是非法的,于是取消了这次赋值

你可以在程序最后printf("%x",a);试试看,a是0xcccccc00,0xcccccccc是a的初值, 由于赋值失败,a的最后一个字节被清零

以上是在vs2012中测试,根据大家的回答,这可能跟不同的编译器有关

vs2012中不允许用scanf函数,只能用scanf_s函数,也许跟函数也有关,总之这种事情不必太纠结,学C语言不需要钻牛角尖的

可以的
这应该跟你的编译器有关!



是啊,没问题啊,我输入B ,输出的就是 ‘是’

  • C璇█涓叧浜char鍜宨nt鐨勯棶棰
    绛旓細char鍜宨nt涓鑸儏鍐典笅鏄彲浠鐩存帴鍋氬姞鍑忚繍绠楃殑锛屼綘鍙互鐩存帴鎶奵har褰撴垚涓涓猧nt锛屽彧涓嶈繃鍙栧艰寖鍥村皬鐐癸紱涓嶅悓绫诲瀷鐨鏁板煎湪鍋氳繍绠楁椂锛屼互灏介噺涓嶄涪澶辨湁鏁堟暟鎹负鍘熷垯锛屾瘮濡俢har鍜宨nt鐩稿姞锛岀郴缁熶細鑷姩鎶奵har杞崲鎴恑nt锛屾渶缁堢粨鏋滀篃鏄int鍨锛涜祴鍊兼椂濡傛灉绫诲瀷涓涓鏍凤紝瑕佸皬蹇冿紝鑻ョ瓑鍙峰乏杈圭殑绫诲瀷灏忎簬鍙宠竟鐨勶紝浼氫骇鐢熸埅鏂祴鍊硷紙...
  • c璇█涓 int鍨鍙橀噺涓char鍨鍙橀噺浠涔堟儏鍐典笅涓嶈兘浜掓崲,璇蜂妇涓緥瀛愯鏄(璇...
    绛旓細鍏跺疄杩欑闂锛屼粠琛ㄩ潰璇翠篃娌℃湁浠涔堢壒鍒殑鎰忎箟锛屽洜涓烘湰鏉ュ氨娌℃湁浠涔堜弗鏍兼剰涔変笂鐨鑳戒笉鑳浜掓崲鐨勯棶棰樸傚彧瑕佽兘鍦ㄤ娇鐢ㄨ繃绋嬩腑锛屾弧瓒虫湰鏉ョ殑瑕佹眰灏卞彲浠ヤ簡銆備緥濡傦細鍦ㄥ皢int鍨鍙橀噺杞崲涓char鍨鏃讹紝瑕佽冭檻鍒版暟鎹殑婧㈠嚭闂绛夛紱char杞崲涓篿nt鏃讹紝瑕佽冭檻鍒板畠鐨勭鍙烽棶棰樸傚湪鏍规湰涓婂彧瑕佽娓呭畠浠袱鑰呬箣闂寸殑鍖哄埆灏卞彲浠ヤ簡銆俰nt...
  • char涓巌nt鐨勫尯鍒
    绛旓細C璇█涓 char 涓 int 鍏蜂綋鍖哄埆濡備笅锛1銆佽〃绀虹殑鍙橀噺绫诲瀷涓鍚岋細char 鏄瓧绗﹀彉閲忥紝鑰 int 鏄暣鍨嬪彉閲忋2銆佺敵璇风殑绫诲瀷鏁版嵁涓嶅悓锛歝har 鐢ㄦ潵鐢宠瀛楃鍜屽瓧绗︿覆鎴栬呭瓧绗︿覆鎸囬拡锛沬nt 鐢ㄦ潵鐢宠鏁村瀷鏁版嵁锛屾垨鑰呮暣褰㈡暟鎹寚閽堛3銆佸瓧鑺傘佽兘琛ㄧず鐨勫唴瀹逛笉鍚岋細char鍙湁涓涓瓧鑺傦紝int鏈4涓瓧鑺傦紝鑳借〃绀虹殑鍐呭澶у皬涓嶄竴鏍...
  • 瀛楃鍨1鍜宨nt鍨鐩稿姞
    绛旓細鑷姩杩涜绫诲瀷杞崲锛屽涓涓猯ong鍨嬫暟鎹敤鏁村瀷鏍煎紡(%d)杈撳嚭鏃讹紝鍒欑浉褰撲簬灏唋ong鍨嬭浆鎹㈡垚鏁村瀷(int)鏁版嵁杈撳嚭锛涗竴涓瓧绗(char锛夊瀷鏁版嵁鐢ㄦ暣鍨嬫牸寮忚緭鍑烘椂锛岀浉褰撲簬灏char鍨杞崲鎴int鍨杈撳嚭銆 娉ㄦ剰锛氳緝闀垮瀷鏁版嵁杞崲鎴愮煭鍨嬫暟鎹緭鍑烘椂锛屽叾鍊涓嶈兘瓒呭嚭鐭瀷鏁版嵁鍏佽鐨勫艰寖鍥达紝鍚﹀垯杞崲鏃跺皢鍑洪敊銆傚锛歭ong a=80000; ...
  • ...鏁村瀷涓庡瓧绗鍨嬪彲浠鐩镐簰杞崲,閭d箞int i涓char i鏄惁閮芥槸鏃犳潯浠剁瓑浠穇鐧...
    绛旓細int鍜宑har鐨勮〃绀鸿寖鍥存槸涓嶄竴鏍风殑锛宨nt鍦╒C涓婂崰4浣嶏紝鑰宑har鍙崰1浣嶏紝姣斿int i锛宨=10000锛涗笌char i;i=1000;鏄笉涓鏍风殑锛屽墠鑰呭彲浠=1000 鑰屽悗鑰呬細婧㈠嚭
  • int鍜宑har涓轰粈涔堜細涓嶄竴鏍
    绛旓細1銆佸瓧绗绫诲瀷涓鍚 int鏄鏁村瀷鏁版嵁锛屽锛歩nt a 鍒檃鐨勫煎彧鑳芥槸鏁村瀷锛屽a=3銆char鏄瀛楃鍨嬶紝濡傦細char a 鍒檃鐨勫煎彧鑳芥槸瀛楃鍨嬶紝濡俛='a'銆俧loat鏄诞鐐瑰瀷鏁版嵁锛屽锛歠loat a 鍒檃鐨勫煎彧鑳芥槸娴偣鍨嬫暟鎹;濡俛=3.50锛2銆佸唴瀛樺ぇ灏忎笉鍚 int 鐨勫唴瀛樺ぇ灏忔槸4 涓猙yte锛宑har 鐨勫唴瀛樺ぇ灏忔槸1 涓猙yte锛宖loat ...
  • JAVA涓负浠涔int鍨鍙橀噺涓嶈兘璧嬬粰char鍨鍙橀噺?
    绛旓細int鏄32浣嶏紝char鏄16浣嶏紝鎬庝箞璧嬪晩锛熼潤鎬佹柟娉曠殑纭笉鑳芥搷浣滃疄渚嬪彉閲忥紝鍙綘鐨剎鍙橀噺涔涓嶆槸瀹炰緥鍙橀噺鍟婏紝瀹冩槸鍐欏湪main鏂规硶閲岄潰鐨勶紝褰撶劧main鏂规硶鍙互璁块棶瀹冧簡銆備笉鐒讹紝浣犲惂x鍐欏湪main澶栭潰锛岀湅鐪嬶紝灏变笉鑳借闂簡銆俢har a=97;涓轰粈涔堝锛熸槸鍥犱负锛岀粰char鍙橀噺璧嬪硷紝涓鑸槸杩欐牱鐨勶細char a = '',浣嗗鏋滄妸鏁存暟浠樼粰...
  • 鏁村瀷鏁版嵁鍜瀛楃鍨嬫暟鎹殑绫诲瀷涓鍚,瀹冧滑涔嬮棿鑳戒笉鑳杩涜杩愮畻?
    绛旓細int 鈫 char, short 鍥句腑妯悜鍚戝乏鐨勭澶磋〃绀哄繀瀹氱殑杞崲锛屽瀛楃鏁版嵁蹇呭畾鍏堣浆鎹负鏁存暟锛 short鍨嬭浆涓篿nt鍨嬶紝float鍨嬫暟鎹湪杩愮畻鏃朵竴寰嬭浆鎹㈡垚鍙岀簿搴﹀瀷锛屼互鎻愰珮杩愮畻绮惧害(鍗充娇鏄袱涓猣loat鍨嬫暟 鎹湪鍔犲寲鎴恉ouble鍨嬶紝鐒跺悗鍐嶇浉鍔)銆傜旱鍚戠殑绠ご琛ㄧず褰撹繍绠楀璞′负涓嶅悓绫诲瀷鏃惰浆鎹㈢殑鏂瑰悜銆備緥濡int鍨嬩笌doub1e鍨 ...
  • 涓嶅悓绫诲瀷鏁版嵁涔嬮棿鍦ㄨ繘琛岃繍绠楁椂,缁撴灉绫诲瀷搴旇濡備綍纭畾?
    绛旓細1 +銆-銆 *銆 /杩愮畻鐨勪袱涓暟涓湁涓涓暟涓篺loat鎴杁ouble鍨嬶紝缁撴灉鏄痙ouble鍨嬶紝鍥犱负绯荤粺灏嗘墍鏈塮loat鍨嬫暟鎹兘鍏堣浆鎹负double鍨嬶紝鐒跺悗杩涜杩愮畻锛2. 鑻nt鍨嬩笌float鎴杁ouble鍨嬫暟鎹繘琛岃繍绠楋紝鍏堝皢int鍨嬪拰float鍨嬭浆鎹负double鍨嬶紝鐒跺悗杩涜杩愮畻锛岀粨鏋滀负double鍨嬶紱3. Char鍨嬩笌int鍨鏁版嵁杩涜杩愮畻锛屽氨鏄妸瀛楃鐨...
  • C璇█涓,int鍜宑har鍨
    绛旓細鍦–璇█涓湁浜涙椂鍊 int 鍜 char 鐪嬩笂鍘鏄彲浠閫氱敤鐨勩傚湪浣犱笂闈妇鐨勪緥瀛愪腑锛屾槸浠ュ瓧绗︾殑褰㈠紡鏄剧ず a 鎵琛ㄧず鐨凙SCII鐮佸瓧绗︼紝ASCII鐨勫彇鍊艰寖鍥0~255锛屼篃灏辨槸1涓瓧鑺傘俢har鍦–璇█涓槸1涓瓧鑺傦紝鑰宨nt瑕佺湅涓嶅悓鐨勭‖浠躲佹搷浣滅郴缁熷钩鍙扮殑涓嶅悓鑰屾湁鍖哄埆锛屼絾涓嶄細灏忎簬2涓瓧鑺傦紝鍗虫渶灏2瀛楄妭銆傚鏋 int 绫诲瀷璧嬪...
  • 扩展阅读:char和int可以通用吗 ... char转换成int方法 ... char转换成int型 ... int型怎么转成char ... 求三个int型 三个char型 ... int型直接赋值给char ... char型数字转为int ... 什么时候用char与int ... 怎么把int型转化为char型 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网