作者kxdejavu (土城馮迪索)
看板TKU_EE_92C
標題Fw: [問卦] 怎麼跟剛學程式的人解釋指標?
時間Tue Oct 25 10:00:14 2016
※ [本文轉錄自 Gossiping 看板 #1O3bPAMu ]
作者: holydc (のヮの) 看板: Gossiping
標題: Re: [問卦] 怎麼跟剛學程式的人解釋指標?
時間: Tue Oct 25 02:43:19 2016
※ 引述《zzzz8931 (肥宅)》之銘言:
: 寫過程式的人多少聽過指標這東西,
: 大家當初學的時候講者都怎麼介紹指標的啊?
: 剛踏入 C程式語言的堂妹問我這個問題真的不知道怎麼回,
: 請問怎麼跟剛學程式的人解釋指標?
「你是不是有什麼事情瞞著我」
下班一回到家,就看到 C++ 對我怒目而視
「怎麼會呢,我們之間是沒有秘密的呀」
我一邊換上居家服,一邊敷衍回應
「那你說說看這是怎麼回事」
C++ 打開我的 GitHub 帳號,指著我最近綠油油的一片
「我還想說你最近這麼愛 template,原來是跟 JavaScript 有一腿啊」
我頓時語塞,因為我近來的 contribution 的確集中在 JavaScript project
不過我隨即反擊
「我以前寫 OOP 的時候你也懷疑我跟 Java,妳到底想要我怎麼樣」
C++ 似乎是有點被我嚇到,愣了一下之後對我吼道
「我只是想要你這個不中用的廢物爭氣點!」
你這個不中用的廢物!
這句話彷彿對我的腦門揮下一記重擊
是啊,我就是廢物
code review 被電爆,pull request 也被 reject
更不用說還有做不完的 feature 和解不完的 bug
就連經過茶水間也聽到女同事在說「欸欸那個肥宅 holydc 好噁心喔」「真~的~」
於是,我感覺到頭腦裡有什麼東西斷掉了
失去理智的我把 C++ 推倒在 Visual Studio 上,並且把她的原始檔拘束起來
「你…你想做什麼!?快放開我!」
C++ 奮力抵抗,但是這樣卻更激起了我的獸性
「啊啊…妳果然還是最美的,我果然還是最愛妳了啊」
int main() {
我看著 C++ 毫無防備的進入點…main 函數,情不自禁地又聞又舔
「對了,我有準備一個可以讓妳很舒服的東西,這是妳姊姊 C 最喜歡的玩具」
「那是…啊」
void *a;
我冷不防地把指標放入 C++ 的函數裡面,受到刺激的 C++ 也不禁發出一聲嬌喘
*((char *)a) = -1;
「啊…等一下…嗯…指標還沒…」
C++ 一邊掙扎一邊說著,卻被我毫不留情地打斷
「哦,看來 1 byte 沒問題嘛,那就繼續放囉」※1
*((short *)a) = -1;
「嗚…不要…」
到剛才為止都還盛氣凌人的 C++,這時臉上泛著潮紅,表情開始扭曲
但是我當然不可能就此罷手
*((int *)a) = -1;
「已經…滿了…」
C++ 哀求著說
「少裝死了,void * 本來就塞得進 int,接下來才是重頭戲呢」※1
*((long long *)a) = -1;
「啊…啊…」
此時 C++ 已經只能呻吟,腰部因為強烈的刺激而反弓起來
「真是乖孩子,真虧妳能撐到現在呢」
我溫柔地擦去 C++ 額頭上的汗水
「接下來這個就是最後了」
struct Foo { char bar[1024]; };
「不可以不可以不可以不可以不可以,這個真的沒辦法…」
*((Foo *)a) = Foo();
「------------------------------!啊嘿」
只見 C++ 雙眼翻白,舌頭半吐,幾乎失去了意識
「哈哈哈,沒初始化的指標就變成各種形狀感覺怎麼樣啊」※2
「好過分…為什麼要做這種事」
C++ 哭喪著臉,身體止不住顫抖
「因為我想更加了解妳呀」
char *b = (char *)&a;
「…咦?」
「妳說說看我現在進到哪裡啦」
++b;
「嗚…」
「快說喔,不然我是不會停的喔」
++b;++b;--b;++b;++b;++b;--b;--b;++b;++b;--b;++b;++b;++b;++b;
「啊…嗯…是…return address…不能再進來了…拜託…」
C++ 極為羞恥地說出
「好吧,那今天就『到此』為止吧」
b = (char *)-1U;
「啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊」
我看著失神的 C++
胸口隨著紊亂的呼吸起伏,腹部還是不斷痙攣
四處飛濺的體液、唾液、汗液沾濕了整片文字編輯器
整個 IDE 充滿著淫靡的氣息
「我什麼都願意做…拜託你原諒我」
回過神的 C++ 氣若游絲,苦苦哀求
「好吧,那妳就讓我聽聽最悅耳的哭喊聲…」
delete _
「咦…騙人…不會吧…這樣真的會壞掉的!」
「那就壞掉吧」
delete a;
delete b;
return 0;
}
「不要------------------------------!」
「哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈」
「…dc」
嗯?什麼聲音?
「喂,holydc」
我睜開眼睛,尋找聲音的來源,原來是公司主管
「明天發表會要 demo 的版本弄得怎樣了?」
「我們能不能拿到新一輪的融資就看這次了,好好加油啊」
我揉一揉眼睛,看了看時間,凌晨兩點四十三分,Redmine 上面還有六張票
「好,繼續 debug 吧!」
※1 建置環境 Visual Studio 2015 on Windows 10 64-bit
sizeof(char) = 1
sizeof(short) = 2
sizeof(int) = 4
sizeof(long long) = 8
sizeof(void *) = 4
※2 其實早就會觸發 access violation 了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.195.150
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Gossiping/M.1477334602.A.5B8.html
1F:→ avgirl: 3Q~END 10/25 02:43
2F:推 flysonics: 好吧我有笑 給你推 10/25 02:47
3F:推 luke90055: 有笑有推 10/25 02:49
4F:推 pc240: 幹,U質好文 10/25 02:51
5F:推 kuinochi: 靠杯喔 10/25 02:52
6F:推 ura1210: 壞了 10/25 02:55
7F:噓 iXXXXGAY5566: e04 看不懂啦 10/25 02:58
8F:推 chuegou: 幹 不要寫髒code 10/25 03:00
9F:推 jackydie1007: XDDDD 10/25 03:02
10F:推 arvsynd: XD 10/25 03:04
11F:推 someLetters: 看了都笑了,不過第一步就程式爆炸了吧 10/25 03:09
12F:推 Vincent8026: 讚讚 10/25 03:10
13F:推 otaku5566: 好!好!好! 我先看stack overflow打個幾槍好了 10/25 03:10
14F:推 AreLies: U資文章 10/25 03:18
15F:推 JeanSijhih: 會笑死 10/25 03:21
16F:推 chrisgod: 幹xDD 10/25 03:21
17F:→ JeanSijhih: 不過這該算科幻?還是奇幻?還是動作片啊 10/25 03:22
18F:推 xjisix: 推 10/25 03:25
19F:推 kaishu: 亂插指標 這樣對嗎XD 10/25 03:26
20F:推 alvinpon: ...,你有夠宅。 10/25 03:30
怎麼會呢 o'_'o
21F:推 point09247: 算獵奇吧? 10/25 03:33
22F:推 newpuma: = = 10/25 03:35
23F:推 lokilin: 半夜醒來看到這篇也算是值得了 10/25 03:36
24F:推 tsoahans: .....三小 10/25 03:37
25F:推 PRME: 阿嘿顏 10/25 03:51
※ 編輯: holydc (111.248.195.150), 10/25/2016 03:51:56
26F:→ KNVSEOC: 寫程式就寫程式 不要欺負它啦XD 10/25 03:51
27F:推 xup6y3ru04: 神作... 10/25 03:52
28F:推 kungfutofu: XXD 10/25 03:55
29F:推 ascg5566211: 哈哈哈 10/25 03:59
30F:推 speakristen: 厲害厲害 10/25 04:00
31F:推 KeySabre: XDDDDDDD 10/25 04:10
32F:推 error123: 幹我看了什麼 10/25 04:21
33F:推 abc77736: 神作XDDDDDD 10/25 04:42
34F:推 kusodidi: 87分不能在多了 10/25 04:43
35F:推 jjvh: 原來C不是媽媽嗎 10/25 04:49
36F:推 RLH: 哈哈 10/25 05:01
37F:推 williexdgc77: 啊啊啊 要當機了 10/25 05:53
38F:推 ernova831: 幹你這樣要我以後怎麼好好的寫程式.... 10/25 05:53
39F:推 fool5566: 優質好文 10/25 06:01
40F:推 xatier: 我看了三小 XDDDDDDDDDDDDDDD 10/25 06:06
41F:推 loui123: 硬惹 10/25 06:15
42F:推 july81212: XDD 10/25 06:19
43F:推 yash: 看不懂啊啊啊啊 10/25 06:50
44F:推 xingwhitecat: 幹這啥啊XDDDDD 10/25 06:57
45F:推 konanno1: 。。。融不到資了 10/25 07:00
46F:推 PhySeraph: 幹 這是三小 10/25 07:02
47F:推 olalo: 靠杯,深夜發這種殺小奇幻西斯文啦 10/25 07:09
48F:推 MiaoXin: 太專業看不懂推 10/25 07:10
49F:推 Arbin: 不要亂玩C++辣XDDD 10/25 07:20
50F:推 a7708101: 好像某些HG對話喔 QQQQQQ 10/25 07:27
51F:推 WuZun: 為啥64bit void pointer大小會是4 byte? 10/25 07:28
52F:→ brke: 雲端情人? 10/25 07:31
53F:推 yannicklatte: 供三小 10/25 07:34
54F:推 pzyc79: 好險我看不懂 10/25 07:36
55F:推 lolpklol0975: 潮 10/25 07:43
56F:推 kiwi0530: 你真的確定可以這樣教嗎?XD 10/25 07:45
57F:推 vn509942: 近期最佳優文~!!!! 10/25 07:48
58F:→ ray60110: .... 10/25 07:48
59F:推 abian: 不要玩程式 (? 10/25 07:54
60F:推 NoteEdge: 這篇文組看不懂 好險高一老師有教c++ 10/25 08:02
61F:推 LEDtorch: 看不懂QQ 10/25 08:21
62F:推 shadowmirror: 師爺翻譯翻譯 10/25 08:44
63F:推 b0920075: 先去廁所尻一槍 10/25 08:45
64F:推 UDK0821: U質好文 10/25 08:49
65F:推 rioslo: 甘 看不懂啦 10/25 08:50
66F:推 hcwang1126: 幹 10/25 08:54
67F:→ TsaoCCFGOGO: code 部份跳過不看真的是優質好文 XDD 10/25 08:55
68F:推 jtmh: 神!我喜歡XDD 10/25 08:55
69F:推 hunder31: 攻三小 XDDDDDDDD 10/25 09:06
70F:噓 nasvacta: 看不懂啦 10/25 09:10
71F:推 Aqery: 我到底看了三小 10/25 09:11
72F:推 M013: 推推 10/25 09:12
73F:推 AboveTheRim: 翻成英文發到stackflow上會紅 10/25 09:13
74F:→ GGinler: 看不懂 10/25 09:16
75F:推 purpfish: U質文 10/25 09:16
76F:推 vi000246: 我看了殺洨 10/25 09:17
77F:推 rocwild: 優質文章 10/25 09:22
78F:推 manic7058463: … 10/25 09:24
79F:推 andy5656: 推推 10/25 09:26
80F:推 pcchou: 這很猛wwwww 10/25 09:27
81F:推 jackie0804: 推 10/25 09:30
82F:推 bjj: 我到底看了什麼…… 10/25 09:34
83F:推 max8568: ............... 10/25 09:40
84F:推 aks74: 真的是u值 10/25 09:43
85F:推 lunaX19: 不懂程式的我 到底看了什麼Orz 10/25 09:43
86F:推 Argos: 給想走程式這條路的小弟弟小妹妹們 看看這個薯贖 多想幾分 10/25 09:44
87F:→ Argos: 鐘 你的人生或許會不一樣 >_O b 10/25 09:44
88F:推 cocoyan: 神作XD 10/25 09:49
89F:推 husano896: 今天你淫了XDDDD 10/25 09:50
90F:推 asg269: U文推 10/25 09:51
91F:推 twptwd: 神作 u文 10/25 09:51
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: kxdejavu (42.73.34.227), 10/25/2016 10:00:14
92F:→ lu760423 : 給推給推 03/12 17:06
93F:推 LibrainAir : 優質 03/15 21:29