[問題] dereference a pointer to char

看板C_and_CPP (C/C++)作者 (我想考試)時間13年前 (2013/01/03 22:47), 編輯推噓0(009)
留言9則, 5人參與, 最新討論串1/1
int main { char *str="hello"; void *add=0; add=str; cout<<str<</t<<add<<endl; system("pause"); return 0; } 想請問一下為什麼將str改成*str輸出的結果會是h? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.235.171.79

01/03 22:48, , 1F
你可以將char*想成是一個array,str是指向第一個的
01/03 22:48, 1F

01/03 22:48, , 2F
位置,你用*就會取到第一個h
01/03 22:48, 2F

01/03 23:01, , 3F
那假如要取第2個也就是e的話要怎樣取呢?
01/03 23:01, 3F

01/03 23:08, , 4F
+1
01/03 23:08, 4F

01/03 23:25, , 5F
*(str + 1) 或 str[1]
01/03 23:25, 5F

01/03 23:35, , 6F
謝謝,我要問的是用*的取法,感恩
01/03 23:35, 6F

01/04 10:01, , 7F
型態char*就是在跟你講"我指到char快用*來取我指到的"
01/04 10:01, 7F

01/04 10:03, , 8F
"字元",不要被 str literal騙去了,指標型態書上都有
01/04 10:03, 8F

01/04 10:04, , 9F
教,好好看一遍再跳下去寫
01/04 10:04, 9F
文章代碼(AID): #1GvPdsV3 (C_and_CPP)
文章代碼(AID): #1GvPdsV3 (C_and_CPP)