全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:909
推到 Plurk!
推到 Facebook!

指標問題

尚未結案
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-09 22:19:27 IP:59.120.xxx.xxx 未訂閱
請問一下大家    int a[3]; a[0]=1; a[1]=2; a[2]=3; cout << a; 是輸出a陣列的開頭位址嗎?    char a[3]; a[0]='a'; a[1]='b'; a[2]='\0'; cout << a; 這樣寫是代表輸出a陣列的字串嗎?    同理 char *a="ab"; cout << a; 是代表輸出指標a的字串嗎?    如果是這樣 那 char 就是輸出字串 int 是位址 是因為?
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-09 23:08:29 IP:211.76.xxx.xxx 未訂閱
Smallcat7315 您好    或許可以這樣說:程式會依您要輸出的資料型態,來決定輸出的格式與結果.    
引言: 請問一下大家 int a[3]; a[0]=1; a[1]=2; a[2]=3; cout << a; 是輸出a陣列的開頭位址嗎? // 因為此刻给的是int陣列的位址,所以當成記憶體位址來印! char a[3]; a[0]='a'; a[1]='b'; a[2]='\0'; cout << a; 這樣寫是代表輸出a陣列的字串嗎? // 因為此刻给的是char陣列的位址,所以當成字串(字元的陣列)來印由给定的位址開始印,直到其後字元的ascii值為零為止! 同理 char *a="ab"; cout << a; 是代表輸出指標a的字串嗎? // a是個字元指標,所以能存char陣列的位址,所以輸出時會由其儲存的位址開始印,直到其後字元的ascii值為零為止! 如果是這樣 那 char 就是輸出字串 int 是位址 是因為? < face="Verdana, Arial, Helvetica"> RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### 發表人 - richtop 於 2005/06/09 23:10:01
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-10 08:32:26 IP:59.104.xxx.xxx 未訂閱
引言: 如果是這樣 那 char 就是輸出字串 int 是位址 是因為? < face="Verdana, Arial, Helvetica"> 雖然說C 是不要你重造輪子。 可是你要用它之前。你也要看過它的 .h, .hpp 檔吧。 你看過了嗎? 有看過 cout 的宣告了嗎? 答案就在那個 .h 之中。
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-11 12:29:09 IP:218.168.xxx.xxx 未訂閱
引言:
引言: 如果是這樣 那 char 就是輸出字串 int 是位址 是因為? < face="Verdana, Arial, Helvetica"> 雖然說C 是不要你重造輪子。 可是你要用它之前。你也要看過它的 .h, .hpp 檔吧。 你看過了嗎? 有看過 cout 的宣告了嗎? 答案就在那個 .h 之中。
不好意思 我還是不太懂 為何 只用cout int 型的 就代表位址 不會印出 他陣列的數字 但是 字元字串 好像就可以 麻煩解惑一下
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-11 17:09:53 IP:59.104.xxx.xxx 未訂閱
引言:
引言: 雖然說C 是不要你重造輪子。 可是你要用它之前。你也要看過它的 .h, .hpp 檔吧。 你看過了嗎? 有看過 cout 的宣告了嗎? 答案就在那個 .h 之中。
不好意思 我還是不太懂 為何 只用cout int 型的 就代表位址 不會印出 他陣列的數字 但是 字元字串 好像就可以 麻煩解惑一下 < face="Verdana, Arial, Helvetica"> 要你看的你看過了嗎? 如果你不想學,憑什麼要我解惑?
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-11 18:10:47 IP:218.168.xxx.xxx 未訂閱
請問是因為cout輸出是以1個Byte慢慢輸出的嗎? 所以char 可以一個個印出 而int 4 Byte 沒法 所以只印出位址
系統時間:2024-11-23 13:31:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!