十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
C 語言的源碼文件,通常以后綴名.c結(jié)尾。

創(chuàng)新互聯(lián)建站成立與2013年,先為濟(jì)陽等服務(wù)建站,濟(jì)陽等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為濟(jì)陽企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
#include
int main(void) {
printf("Hello World\n");
return 0;
}
使用gcc編譯器,將源文件hello.c編譯成二進(jìn)制代碼。
默認(rèn)會(huì)在當(dāng)前目錄下生成一個(gè)編譯產(chǎn)物文件a.out(assembler output 的縮寫,Windows 平臺(tái)為a.exe)
$ gcc hello.c
# 輸出 Hello World
$ ./a.out
gcc 的-o參數(shù)(output 的縮寫)可以指定編譯產(chǎn)物的文件名。
# -o hello 指定,編譯產(chǎn)物的文件名為 hello(取代默認(rèn)的 a.out)。
$ gcc -o hello hello.c
gcc 的-std=參數(shù)(standard 的縮寫)可以指定按照哪個(gè) C 語言的標(biāo)準(zhǔn)進(jìn)行編譯。
$ gcc -std=c99 hello.c
C 語言的代碼由一行行語句(statement)組成。
C 語言規(guī)定,語句必須使用分號(hào)結(jié)尾,除非明確規(guī)定可以不寫分號(hào)。
int x = 1; // 變量聲明語句,聲明整數(shù)變量 x,并且將值設(shè)為 1。
; // 空語句
表達(dá)式(expression)是一個(gè)計(jì)算式,用來獲取值。
1 + 2
多個(gè)語句使用一對(duì)大括號(hào){},組成一個(gè)塊,也稱為復(fù)合語句(compounded statement)。
{
int x;
x = 1;
}
注釋是對(duì)代碼的說明,編譯時(shí),注釋會(huì)被替換成一個(gè) 空格。
將注釋放在雙斜杠//后面,從雙斜杠到行尾都屬于注釋。
int x = 1; // 這是注釋
將注釋放在/*...*/之間,內(nèi)部可以分行。
int open(char* s /* file name */, int mode);
C 語言自帶的功能,統(tǒng)稱為“標(biāo)準(zhǔn)庫”(standard library)。
舉例來說,printf()函數(shù)就是 C 語言自帶的,只要去調(diào)用它,就能實(shí)現(xiàn)在屏幕上輸出內(nèi)容。
不同的功能定義在不同的文件里面,這些文件統(tǒng)稱為“頭文件”(header file)。
頭文件的后綴通常是.h,比如printf()的頭文件就是系統(tǒng)自帶的stdio.h。
如果要使用某個(gè)功能,就必須先加載對(duì)應(yīng)的頭文件,加載使用的是#include命令
#include
printf()的作用是將參數(shù)文本輸出到屏幕。f 代表 format(格式化),表示可以定制輸出文本的格式。
printf("Hello World");
printf()不會(huì)在行尾自動(dòng)添加換行符,運(yùn)行結(jié)束后,光標(biāo)就停留在輸出結(jié)束的地方,不會(huì)自動(dòng)換行。
為了讓光標(biāo)移到下一行的開頭,可以在輸出文本的結(jié)尾,添加一個(gè)換行符\n。
printf("Hello World\n");
printf()可以在輸出文本中指定占位符。所謂“占位符”,就是這個(gè)位置可以用其他值代入。
printf("There are %i apples\n", 3); // 輸出 There are 3 apples
There are %i apples\n 是輸出文本,里面的%i就是占位符,表示這個(gè)位置要用其他值來替換。
占位符的第一個(gè)字符一律為百分號(hào)%,第二個(gè)字符表示占位符的類型,%i表示這里代入的值必須是一個(gè)整數(shù)。
printf()的第二個(gè)參數(shù)就是替換占位符的值,上面的例子是整數(shù)3替換%i。
輸出文本里面可以使用多個(gè)占位符,printf()參數(shù)與占位符是一一對(duì)應(yīng)關(guān)系。
常用占位符:
%a:浮點(diǎn)數(shù)。%A:浮點(diǎn)數(shù)。%c:字符。%d:十進(jìn)制整數(shù)。%e:使用科學(xué)計(jì)數(shù)法的浮點(diǎn)數(shù),指數(shù)部分的e為小寫。%E:使用科學(xué)計(jì)數(shù)法的浮點(diǎn)數(shù),指數(shù)部分的E為大寫。%i:整數(shù),基本等同于%d。%f:小數(shù)(包含float類型和double類型)。%g:6個(gè)有效數(shù)字的浮點(diǎn)數(shù)。整數(shù)部分一旦超過6位,就會(huì)自動(dòng)轉(zhuǎn)為科學(xué)計(jì)數(shù)法,指數(shù)部分的e為小寫。%G:等同于%g,唯一的區(qū)別是指數(shù)部分的E為大寫。%hd:十進(jìn)制 short int 類型。%ho:八進(jìn)制 short int 類型。%hx:十六進(jìn)制 short int 類型。%hu:unsigned short int 類型。%ld:十進(jìn)制 long int 類型。%lo:八進(jìn)制 long int 類型。%lx:十六進(jìn)制 long int 類型。%lu:unsigned long int 類型。%lld:十進(jìn)制 long long int 類型。%llo:八進(jìn)制 long long int 類型。%llx:十六進(jìn)制 long long int 類型。%llu:unsigned long long int 類型。%Le:科學(xué)計(jì)數(shù)法表示的 long double 類型浮點(diǎn)數(shù)。%Lf:long double 類型浮點(diǎn)數(shù)。%n:已輸出的字符串?dāng)?shù)量。該占位符本身不輸出,只將值存儲(chǔ)在指定變量之中。%o:八進(jìn)制整數(shù)。%p:指針。%s:字符串。%u:無符號(hào)整數(shù)(unsigned int)。%x:十六進(jìn)制整數(shù)。%zd:size_t類型。%%:輸出一個(gè)百分號(hào)。printf()可以定制占位符的輸出格式。
printf()允許限定占位符的最小寬度。
printf("%5d\n", 123); // 輸出 " 123"
printf("%12f\n", 123.45);// 輸出 " 123."
%5d表示這個(gè)占位符的寬度至少為5位,如果不滿5位,對(duì)應(yīng)的值的前面會(huì)添加空格。
輸出的值默認(rèn)是右對(duì)齊,即輸出內(nèi)容前面會(huì)有空格;如果希望改成左對(duì)齊,可以在占位符的%的后面插入一個(gè)-號(hào)。
printf("%-5d\n", 123); // 輸出 "123 "
舉例來說,希望小數(shù)點(diǎn)后面2只保留兩位,占位符可以寫成%.2f。
printf("Number is %.2f\n", 0.5); // 輸出 Number is 0.50
這種寫法可以與限定寬度占位符,結(jié)合使用。
printf("%6.2f\n", 0.5); // 輸出為 " 0.50"
寬度和小數(shù)位數(shù)這兩個(gè)限定值,都可以用*代替,通過printf()的參數(shù)傳入。
printf("%*.*f\n", 6, 2, 0.5); // 輸出為 " 0.50"
%s占位符用來輸出字符串,默認(rèn)是全部輸出。如果只想輸出開頭的部分,可以用%.[m]s指定輸出的長(zhǎng)度。
printf("%.5s\n", "hello world"); // 輸出 hello
參考: C 語言教程