#1
|
||||
|
||||
請教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. |
#2
|
|||
|
|||
c的ascii是99
h的ascii是104 系统把'ch'当成了256进制的数字:99*256+104=25448
__________________
收购各位版友的四字母com、数字米com/net/cc、三杂米com、拼音米。价格随行市价。站内联系。 |
#4
|
||||
|
||||
弄不懂,丟掉多少年沒碰了
__________________
我是來之上海的玩米的,大家多交流,郵箱(MSN):sqonline@foxmail.com qq:79293646 LINE(or微信):sqonline |