[問題] 很初級的指標問題

看板C_and_CPP作者 (sunlights)時間12年前 (2012/11/06 13:05), 編輯推噓4(4012)
留言16則, 10人參與, 最新討論串1/3 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 無 我想問一個很簡單的指標問題 --------------------- int *p; p=300; ----------------- char *p; p="abcd"; ------------------- int *p; scanf("%d",p); ------------------- char *p scanf("%s",p); ------------------- int *p=300; ---------------- char *p="test"; ---------------- 上面六個宣告那些是有錯的,問題在哪?? 那些是對的?? 因為我一直覺得指標變數的等號右邊要放指標(我的意思是要等於記憶體位址) 如果加*才要放值..但是在網路上看了一些範例好像不是這樣. 比如 int *p=300(300是值?),一般在書上看 int i=300; int *p=&i; 才是OK的..但我有看到 int *p=300,覺得很奇怪 還有如果宣告是指標 比如 int *p; 那應該是可以用scanf("%d",p); 讓scanf函數讀入值到p位址吧.. 可是我在執行的時有出問題 這些問題讓我有點頭痛,不知道有沒有人可以解釋這些問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.241.60.160

11/06 21:08, , 1F
指標可以配置記憶體
11/06 21:08, 1F

11/06 21:09, , 2F
去翻指標的書,你就知道指標是在幹嘛的
11/06 21:09, 2F

11/06 21:10, , 3F
這感覺是老師出的作業
11/06 21:10, 3F

11/06 21:10, , 4F
/指標,版上有一堆很清楚的指標圖解
11/06 21:10, 4F

11/06 21:18, , 5F
因為沒記憶體概念
11/06 21:18, 5F

11/06 21:20, , 6F
我覺得你可以說說看你自己認為這六題的答案是什麼
11/06 21:20, 6F
※ 編輯: sunlights 來自: 111.241.60.160 (11/06 21:26)

11/06 21:40, , 7F
對我而言,全部都是錯的 :(
11/06 21:40, 7F

11/06 21:50, , 8F
300也是個位置,不過寫成int *p=(int*)300; 會更好一點點
11/06 21:50, 8F

11/06 22:13, , 9F
int* p不能直接給值吧,除非你有先用malloc挖一塊給他
11/06 22:13, 9F

11/06 22:14, , 10F
可以直接給值,但能不能用 *p 就是另一回事了...XD
11/06 22:14, 10F

11/06 22:18, , 11F
樓上的不要欺負原po了,他應該不是要存address吧= =
11/06 22:18, 11F

11/06 23:07, , 12F
因為指標真的很難學..如果問題太笨請原諒我吧
11/06 23:07, 12F

11/07 00:21, , 13F
所以你覺得答案是什麼?
11/07 00:21, 13F

11/07 00:32, , 14F
:這些我都用 dev c 執行過.大部份執行時都可以.但printf
11/07 00:32, 14F

11/07 00:33, , 15F
scanf 會有問題..其他是*p給值有問題.
11/07 00:33, 15F

11/08 00:12, , 16F
先把 Dev C++ 丟了再說....
11/08 00:12, 16F
文章代碼(AID): #1Et9aey4 (C_and_CPP)
文章代碼(AID): #1Et9aey4 (C_and_CPP)