學習一門新語言的惟一途徑就是使用它來編程。對於初學者來說, 編寫的第一個程序幾乎都是相同的,即在屏幕上顯示“Hello, world”,專業說法為打印“Hello, world”。
【例1-1】打印 Hello, world。
/* 第一個C語言程序 打印 Hello, world */ #include<stdio.h> //包含頭文件stdio.h int main(){ // 主函數 printf("Hello, word\n"); // 打印字符串 return 0; // 返回0,表示程序正確運行 }
盡管這個程序很簡單,但對初學者來說,它仍然可能成為一大障礙,因為要實現這個目的,首先要編寫代碼,然後編譯、鏈接並運行,最後看到輸出結果。掌握了這些操作細節以後,其它事情就比較容易了。
關於編譯和鏈接將在下一節說明,這裡先對程序進行解釋:
位於“/* */”中和“//”後面的內容為注釋,用來對程序進行說明;注釋在編譯時會被自動忽略。
一個C語言程序,無論其大小,都是由函數和變量組成的。
函數具有某些特定功能,能執行特定操作;函數中包含一些語句,以說明操作的過程。變量則用於存儲計算過程中使用的值。
在本例中,函數的名字為main。通常情況下,函數的命名沒有限制,但main是一 個特殊的函數名,每個程序都從main函數的起點開始執行,這意味著每個程序都必須在某 個位置包含一個main函數。
main函數通常會調用其它函數來幫助完成某些工作,被調用的函數可以是我們自己編寫的,也可以來自於函數庫。上述程序段中的第一行語句#include <stdio.h>用於告訴編譯器在本程序中包含標准輸入/輸出庫。許多C語言源程序的開始處都包含這一行語句。我們將在後續章節對標准庫進行詳細介紹。
函數之間進行數據交換的一種方法是調用函數向被調用函數提供一個值(稱為參數)列表。函數名後面的一對圓括號將參數列表括起來。在本例中,main函數不需要任何參數,因此用空參數表( )表示。
函數中的語句用一對花括號{}括起來。本例中的main函數包含下面兩條語句:
printf("Hello, word\n"); return 0;
調用函數時,只需要使用函數名加上用圓括號括起來的參數表即可。上面這條語句將"hello, world\n"作為參數調用printf函數。printf是一個用於打印輸出的庫函數,在此處, 它打印雙引號中間的字符串。
用雙引號括起來的字符序列稱為字符串或字符串常量,如"hello, world\n"就是一個字符串。目前我們僅使用字符串作為printf及其它函數的參數。
在C語言中,字符序列\n表示換行符,在打印中遇到它時,輸出打印將換行,從下一行的左端行首開始。如果去掉字符串中的\n(這是個值得一做的練習),即使輸出打印完成後也不會換行。在printf函數的參數中,只能用\n表示換行符。如果用程序的換行代替,例如:
printf("Hello, word
");
C編譯器將會產生一條錯誤信息。
printf函數永遠不會自動換行,這樣我們可以多次調用該函數以分階段得到一個長的輸出行。上面給出的第一個程序也可以改寫成下列形式:
*#include<stdio.h> int main(){ printf("Hello, "); printf("word"); printf("\n"); return 0; }這段程序與前面的程序的輸出相同。