[問題] 指標

看板C_and_CPP作者 (平凡)時間8年前 (2015/08/14 20:01), 8年前編輯推噓1(1011)
留言12則, 4人參與, 最新討論串5/5 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) devc 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> int main(int argc, char *argv[]) { char a; printf("%d\n",sizeof(a)); char *b=&a; printf("%d\n",sizeof(b)); int *c=&a; printf("%d\n",sizeof(c)); return 0; } 補充說明(Supplement): 剛學指標, 想看一下系統char佔幾byte,想看指針在int char各佔幾byte 請問這邊sizeof內寫abc對嗎? 我印出來是1 4 4 => 我windows是32-bit so.........對? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.157.65 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1439553705.A.DCC.html

08/14 21:29, , 1F
sizeof(*b)和sizeof(b)不一樣
08/14 21:29, 1F

08/14 21:55, , 2F
不然你覺得是多少。
08/14 21:55, 2F

08/14 22:07, , 3F
回I大:sizeof內*b和b這邊正是我沒把我的地方
08/14 22:07, 3F

08/14 22:08, , 4F
回M大:我的對是指..."我得4跟我預期相同, 所以寫b是對的囉?
08/14 22:08, 4F

08/14 22:09, , 5F
因為擔心是運氣好,剛好是4,因為是要用*b還是b沒把握
08/14 22:09, 5F
※ 編輯: GooLoo (111.243.157.65), 08/14/2015 22:10:23

08/14 22:12, , 6F
又不是在考試,有什麼把不把握的,何不通通都測一測
08/14 22:12, 6F

08/14 22:13, , 7F
剛試sizeof(*b)是1, 這1好像是資料大小,不是指標變數大小
08/14 22:13, 7F

08/14 22:13, , 8F
b *b c *c都測一測
08/14 22:13, 8F

08/14 22:14, , 9F
也是!哈~~剛試了一下, 好像有點通了!
08/14 22:14, 9F

08/14 22:16, , 10F
感謝^^
08/14 22:16, 10F

08/17 14:58, , 11F
*c是有問題的,因為只有1 byte你卻讀了4 byte
08/17 14:58, 11F

08/17 15:01, , 12F
但應用在sizeof Macro上是沒問題,只是提醒你形態要注意
08/17 15:01, 12F
文章代碼(AID): #1LpTYftC (C_and_CPP)
討論串 (同標題文章)
完整討論串 (本文為第 5 之 5 篇):
問題
1
20
問題
1
28
問題
5
13
問題
1
12
文章代碼(AID): #1LpTYftC (C_and_CPP)