看板 C_and_CPP 關於我們 聯絡資訊
整篇文的 num都是整數型態 ptr是指標 1. int *ptr; ptr=# 2. int *ptr=num; 3. int *ptr=# 請問 以上哪個宣告方式才對呢 我的裡解是 理論上第三種才是錯的呀 為什麼會是對的呢 我還自作聰明(?)在書上標注說第三種是多打一個 & 因為黃色那行關係 我以為 ptr=# 和 *ptr=num; 是對等關係 &不是取位址嗎 *不是取值嗎(這是我個人的解讀) 所以我才會奇怪第三種是什麼東西?? 然後我又疑問 可以這樣寫嗎? int num; int ptr=# -- http://tinyurl.com/yclru5x 爸爸和女兒在喜宴中大打出手 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.118.177
james732:請問你的 num 是什麼東西? 05/12 23:00
lvlightvivi:3的*跟1不一樣意思? 05/12 23:00
Savate:int mum; 05/12 23:01
QQ29:我賭2錯 05/12 23:01
netsphere:2 05/12 23:02
netsphere:int * num <-這樣第三種才是錯的 05/12 23:03
VictorTom:基本上要先看num是哪種型態, 在num型態上作點手腳也可以 05/12 23:08
VictorTom:變成1錯2對; 如果num也是int, 那1和3是對的, 2才是錯的 05/12 23:08
VictorTom:你的取址(address of)和取值(dereference)剛好寫反.... 05/12 23:10
james732:&不是取值嗎 *不是取位址嗎 <== 兩個都不對 XDD 05/12 23:10
Savate:囧 沒差啦 中文的表達 反正我懂意思 05/12 23:10
※ 編輯: Savate 來自: 163.25.118.177 (05/12 23:11) ※ 編輯: Savate 來自: 163.25.118.177 (05/12 23:12)
VictorTom:那現在請問你, int *ptr; 的*是什麼?? 是取值嗎?? 05/12 23:12
Savate:取值 ptr=address 05/12 23:13
VictorTom:錯了~_~ 05/12 23:14
james732:其實 int *ptr 與 *ptr 兩種意思不一樣...(很容易搞混) 05/12 23:14
Savate:書上沒特別提 >"< 05/12 23:14
james732:書上沒提的東西可多的呢 XDD 05/12 23:15
VictorTom:建議去把語法語意看懂, 不要自己排列組合亂猜瞎拼湊XD 05/12 23:15
VictorTom:這個再怎麼入門的書都應該會解釋吧?_? 05/12 23:15
james732:我覺得 * 的兩種意思真的很容易亂掉 搞懂了幫助會很大 05/12 23:15
Savate:看什麼呀? 書嗎? 書這裡就沒特別提到呀 囧囧囧囧囧 05/12 23:16
VictorTom:請問你的參考書是?? 如果是大家都知道的書也許有大大可 05/12 23:16
Savate:書這部份沒特別提"這兩個不一樣喔" 所以我才誤以為它多打了 05/12 23:17
VictorTom:以指點頁數:) 不然, 就得有人慢慢解釋了....XD 05/12 23:17
Savate:洪維恩的書 :( 05/12 23:17
Savate:書上第一種第三種都有打 但沒特別強調"不一樣喔 不一樣喔" 05/12 23:18
loveme00835:簡單這樣看 int *ptr; 就是在告訴你 ptr 用 *取值出 05/12 23:26
Savate:喔喔 @@ 05/12 23:27
yuanyu90221:int *ptr; 的意思是宣告 ptr為指向整數的指標 05/12 23:27
loveme00835:來的東西是 int, 要把 *跟int合起來看也是可以 05/12 23:27
yuanyu90221:ptr存的值是某個整數的位址 05/12 23:28
loveme00835:int **ptr; 也可以解讀成, 對ptr兩次取值出來的型態是 05/12 23:29
Savate:嗯嗯 謝謝 ^^ 05/12 23:29
loveme00835:int, 而 int* *ptr; 這樣來看就是說一次取值是int* 05/12 23:29
yuanyu90221:XD l大推文好快 05/12 23:30
loveme00835:不好意思斷到 ˊˋ 05/12 23:31
Savate:總之謝謝了 ^^ 我以後就知道了 05/12 23:32
yuanyu90221:沒關係 我也不小心斷到你的了 sorry 05/12 23:32
yuanyu90221:哈 l大講解的好詳細呀 05/12 23:32
x000032001:3的方法是因為要告訴編譯器 你宣告了指標 05/13 18:34
gg1122:謝謝 05/13 22:09