作者GooLoo (平凡)
看板C_and_CPP
標題[問題] ->與點
時間Sun Aug 23 17:25:34 2015
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
devc
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
不好意思, 又卡住了
我曉得 取結構體元素值可以 pp->x 或pp.x
但是, 不曉得為什麼這邊用pp.x會報錯, pp->x就可以
因為當我打點時, 他會出現x給我選, 但選完卻報錯.
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
程式1
#include <stdio.h>
typedef struct MyPoint{
int x;
int y;
} * PP;
struct MyPoint point ={20,40};
int main(int argc, char *argv[]) {
PP pp = &point;
printf("x=%d\n",pp->x);
printf("y=%d\n",pp->y);
return 0;
}
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.229.117
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1440321936.A.67A.html
推 softseaweed: a->b的意思是 (*a).b 08/23 17:32
ㄚ!謝了~我知道了!!
printf("x=%d\n",(*pp).x);
printf("y=%d\n",(*pp).y);
※ 編輯: GooLoo (111.251.229.117), 08/23/2015 17:39:12
推 LPH66: -> 用在指標, 不是指標就用點, 這樣記就好了 08/23 18:41
→ LPH66: pp 的型態是 PP = struct MyPoint*, 所以用 -> 08/23 18:42
→ tinlans: 使用任何東西之前要詳讀說明書,寫程式之前也是。 08/23 19:27
推 Killercat: . ->會搞錯的話 以後很多東西(像iter, smart_ptr)會弄 08/23 23:36
→ Killercat: 得頭昏眼花的。這盡量早點搞清楚比較好 08/23 23:36
推 stupid0319: 7月鬼門開,也是最容易報錯的一個月!!!!!!! 08/24 13:18
→ dritchie: 樓上 報錯都是自己的問題居多 不要牽拖 08/25 00:45