C入門1:Hello World

1. 第一個C語言程序:Hello World

開始的第一個程序是一個最簡單的程序,也就是最經(jīng)典的Hello World程序瑞躺,它的功能為打印出Hello World。程序的內(nèi)容非常簡單镐捧,也是C語言編寫程序的基本結構框架支救。

1.示例

1.創(chuàng)建文件hello.c

vim hello.c
  1. hello.c下如下面代碼,并保存贤斜。
#include <stdio.h>

main() {
  printf("hello world\n");
}
  1. 編譯hello.c
gcc hello.c

編譯成功后策吠,自動生成a.out文件。

  1. 運行a.out
./a.out

輸出

hello world

2. 說明

2.1 代碼說明

1.#include <stdio.h>是一個文件瘩绒,在C語言中稱為頭文件猴抹,里面有些函數(shù)提供給我們直接使用。

  1. main()稱為主函數(shù)锁荔,是C語言中默認的入口函數(shù)蟀给,在默認情況下運行程序時系統(tǒng)會先調(diào)用程序中的main函數(shù)。一般情況下,一個完整的程序中主函數(shù)是必須的跋理。

    C語言的函數(shù)表示方法與數(shù)學函數(shù)表示方法相似择克,例如:sin(x)

  2. main后面的()表示函數(shù)參數(shù)列表前普。這里使用了空的參數(shù)列表()肚邢。
  3. main()后面的{}被稱為函數(shù)體,定義函數(shù)的主要操作汁政。
  4. printf("hello world\n");是一條C語言執(zhí)行命令道偷,被稱為語句,每條語句都以英文分號;結束记劈。主要作用是在屏幕上打印hello world勺鸦。其中printf()是打印函數(shù),它定義在頭文件stdio.h中目木。

    語句相當于漢語中的一句話换途,只不過在漢語中是以句號結尾刽射。

  5. 使用雙引號"包裹的一段文字军拟,被稱為字符串,這里是在終端需要輸出的內(nèi)容誓禁。
  6. \n是一個換行符懈息,主要是在打印hello world后自動換行。

試一試

  1. 把字符串中的Hello world改成你好世界會有什么效果摹恰?
  2. 在字符串中刪除\n或者多添加幾個\n辫继,會有什么效果?
  3. 如果沒有#include <stdio.h> 俗慈,編譯會得到什么錯誤姑宽?
  4. 如果沒有main()函數(shù),編譯會得到什么錯誤闺阱?

在C語言中炮车,除去必要的空格外,空行和空格往往不是必須的酣溃,它的作用是為了提高代碼的可讀性瘦穆。例如寫成這樣也是可以的。

#include <stdio.h>
main(){printf("hello world\n");}

好的代碼風格是縮進整齊赊豌,每個語句一行难审,適當留空行。

2.2 編譯執(zhí)行說明

在Hello World示例中亿絮,有兩個文件hello.ca.outhello.c被稱作源文件(或者源程序/代碼),a.out被稱為可執(zhí)行文件(或者程序)派昧。二者有如下區(qū)別:

明解C語言

上面使用gcc命令就是把人便于讀寫的源文件翻譯成機器可以理解可執(zhí)行文件黔姜,這個過程被稱作編譯,所以蒂萎,gcc經(jīng)常被稱作編譯器秆吵。

主要術語

小歷史

  • Hello World梗的由來

1978年,在K&R(Brain Kernighan和Dennis Ritchie)合作撰寫的C語言圣經(jīng)《C程序設計語言》(The C Programming Language)中五慈,使用了"hello,world"句式纳寂,作為開篇第一個程序。后來泻拦,各種編程語言各類教材都是以hello world做為開篇毙芜。

布萊恩·柯林漢(Brain Kernighan)
UNIX之父 丹尼斯·里奇(Dennis Ritchie )

湯普遜創(chuàng)造出了名為Bon的程式語言。湯普遜花了一個月的時間開發(fā)了全新的操作系統(tǒng)争拐,UNiplexed Information and Computing System(UNICS)腋粥,可執(zhí)行于PDP-7機器之上,后來改稱為UNIX架曹。第一版的Unix就是基于B語言來開發(fā)的隘冲。Bon語言在進行系統(tǒng)編程時不夠強大,所以Thompson和Ritchie對其進行了改造绑雄,并與1971年共同發(fā)明了C語言展辞。1973年Thompson和Ritchie用C語言重寫了UNIX。安裝于PDP-11的機器之上万牺。他也是編程語言Go的共同作者罗珍。與丹尼斯·里奇同為1983年圖靈獎得主。

肯·湯普遜(Ken Thompson)
  • C語言版本
    C語言主要分為幾個版本:Old Style C杏愤、C89靡砌、C99和C11。其中珊楼,C89通殃、C99和C11是標準語言規(guī)范,現(xiàn)在廣泛使用的是C99厕宗。
    K&R的《C程序設計語言》(The C Programming Language)是第一本關于C語言著作画舌,也是最經(jīng)典的一本C語言著作,早期版本使用早期的Old Style C編寫風格已慢,最新版本改用標準C89風格曲聂。在C89中,hello.c應該寫成:
