Re: [問卦] 怎麼跟剛學程式的人解釋指標?消失
※ 引述《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://www.ptt.cc/bbs/Gossiping/M.1477334602.A.5B8.html
→
10/25 02:43, , 1F
10/25 02:43, 1F
推
10/25 02:47, , 2F
10/25 02:47, 2F
推
10/25 02:49, , 3F
10/25 02:49, 3F
推
10/25 02:51, , 4F
10/25 02:51, 4F
推
10/25 02:52, , 5F
10/25 02:52, 5F
推
10/25 02:55, , 6F
10/25 02:55, 6F
噓
10/25 02:58, , 7F
10/25 02:58, 7F
推
10/25 03:00, , 8F
10/25 03:00, 8F
推
10/25 03:02, , 9F
10/25 03:02, 9F
推
10/25 03:04, , 10F
10/25 03:04, 10F
推
10/25 03:09, , 11F
10/25 03:09, 11F
推
10/25 03:10, , 12F
10/25 03:10, 12F
推
10/25 03:10, , 13F
10/25 03:10, 13F
推
10/25 03:18, , 14F
10/25 03:18, 14F
推
10/25 03:21, , 15F
10/25 03:21, 15F
推
10/25 03:21, , 16F
10/25 03:21, 16F
→
10/25 03:22, , 17F
10/25 03:22, 17F
推
10/25 03:25, , 18F
10/25 03:25, 18F
推
10/25 03:26, , 19F
10/25 03:26, 19F
推
10/25 03:30, , 20F
10/25 03:30, 20F
怎麼會呢 o'_'o
推
10/25 03:33, , 21F
10/25 03:33, 21F
推
10/25 03:35, , 22F
10/25 03:35, 22F
推
10/25 03:36, , 23F
10/25 03:36, 23F
推
10/25 03:37, , 24F
10/25 03:37, 24F
推
10/25 03:51, , 25F
10/25 03:51, 25F
※ 編輯: holydc (111.248.195.150), 10/25/2016 03:51:56
→
10/25 03:51, , 26F
10/25 03:51, 26F
推
10/25 03:52, , 27F
10/25 03:52, 27F
推
10/25 03:55, , 28F
10/25 03:55, 28F
推
10/25 03:59, , 29F
10/25 03:59, 29F
推
10/25 04:00, , 30F
10/25 04:00, 30F
推
10/25 04:10, , 31F
10/25 04:10, 31F
推
10/25 04:21, , 32F
10/25 04:21, 32F
推
10/25 04:42, , 33F
10/25 04:42, 33F
推
10/25 04:43, , 34F
10/25 04:43, 34F
推
10/25 04:49, , 35F
10/25 04:49, 35F
推
10/25 05:01, , 36F
10/25 05:01, 36F
推
10/25 05:53, , 37F
10/25 05:53, 37F
還有 126 則推文
還有 1 段內文
推
10/25 15:37, , 164F
10/25 15:37, 164F
推
10/25 15:46, , 165F
10/25 15:46, 165F
推
10/25 16:08, , 166F
10/25 16:08, 166F
推
10/25 16:18, , 167F
10/25 16:18, 167F
推
10/25 16:35, , 168F
10/25 16:35, 168F
推
10/25 16:38, , 169F
10/25 16:38, 169F
推
10/25 16:46, , 170F
10/25 16:46, 170F
推
10/25 16:48, , 171F
10/25 16:48, 171F
推
10/25 17:05, , 172F
10/25 17:05, 172F
推
10/25 17:05, , 173F
10/25 17:05, 173F
推
10/25 17:26, , 174F
10/25 17:26, 174F
推
10/25 17:29, , 175F
10/25 17:29, 175F
推
10/25 18:01, , 176F
10/25 18:01, 176F
推
10/25 19:32, , 177F
10/25 19:32, 177F
推
10/25 19:51, , 178F
10/25 19:51, 178F
→
10/25 20:07, , 179F
10/25 20:07, 179F
推
10/25 20:32, , 180F
10/25 20:32, 180F
推
10/25 21:08, , 181F
10/25 21:08, 181F
推
10/25 21:19, , 182F
10/25 21:19, 182F
推
10/25 21:37, , 183F
10/25 21:37, 183F
推
10/25 21:43, , 184F
10/25 21:43, 184F
→
10/25 22:33, , 185F
10/25 22:33, 185F
→
10/25 22:34, , 186F
10/25 22:34, 186F
→
10/25 23:45, , 187F
10/25 23:45, 187F
推
10/26 00:39, , 188F
10/26 00:39, 188F
推
10/26 00:41, , 189F
10/26 00:41, 189F
推
10/26 07:40, , 190F
10/26 07:40, 190F
推
10/26 11:28, , 191F
10/26 11:28, 191F
推
10/26 11:37, , 192F
10/26 11:37, 192F
推
10/26 12:00, , 193F
10/26 12:00, 193F
推
10/26 18:57, , 194F
10/26 18:57, 194F
推
10/26 22:03, , 195F
10/26 22:03, 195F
推
10/26 23:20, , 196F
10/26 23:20, 196F
推
10/27 02:29, , 197F
10/27 02:29, 197F
推
10/27 07:43, , 198F
10/27 07:43, 198F
推
10/27 10:42, , 199F
10/27 10:42, 199F
推
10/27 17:05, , 200F
10/27 17:05, 200F
推
10/27 20:35, , 201F
10/27 20:35, 201F
推
10/27 22:07, , 202F
10/27 22:07, 202F
推
12/20 00:49, , 203F
12/20 00:49, 203F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 5 篇):