Re: [問題] 關於c語言指標的問題

看板C_and_CPP作者 (小兄弟阿哲)時間14年前 (2010/05/30 13:46), 編輯推噓0(007)
留言7則, 5人參與, 最新討論串2/3 (看更多)
※ 引述《stator (別急著吃棉花糖)》之銘言: : 各位c語言前輩好 : 小弟在寫考古題時遇到幾題問題,希望能請各位前輩指教 : struct student{ : char *last_name : int student_id : char grade; : }; : struct student tmp, *p=&tmp; : tmp.grade='A'; : tmp.last_name="laugero"; : 則下列運算結何者錯誤? : (a)tmp.last_name為Laugero : (b)*p-->last_name+1為a : (c)*(p-->last_name+2)為u : 答案是b : 想請問b和c有什麼不一樣呢? : 我知道的是*p-->last_name是看第一個字母為L,那p-->last_name+2是什麼呢? : 謝謝 http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B "->" 的優先度高於"*" 所以 *p->last_name 和 *(p->last_name) 是一樣的 而"*" 比"+"(addition )的優先度高 所以會先做* (已修改) 也就是說 *p->last_name+1 == (*p->last_name)+1 (*p->last_name) == last_name[0] == 'l' 'l'+1 = 'm' (見ASCII表) 所以(b)為m 而 *(p->last_name+2) == last_name[0+2] == u -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.212.238

05/30 14:22, , 1F
謝謝g大,觀念講的很詳細,要不然不知->是優先於*
05/30 14:22, 1F

05/30 17:38, , 2F
* (deref) 比 + (binary plus) 高....
05/30 17:38, 2F

05/30 17:38, , 3F
要仔細看你的符號是什麼意思
05/30 17:38, 3F

05/30 17:38, , 4F
你說的和 * (deref) 一樣的 + 是 unary plus
05/30 17:38, 4F

05/30 19:11, , 5F
L大補充了~ 同樣符號有時功用不同,優先度也不同 :P
05/30 19:11, 5F
※ 編輯: guam 來自: 140.113.212.238 (05/30 19:17)

05/30 19:37, , 6F
那我也問個問題,什麼是overloadable?
05/30 19:37, 6F

05/30 21:58, , 7F
樓上知道C++的operator overloading嗎?
05/30 21:58, 7F
文章代碼(AID): #1C0Vkyuq (C_and_CPP)
文章代碼(AID): #1C0Vkyuq (C_and_CPP)