#include <stdio.h>

int main() {
  printf("hello world\n");
  return 0;
}

2. C語言特點及其運行環(huán)境

1.1 C語言特點

  1. 語言簡潔佑惠、緊湊朋腋,使用方便靈活齐疙;
  2. 運算符豐富;
  3. 數(shù)據(jù)類型豐富旭咽,具有現(xiàn)代語言的各種數(shù)據(jù)結構贞奋;
  4. 具有結構化的控制語句;
  5. 語法限制不太嚴格穷绵,程序設計自由度大轿塔;
  6. C語言允許直接訪問物理地址,能進行位(bit)操作仲墨,能實現(xiàn)匯編語言的大部分功能勾缭,可以直接對硬件進行操作;
  7. 生成目標代碼質(zhì)量高目养,程序執(zhí)行效率高俩由;
  8. 用C語言編寫的程序可移植性好(與匯編語言比)。

這是跟C語言誕生之前的語言的比較混稽。

1.2 C語言運行環(huán)境

No. IDE/編譯器 OS
1 Microsoft Visual C++/Microsoft Visual Studio Windows
2 Code::Blocks Linux
3 gcc Windows/Linux
4 clang Windows/Linux
5 eclipse Windows/Linux

2. C語言和面向?qū)ο笳Z言C++采驻、Java的比較

  1. C語言是經(jīng)典的面向過程的編程語言,編程入門一般都學C語言以了解編程以及鍛煉邏輯思維能力匈勋,在一些跟硬件比較緊密的編程中也經(jīng)常用到礼旅。
  2. C++是在C語言的基礎上加入了面向?qū)ο蟮母拍睿蔀榛旌闲兔嫦驅(qū)ο笳Z言洽洁,功能強大痘系,但難度也大。
  3. Java是在C++的基礎上進行改進的饿自,摒棄了一些C++的不足之處汰翠,語法跟C++很像,它是運行在Java虛擬機上昭雌,所以可以跨平臺复唤,一處編譯,到處執(zhí)行烛卧。

3. 注釋

在代碼中有些不用于執(zhí)行佛纫,僅僅作為代碼說明的文本,稱為注釋总放。
在C語言中呈宇,使用/*作為注釋的開始,*/作為注釋的結束局雄。例如

/* 這是注釋 */

也可以寫作多行

/* 這
是
注
釋
*/

注釋主要提高代碼可讀性甥啄,常用來說明代碼功能以及實現(xiàn)邏輯。
上面的注釋稱為多行注釋炬搭。在C99中蜈漓,支持單行注釋穆桂,只需要//作為注釋開頭,注釋只能對單行起作用迎变。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末充尉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子衣形,更是在濱河造成了極大的恐慌,老刑警劉巖姿鸿,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谆吴,死亡現(xiàn)場離奇詭異,居然都是意外死亡苛预,警方通過查閱死者的電腦和手機句狼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來热某,“玉大人腻菇,你說我怎么就攤上這事∥舨觯” “怎么了筹吐?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長秘遏。 經(jīng)常有香客問我丘薛,道長,這世上最難降的妖魔是什么邦危? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任洋侨,我火速辦了婚禮,結果婚禮上倦蚪,老公的妹妹穿的比我還像新娘希坚。我一直安慰自己,他們只是感情好陵且,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布裁僧。 她就那樣靜靜地躺著,像睡著了一般滩报。 火紅的嫁衣襯著肌膚如雪锅知。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天脓钾,我揣著相機與錄音售睹,去河邊找鬼。 笑死可训,一個胖子當著我的面吹牛昌妹,可吹牛的內(nèi)容都是我干的捶枢。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼飞崖,長吁一口氣:“原來是場噩夢啊……” “哼烂叔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起固歪,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蒜鸡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后牢裳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逢防,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年蒲讯,在試婚紗的時候發(fā)現(xiàn)自己被綠了忘朝。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡判帮,死狀恐怖局嘁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晦墙,我是刑警寧澤悦昵,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站偎痛,受9級特大地震影響旱捧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜踩麦,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一枚赡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谓谦,春花似錦贫橙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至才顿,卻和暖如春莫湘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背郑气。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工幅垮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尾组。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓忙芒,卻偏偏與公主長得像示弓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子呵萨,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 第一章:編譯和安裝SCons第二章:簡單編譯第三章:編譯相關的一些事情第四章:編譯和鏈接庫文件第五章:節(jié)點對象第六...
    仙靈兒閱讀 11,760評論 0 3
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,764評論 0 38
  • 一奏属、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡單分配策略的問題地址空間不隔離內(nèi)存使用效率低程序運行的地址不確定 關于...
    SeanCST閱讀 7,784評論 0 27
  • 如果js想要實現(xiàn)繼承的話,就要調(diào)用父類call方法潮峦,把this傳進去 call和apply
    卑微小利閱讀 118評論 0 0
  • 在我們吉林六姐妹群里囱皿,大家為我和李博的文章能在濕地推送點贊,我很受鼓舞忱嘹。我同時我也看到語文濕地二群里劉忠源老師找我...
    聆聽色彩閱讀 263評論 0 1