[問題] 程式新手 有關指標

看板C_and_CPP作者 (我恨5566)時間13年前 (2011/03/17 12:43), 編輯推噓2(208)
留言10則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 剛剛看到十三誡之三 想到不可將值寫到不知指向何方的指標 但最近在書上看到以下例子 Ex.char *string="Hello"; 現在觀念上有點模糊 請大家幫忙解惑 感謝 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.50.57.101

03/17 13:04, , 1F
這是宣告順便初始化 string指向字串常數 "Hello"存於記憶
03/17 13:04, 1F

03/17 13:04, , 2F
某處 你疑惑的點在哪?
03/17 13:04, 2F

03/17 13:10, , 3F
編譯程式的時候,編譯器會替 string literal ("Hello")
03/17 13:10, 3F

03/17 13:11, , 4F
選一個地方存放,順便把該處的記憶體位址傳給等號左邊指標
03/17 13:11, 4F

03/17 13:12, , 5F
這不算不知指向何方,應該說授權給編譯器去找地方放
03/17 13:12, 5F

03/17 13:16, , 6F
int *p; 這樣沒有給他一個等號(=)的,才是不知道指向何方
03/17 13:16, 6F

03/17 14:04, , 7F
應該是宣告一個string存指向字元的指標,
03/17 14:04, 7F

03/17 14:07, , 8F
然後那個字串應該是compiler會宣告成C格式的一維字串
03/17 14:07, 8F

03/17 14:07, , 9F
然後把字串的第一個字元的記憶體位置存到 *string
03/17 14:07, 9F

03/17 14:07, , 10F
小的淺見.....如有錯誤請糾正
03/17 14:07, 10F
文章代碼(AID): #1DWP5ZfQ (C_and_CPP)