流浪者~MIT
2002-11-21, 09:48 PM
請問
我宣告
char ch;
ch=0;跟
ch='0';
這兩ㄍ有一樣ㄇ??
贊助商連結
我宣告
char ch;
ch=0;跟
ch='0';
這兩ㄍ有一樣ㄇ??
贊助商連結
贊助商連結 流浪者~MIT 2002-11-21, 09:48 PM 請問 我宣告 char ch; ch=0;跟 ch='0'; 這兩ㄍ有一樣ㄇ?? 贊助商連結 琥珀 2002-11-21, 09:52 PM char i='a'; a當作字元。 流浪者~MIT 2002-11-22, 02:15 PM 那我問ㄉ題目 char ch; ch=0; ch='0'; 這兩ㄍ有一樣ㄇ?? zcecil 2002-11-22, 03:21 PM 最初由 流浪者~MIT 發表 那我問ㄉ題目 char ch; ch=0; ch='0'; 這兩ㄍ有一樣ㄇ?? 建議你 先把C 的基本資料類別意義搞清楚一點。 不過答案是沒有一樣。 gwochern 2002-11-22, 06:33 PM 最初由 流浪者~MIT 發表 那我問ㄉ題目 char ch; ch=0; ch='0'; 這兩ㄍ有一樣ㄇ?? ''在c的語法是字元的意思 ""在c的語法是字串的意思 沒有的話是數值的意思 所以你要先搞清楚字元字串數值在c的語法是什麼,及表代什麼意義 而char是1byte大小 '0'是字元在acsii為30 16進制,所以ch='0' 其ch內含真正的值是0011 0000 而ch=0,其ch內含真正的值是0000 0000 其ascii 0為null,所以ch為null 不信你可以試試下面的程式 #include <stdio.h> main() { char ch; ch=0;//數值 printf("%x\n",ch);//%x 是16進制表示法 printf("%c\n",ch); ch='0';//字元 printf("%x\n",ch); printf("%c\n",ch); } 流浪者~MIT 2002-11-22, 10:30 PM ------------------------ if(kbhit()) ch=getch(); else ch=0; while(ch=='0') { xxxxx break; } ------------------------ 意思是說(假設程式是無限迴圈會回到最上面) 當我按下鍵盤上面的0 就會進入while迴圈 接下來可是我沒有按下任何鍵所以ch=0 可是ch=0不符合while條件判斷(ch=='0') 所以不會進入while迴圈 >>>我這樣解釋對ㄇ??? gwochern 2002-11-22, 10:57 PM 最初由 流浪者~MIT 發表 ------------------------ if(kbhit()) ch=getch(); else ch=0; while(ch=='0') { xxxxx break; } ------------------------ 意思是說(假設程式是無限迴圈會回到最上面) 當我按下鍵盤上面的0 就?.. if(kbhit()) ch=getch(); else ch=0; while(ch=='0') { xxxxx break; } 這樣是沒錯,但我通常不會在令ch=0,因為就算沒else ch=0;也不會進入while 廻圈,這是會使compile後程式碼加大,浪費時間,與儲存空間,但這是你的思想,我不會說什麼,只能建議 最後給你建議,以後寫程式作業或其它,先自己寫好,在跟看同學如何寫,比較那一種寫的好,這會使你功力大增,你會發別人的想法是什麼,自己的想法是什麼 因為我自己碰過,寫一個大程式,我自己RUN的時間要2小時,別人只10分鐘, 所以學程式不單只是學語法,還要學如何寫是最好,最高級的程式... carage 2002-11-23, 03:58 PM ch=0? 請查一下ASCII表 這應該會把ch的值定為表中0的值(a好像是65, 65以前好像都是符號) wenyic 2002-11-23, 10:07 PM 最初由 carage 發表 ch=0? 請查一下ASCII表 這應該會把ch的值定為表中0的值(a好像是65, 65以前好像都是符號) 沒錯 #include<iostream.h> void main() { char ch; ch=65; cout<<ch; } 跑出來的結果會是a |
|