[語法] 指位器指標輸出問題

看板C_and_CPP (C/C++)作者 (ffxiou)時間16年前 (2009/09/14 00:42), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
最近在讀指位器有個疑問就是 例如有個片段程式如下: char *ptr[3]={"P","P","T"}; int i; for(i=0;i<=2;i++) printf("指位器所對應的位址=%p,指位器所指向的內容為=%s",ptr[i],ptr[i]); //---------------------程式結束--------------------------- *不是就是指位器所對應的內容值嗎? 為什麼指位器所存的內容不是"*ptr[i]",而是"ptr[i]",改成下面就不能跑了 printf("指位器所對應的位址=%p,指位器所指向的內容為=%s",ptr[i],*ptr[i]); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.11.62

09/14 00:52, , 1F
ptr[0~2]各是一個指向char的pointer 分別指向{'P','/0'}、
09/14 00:52, 1F

09/14 00:53, , 2F
{'P','/0'}和{'T','/0'}(也就是"P"、"P"、"T")
09/14 00:53, 2F

09/14 00:53, , 3F
而printf的%s需要接收一個string 所以應該要給的是ptr[i]
09/14 00:53, 3F

09/14 00:54, , 4F
如果給*ptr[i]的話 就變成是一個char了(ex:*ptr[0]=='P')
09/14 00:54, 4F

09/14 06:55, , 5F
謝謝你的回文
09/14 06:55, 5F
文章代碼(AID): #1AhI44Oy (C_and_CPP)
文章代碼(AID): #1AhI44Oy (C_and_CPP)