1. 第一個C語言程序:Hello World
開始的第一個程序是一個最簡單的程序霍衫,也就是最經(jīng)典的Hello World程序,它的功能為打印出Hello World亚享。程序的內(nèi)容非常簡單劣欢,也是C語言編寫程序的基本結(jié)構(gòu)框架氯庆。
1.1.示例
1.創(chuàng)建文件hello.c
? ? ? ? ? ?vim hello.c
2.在hello.c下如下面代碼,并保存
????????#include <stdio.h>
? ? ? ? int main() {
? ????????????printf("hello world\n");
? ? ? ? }
3.編譯hello.c
????????gcc hello.c
編譯成功后衷恭,自動生成a.out文件此叠。
4.運行a.out
????????./a.out
輸出
????????hello world
1.2. 說明
1.2.1 代碼說明
1.#include <stdio.h>是一個文件,在C語言中稱為頭文件随珠,里面有些函數(shù)提供給我們直接使用拌蜘。
2.main()稱為主函數(shù)杆烁,是C語言中默認的入口函數(shù),在默認情況下運行程序時系統(tǒng)會先調(diào)用程序中的main函數(shù)简卧。一般情況下兔魂,一個完整的程序中主函數(shù)是必須的。
????????C語言的函數(shù)表示方法與數(shù)學函數(shù)表示方法相似举娩,例如:sin(x)析校。
3.main后面的()表示函數(shù)的參數(shù)列表。這里使用了空的參數(shù)列表()铜涉。
4.main()后面的{}被稱為函數(shù)體智玻,定義函數(shù)的主要操作。
5.printf("hello world\n");是一條C語言執(zhí)行命令芙代,被稱為語句吊奢,每條語句都以英文分號;結(jié)束。主要作用是在屏幕上打印hello world纹烹。其中printf()是打印函數(shù)页滚,它定義在頭文件stdio.h中。
語句相當于漢語中的一句話铺呵,只不過在漢語中是以句號裹驰。結(jié)尾。
6.使用雙引號"包裹的一段文字片挂,被稱為字符串幻林,這里是在終端需要輸出的內(nèi)容。
7.\n是一個換行符音念,主要是在打印hello world后自動換行沪饺。
在C語言中,除去必要的空格外闷愤,空行和空格往往不是必須的随闽,它的作用是為了提高代碼的可讀性。例如寫成這樣也是可以的肝谭。
#include <stdio.h>
main(){printf("hello world\n");}
好的代碼風格是縮進整齊掘宪,每個語句一行,適當留空行攘烛。
1.2.2 編譯執(zhí)行說明
在Hello World示例中魏滚,有兩個文件hello.c和a.out。hello.c被稱作源文件(或者源程序/代碼)坟漱,a.out被稱為可執(zhí)行文件(或者程序)鼠次。二者區(qū)別:
上面使用gcc命令就是把人便于讀寫的源文件翻譯成機器可以理解可執(zhí)行文件,這個過程被稱作編譯,所以腥寇,gcc經(jīng)常被稱作編譯器成翩。
主要術語
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)境
2.1 C語言特點
1.語言簡潔、緊湊涩蜘,使用方便靈活嚼贡;
2.運算符豐富;
3.數(shù)據(jù)類型豐富皱坛,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu)编曼;
4.具有結(jié)構(gòu)化的控制語句豆巨;
5.語法限制不太嚴格剩辟,程序設計自由度大;
6.C語言允許直接訪問物理地址往扔,能進行位(bit)操作贩猎,能實現(xiàn)匯編語言的大部分功能,可以直? ? ?接對硬件進行操作萍膛;
7.生成目標代碼質(zhì)量高吭服,程序執(zhí)行效率高;
8.用C語言編寫的程序可移植性好(與匯編語言比)蝗罗。
? 這是跟C語言誕生之前的語言的比較艇棕。
2.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
3. 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í)行进泼。
4. 注釋
在代碼中有些不用于執(zhí)行蔗衡,僅僅作為代碼說明的文本,稱為注釋乳绕。
在C語言中绞惦,使用/*作為注釋的開始,*/作為注釋的結(jié)束洋措。例如
/* 這是注釋 */
也可以寫作多行
/* 這
是
注
釋
*/
注釋主要提高代碼可讀性济蝉,常用來說明代碼功能以及實現(xiàn)邏輯。
上面的注釋稱為多行注釋菠发。在C99中王滤,支持單行注釋,只需要//作為注釋開頭滓鸠,注釋只能對單行起作用雁乡。
本文引用自作者:jdzhangxin
鏈接:http://www.reibang.com/p/65f9b1eecb1c
如有侵權,聯(lián)系必刪