作者ffxiou (ffxiou)
看板C_and_CPP
標題[語法] 指位器指標輸出問題
時間Mon Sep 14 00:42:43 2009
最近在讀指位器有個疑問就是
例如有個片段程式如下:
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
1F:→ hilorrk:ptr[0~2]各是一個指向char的pointer 分別指向{'P','/0'}、 09/14 00:52
2F:→ hilorrk:{'P','/0'}和{'T','/0'}(也就是"P"、"P"、"T") 09/14 00:53
3F:→ hilorrk:而printf的%s需要接收一個string 所以應該要給的是ptr[i] 09/14 00:53
4F:→ hilorrk:如果給*ptr[i]的話 就變成是一個char了(ex:*ptr[0]=='P') 09/14 00:54
5F:→ ffxiou:謝謝你的回文 09/14 06:55