關於C語言中的char - PCZONE 討論區

返回   PCZONE 討論區 > ▲ -- 電 腦 軟 體 討 論 區 > -- 其 他 軟 體 討 論 版


PCZONE 討論區



通知

-- 其 他 軟 體 討 論 版 包括磁碟或檔案管理工具、掃毒軟體、解壓縮軟體、遠端遙控軟體、備份軟體、傳真軟體、手寫或語音等各種軟體使用經驗討論

會員
關於C語言中的char
請問
我宣告
char ch;
ch=0;跟
ch='0';
這兩ㄍ有一樣ㄇ??

回覆
あなたの家に行く

char i='a';

a當作字元。
回覆
會員

那我問ㄉ題目
char ch;
ch=0;
ch='0';
這兩ㄍ有一樣ㄇ??
回覆
無聲無息的影子

引用:
最初由 流浪者~MIT 發表
那我問ㄉ題目
char ch;
ch=0;
ch='0';
這兩ㄍ有一樣ㄇ??
建議你 先把C 的基本資料類別意義搞清楚一點。

不過答案是沒有一樣。
回覆
會員

引用:
最初由 流浪者~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);
}
回覆
會員

------------------------
if(kbhit())
ch=getch();
else
ch=0;
while(ch=='0')
{
xxxxx
break;
}
------------------------
意思是說(假設程式是無限迴圈會回到最上面)
當我按下鍵盤上面的0
就會進入while迴圈
接下來可是我沒有按下任何鍵所以ch=0
可是ch=0不符合while條件判斷(ch=='0')
所以不會進入while迴圈

>>>我這樣解釋對ㄇ???
回覆
會員

引用:
最初由 流浪者~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分鐘,
所以學程式不單只是學語法,還要學如何寫是最好,最高級的程式...
回覆
會員

ch=0? 請查一下ASCII表
這應該會把ch的值定為表中0的值(a好像是65, 65以前好像都是符號)

回覆
會員

引用:
最初由 carage 發表
ch=0? 請查一下ASCII表
這應該會把ch的值定為表中0的值(a好像是65, 65以前好像都是符號)
沒錯

#include<iostream.h>
void main()
{
char ch;
ch=65;
cout<<ch;
}

跑出來的結果會是a

回覆







 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。