Re: [問題] 很初級的指標問題
看板C_and_CPP (C/C++)作者sunlights (sunlights)時間13年前 (2012/11/07 18:35)推噓4(4推 0噓 18→)留言22則, 10人參與討論串3/3 (看更多)
問題
: (1) int *p;
: p = 300;
: (2) char *p;
: p = "abcd";
: (3) int *p; scanf("%d",p);
: (4) char *p; scanf("%s",p);
: (5) int *p=300;
: (6) char *p="test";
一般書上寫法
: int *p;
: int i = 0;
: p = &i;
看了精彩的回文和大家的推文..
我發現一個道理..
就是只要是常數被放在指標變數p的右邊..
指標就不能用*p改變它的值了..但是可以讀出那個常數
這就是(1),(2),(5),(6)可以的原因..
而一般書上寫法的話是把變數指定給指標變數p所以就可以用*p改變值
不知道上面黃色字是否正確??
現在比較迷惘的就是為什麼int *p 右邊等於int常數就是把int常數當位址給p..
右邊等於字串常數就是把字串第一個字元的位址給p??
還有是不是反正指標就是不能用scanf,只能用=或是其他函數給呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.31.218
※ 編輯: sunlights 來自: 111.240.31.218 (11/07 18:35)
→
11/07 18:38, , 1F
11/07 18:38, 1F
→
11/07 18:39, , 2F
11/07 18:39, 2F
→
11/07 18:40, , 3F
11/07 18:40, 3F
→
11/07 18:40, , 4F
11/07 18:40, 4F
推
11/07 18:43, , 5F
11/07 18:43, 5F
推
11/07 18:44, , 6F
11/07 18:44, 6F
→
11/07 18:45, , 7F
11/07 18:45, 7F
→
11/07 18:45, , 8F
11/07 18:45, 8F
→
11/07 19:02, , 9F
11/07 19:02, 9F
→
11/07 19:04, , 10F
11/07 19:04, 10F
→
11/07 19:05, , 11F
11/07 19:05, 11F
→
11/07 19:06, , 12F
11/07 19:06, 12F
→
11/07 19:07, , 13F
11/07 19:07, 13F
推
11/07 20:18, , 14F
11/07 20:18, 14F
→
11/07 20:19, , 15F
11/07 20:19, 15F
→
11/07 20:58, , 16F
11/07 20:58, 16F
→
11/08 17:28, , 17F
11/08 17:28, 17F
→
11/08 17:45, , 18F
11/08 17:45, 18F
→
11/08 17:49, , 19F
11/08 17:49, 19F
→
11/08 20:08, , 20F
11/08 20:08, 20F
推
11/08 21:40, , 21F
11/08 21:40, 21F
→
11/09 22:09, , 22F
11/09 22:09, 22F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章