指標的小問題
(耶, givebirthday@yahoo.com.tw, 2012-07-31 22:38)
1樓
請問有沒有指標這樣宣告的
char*ptr=......
可是指標不是位址嗎 所以ptr應該是數字吧 怎麼會是用字元型別呢
(路人, 2012-07-31 22:45)
2樓
位址也是數字啊
char * 到時deference 時,要取回一個byte, 若是int *, ,則取回4個byte
(耶, 2012-07-31 22:51)
3樓
我知道位址是數字阿 所以因為ptr是位址 所以ptr也是數字 但是我不懂為何可以把前方宣告成char(字元)變數
(路人, 2012-07-31 23:06)
4樓
你沒看懂這句話
char * 到時deference 時,要取回一個byte, 若是int *, ,則取回4個byte
(耶, 2012-08-01 16:32)
5樓
我有兩個問題
1.我可以說當宣告char*ptr時 ptr是指向一個字元(1Byte) 當宣告int*ptr時 ptr是指向一個整數(4Byte) 這樣說對嗎
2.我看到講義上一行程式如此寫道:char*orig=WORDS;
請問orig不是指標嗎 為何可以等於WORDS(一個字串) 還是說是因為字串是字元陣列 而陣列也是指標的一種呢
(joseph, 2012-08-01 22:39)
6樓
.>> 我可以說當宣告char*ptr時 ptr是指向一個字元(1Byte) 當宣告int*ptr時 ptr是指向一個整數(4Byte) 這樣說對嗎
不對, 任何型態的指標變數都是指向一個記憶體位址, 只是存取時要讀回幾個byte 而已
2.我看到講義上一行程式如此寫道:char*orig=WORDS;
請問orig不是指標嗎 為何可以等於WORDS(一個字串) 還是說是因為字串是字元陣列 而陣列也是指標的一種呢
"字串" 本身就是就是存放在某一段記憶體
char *s="xxxxx";
你用s指標去指向那一段位址的起始位址而已