- 征服C指針(第2版)
- (日)前橋和彌
- 1391字
- 2021-09-15 13:12:30
前言
這是一本關(guān)于 C 語言的數(shù)組和指針的書。
可能有很多人感到納悶:“都什么年代了,還出版 C 語言的書。”
C 語言確實(shí)是非常陳舊的語言。去書店逛逛就會(huì)看到,C 語言的書鋪天蓋地,其中跟本書一樣專門講解指針的書也有很多。同類書一本接一本地出版,也恰好證明 C 指針多么難掌握。事實(shí)上,上網(wǎng)一搜就會(huì)看到,“C 指針好難啊”的抱怨比比皆是。
那些為 C 指針感到苦惱的讀者,請(qǐng)聽我一言:
理解不了 C 指針不是你的錯(cuò),是 C 語言的語法太坑人了,僅此而已!
特別是 C 語言中有關(guān)聲明的語法,實(shí)在是太奇葩了。既然是奇葩,那就要把它當(dāng)作奇葩來理解。但是,充斥在書店里的那些 C 語言書,即便是專門講解指針的,也沒有一本正面指出過這一點(diǎn)。
我也曾對(duì)數(shù)組和指針的相關(guān)語法感到非常糾結(jié)。
而我寫本書 2 的初衷,就是希望和我一樣曾為 C 指針感到苦惱的人,在閱讀本書時(shí),能夠發(fā)自內(nèi)心地感慨:“要是那個(gè)時(shí)候上天能讓我遇見這樣一本書,那該多好呀!”
2這里是指本書第 1 版,原版于 2001 年出版,中文版由人民郵電出版社于 2013 年 2 月出版。——編者注
然而,本書第 1 版是 2001 年發(fā)行的,距今已將近 17 年 3。雖說 C 語言是古老的(成熟的)語言,變化很慢,但畢竟已經(jīng)過去 17 年了,圍繞 C 語言的大環(huán)境多少還是有些變化的。2001 年,剛剛制定不久的 ISO-C99 還沒有完全替代原來的 C 語言標(biāo)準(zhǔn),但如今已經(jīng)擁有了相當(dāng)數(shù)量的使用者。2011 年,新的標(biāo)準(zhǔn) C11 也發(fā)布了。同時(shí),計(jì)算機(jī)也在不斷發(fā)展,64 位操作系統(tǒng)已成為主流。另外,隨著互聯(lián)網(wǎng)的普及,安全問題也日益突出。
3這里是指原書第 1 版距原書第 2 版上市(2017 年 12 月)的時(shí)間。——編者注
針對(duì)這些變化,第 2 版相應(yīng)地對(duì)內(nèi)容進(jìn)行了修訂。
目前市面上的 C 語言入門書,在講解指針時(shí)往往使用一些非常教科書式的生硬例子來說明。看多了這些例子,初學(xué)者多半會(huì)問:“為什么非得要指針這種東西呀?”
然而,在 C 語言編程中,是不可能避開指針的。實(shí)際上,現(xiàn)實(shí)世界里所用的程序也確實(shí)運(yùn)用了指針。
除了 C 語言(奇葩的)語法之外,本書還會(huì)對(duì)指針的實(shí)用方法進(jìn)行說明。
在閱讀本書的過程中,請(qǐng)注意以下幾點(diǎn)。
本書的讀者定位雖然是“在學(xué)習(xí) C 語言的過程中,在學(xué)到指針部分時(shí)遇到了困難”的人,但本書中也不乏一些高難度的內(nèi)容。
特別是對(duì)于初學(xué)者來說,不用非得從頭開始按順序閱讀,不完全弄清楚就不往下繼續(xù)。在遇到不太明白的地方時(shí),不要過分糾結(jié),先讀下去再說。
在閱讀時(shí)可以跳過某些章節(jié),但前言和第 0 章最好按順序閱讀。要是覺得第 2 章難,可以先搞懂第 3 章,要是第 3 章也看不懂,那就試著讀一下第 4 章——這種閱讀方式也是可行的。
在本書中,我會(huì)經(jīng)常指出一些“C 的問題點(diǎn)”和“C 的隨意性”。可能會(huì)有一些讀者認(rèn)為我比較討厭 C 語言。
恰恰相反,我認(rèn)為 C 是一門偉大的語言。倒不是因?yàn)槭裁础扒槿搜劾锍鑫魇被蛘摺吧岛鹾醯暮⒆硬趴蓯邸保且驗(yàn)?C 語言畢竟是在開發(fā)現(xiàn)場(chǎng)常年使用的語言,其實(shí)力非同一般。雖然長(zhǎng)得不太帥,但論才干,那絕對(duì)是“開發(fā)現(xiàn)場(chǎng)的老油條”——這就是我對(duì) C 語言的看法。
C 是一門實(shí)用的語言,現(xiàn)在依然值得學(xué)習(xí)。雖然我不希望看到閱讀本書的讀者厭惡 C 語言,但誰討厭什么,這是我無法左右的。
在本書寫作過程中,我得到了很多人的幫助。
感謝在百忙之中閱讀拙稿并給予寶貴意見的林毅老師、曾田哲之老師、兒島老師、梵天老師和丹羽健老師,以及耐心等待我修改原稿的技術(shù)評(píng)論社的熊谷裕美子老師,承蒙諸位的幫助,本書才得以付梓。在此,謹(jǐn)向他們致以深深的謝意。
前橋和彌
2017 年 10 月 29 日 21:58 J.S.T.
- Getting Started with Gulp(Second Edition)
- Leap Motion Development Essentials
- 薛定宇教授大講堂(卷Ⅳ):MATLAB最優(yōu)化計(jì)算
- Podman實(shí)戰(zhàn)
- 軟件架構(gòu):Python語言實(shí)現(xiàn)
- Linux Shell核心編程指南
- Java語言程序設(shè)計(jì)教程
- Kubernetes源碼剖析
- JavaScript應(yīng)用開發(fā)實(shí)踐指南
- 從0到1:HTML5 Canvas動(dòng)畫開發(fā)
- 大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)指導(dǎo)
- 交互式程序設(shè)計(jì)(第2版)
- Instant Apache Camel Messaging System
- 讓Python遇上Office:從編程入門到自動(dòng)化辦公實(shí)踐
- Extending Docker