Re: [問題] 奇怪的指標一問

看板C_and_CPP作者 (我要加入劍道社!)時間14年前 (2010/10/26 04:29), 編輯推噓10(10015)
留言25則, 10人參與, 最新討論串2/2 (看更多)
※ 引述《fcouple (人生啊…)》之銘言: : 遇到的問題: (題意請描述清楚) : 各位,小弟有些問題想請教。 : 問題一 : int*(*(*(*x)())[10])(); : 這句是在表達什麼。 我真的好想知道拿這個問題問學生的老師童年生活是怎麼過的... 1. int*(*x)(); // x 是 pointer to function, // 而該 function 會回傳 pointer to int 2. XXX (*y)[10]; // y 是 pointer to array of XXX 把 1. 代進 2. 的 XXX 就會變成: 3. int*(*(*x)())[10]; // x 是 pointer to array of function pointer // 而這些 function 都會回傳 pointer to int 然後再把 3. 代換掉 1. 裡面的 int 4. int*(*(*(*x)())[10])(); // x 是 pointer to function,而該 function 會回傳 // pointer to array of function,而這個回傳陣列中 // 的 function 都會回傳 pointer to int 就算是長門●希也不會寫出這種程式碼 : 問題二 : 若我想宣告多個指標變數 : int* a, b, c; : 會變成只有 a 是指標,b、c 是 int,有什麼「簡潔語法」能夠讓我 : 宣告多個指標變數嗎? : 底下這個方法不能接受,我要a、b、c…等多個有意義的名字。 : int *x[3]; : 這不是簡潔的語法: : int *a; : int *b; : int *c; : 請指教 typedef int* int_ptr; int_ptr a, b, c; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.15.163 ※ 編輯: littleshan 來自: 114.32.15.163 (10/26 12:31)

10/26 22:46, , 1F
推, 問題一那個真的是不知道有什麼好問的~_~
10/26 22:46, 1F

10/26 22:49, , 2F
最近這種題目很流行,我這兩個月已經是第十三次見到了。
10/26 22:49, 2F

10/26 22:52, , 3F
還有故意騙你的,像是在 x 右邊多一組括號,就變成函式。
10/26 22:52, 3F

10/26 22:53, , 4F
是開學了嗎XD 很想問正常情況什麼時候會寫這種宣告~_~
10/26 22:53, 4F

10/26 22:55, , 5F
騙你是呼叫預設建構子嗎 XD
10/26 22:55, 5F

10/27 08:50, , 6F
出題者適合當混亂code大賽教練(誤
10/27 08:50, 6F

10/27 09:06, , 7F
10/27 09:06, 7F

10/27 15:51, , 8F
長門 \^o^/ 長門 \^o^/
10/27 15:51, 8F

10/27 16:51, , 9F
我蠻懶的都這樣寫, int *a, *b, *c;
10/27 16:51, 9F

10/27 20:35, , 10F
\長門/\長門/\長門/\長門/\長門/
10/27 20:35, 10F

10/28 09:25, , 11F
littleshan先生,謝謝你。
10/28 09:25, 11F

10/28 09:31, , 12F
回一樓,問題一本來是問有幾個指標,這是陷阱題目,我自己
10/28 09:31, 12F

10/28 09:32, , 13F
用compiler試出答案,但我反問自己,若要同時宣告三個指標
10/28 09:32, 13F

10/28 09:32, , 14F
該怎麼寫才精簡,因為陷入迷思,才想不出來,但看了答案後
10/28 09:32, 14F

10/28 09:33, , 15F
就恍然大悟了,你沒看到背後的前因後果,就這樣講話,讓我
10/28 09:33, 15F

10/28 09:33, , 16F
看了難過許久,有必要嗎?
10/28 09:33, 16F

10/28 10:29, , 17F
這樣就難過許久...有誤會出來講清楚就好,成熟點
10/28 10:29, 17F

10/28 22:51, , 18F
Err~~砂鍋大的誤會啊! 那句推文是呼應l大文裡寫的話, 是
10/28 22:51, 18F

10/28 22:51, , 19F
說這種題目不知道有什麼好出的Orz 如果造成原原po的誤解
10/28 22:51, 19F

10/28 22:52, , 20F
讓您感到不愉快, 先在此鄭重道歉....<(_ _)>
10/28 22:52, 20F

10/28 22:52, , 21F
至於何出此言, 實務上這樣的宣告通常都會經過幾層型態的
10/28 22:52, 21F

10/28 22:53, , 22F
包裝(幾個typedef宣告), 要真的看到那一串出現, 只怕是
10/28 22:53, 22F

10/28 22:54, , 23F
哪裡撞到了compiler error了由compiler解出來argu你才看
10/28 22:54, 23F

10/28 22:55, , 24F
得到, 實在沒有必要真的寫出那樣子晦塞難懂的code~_~
10/28 22:55, 24F

10/28 22:57, , 25F
當然, 有辦法拆解的如庖丁解牛般容易, 也很屌就是Orz
10/28 22:57, 25F
文章代碼(AID): #1Cnbad2A (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Cnbad2A (C_and_CPP)