網域名稱俱樂部


返回   網域名稱俱樂部 > 電腦與網路技術 > 電腦網路相關技術 > 一般軟體與網路使用討論

回覆
 
主題工具
  #1  
舊 2014-04-24, 10:39 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,996
預設 請教C語言的一個問題

以下的程式是當使用者打一個字母之後,系統會輸出該字母相對應的ASKII碼值的*號。

程式如下:
#include <stdio.h>

int main(void)
{
int x,y;
char ch;

for(x=0;x<3;x++)
{
printf("\nenter a letter: ");
ch=getche();
printf("\n");
for(y=0;y<ch;y++)
printf("*");
}
return 0;
}

我的問題在於for(y=0;y<ch;y++) 中的y<ch。
因為我本來想ch是個char型別的值,而一般說什麼值都會打上' ' ,所以就打上 'ch' ,使這裡變成 y<'ch',結果程式跑出來後,*號一大堆比原本正確答案多出好幾倍?

我後來想一想,是否'ch'有上引號就變成了 c和h兩個字母的意思?而非原先變數ch的意思?所以'ch'等於是把 c+h 的askii碼?

thanks.
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
  #2  
舊 2014-04-25, 07:55 AM
yumi yumi 目前離線
進階會員
 
註冊日期: 2005-12-29
文章: 1,373
預設

c的ascii是99
h的ascii是104
系统把'ch'当成了256进制的数字:99*256+104=25448
__________________
收购各位版友的四字母com、数字米com/net/cc、三杂米com、拼音米。价格随行市价。站内联系。
回覆時引用此篇文章
  #3  
舊 2014-04-25, 12:05 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 22,996
預設

引用:
作者: yumi 查看文章
c的ascii是99
h的ascii是104
系统把'ch'当成了256进制的数字:99*256+104=25448
thanks,原來如此。
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
  #4  
舊 2014-04-25, 10:09 PM
sqonline 的頭像
sqonline sqonline 目前離線
普通會員
 
註冊日期: 2014-04-24
住址: 上海
文章: 57
發送 MSN 消息給 sqonline
預設

弄不懂,丟掉多少年沒碰了
__________________
我是來之上海的玩米的,大家多交流,郵箱(MSN):sqonline@foxmail.com qq:79293646 LINE(or微信):sqonline
回覆時引用此篇文章
回覆

主題工具

發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼



所有時間均為 +8。現在的時間是 01:20 AM


本站主機由網易虛擬主機代管
Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.