一,徹底理解第一個C語言程序 Hello World


  對於初學者來說,第一個程序一般都是hello world,而且是照着書上一點一點敲的。所以,在初學者眼中,敲出來的第一個程序代碼不過是一堆看不懂的英語。而事實上,C語言作為一門語言,是有語法的。所以這一節,我們以C語言最簡單的一個程序為載體,初步了解C語言的語法,相信讀者看了以后不用看書也能寫出一個hello world程序。

  首先,我們先不說C語言,我們先從人類語言開始,假設我現在給你的任務不是讓你用計算機輸出一行hello world,而是讓你找另一個人給你寫一行hello world。這個任務你會怎么完成呢?

  顯然,你會找個人對他說:“給我在紙上寫一行hello world。”(假設他會無條件聽你的話)

  好,很簡單,這個任務就完成了。但是現在任務的完成對象並不是人,而是計算機,你需要按照它的語法對它說話。那么你能在敲代碼的區域里打上“寫一行hello world給我”嗎?可以,前提是在前面打兩個斜杠“//”。這兩個斜杠的意思是在后面的東西是注釋。計算機會忽略所有注釋,因為注釋是方便人閱讀的。一般來說,注釋默認寫在被注釋的語句或語段上面。

  還有一種注釋方法是/*中間是要注釋的內容*/

  兩種注釋方法的區別是,兩個斜杠的注釋只能管到一行的結束,而第二種注釋可以自己隨意選擇起始和結束位置。所以在學語法的時候,注釋可以忽略不計,因為注釋對程序本身是沒有作用的。一般來說,注釋可以加在代碼的任何地方,但是為了美觀還是要規范寫注釋。下面是一個帶注釋的hello world程序。

#include<stdio.h>
int main(void)
{
    /*下面要輸出hello world*/
    printf("hello world");
    return 0;
 } 

  那么問題來了,那我直接在代碼區域寫

printf("hello world");
這樣不就行了嗎?然后編譯,運行。會發現編譯器會報錯。(補充一句,C語言每句話結束都要加分號,這是語法,如果漏加會報錯,不再贅述。而且,所有語法中的符號必須用英文格式輸入,比如;;前者會報錯)既然報錯了,說明其他語句也是有用的,那么具體作用是什么?下面開始講解。
首先每個c程序必須有一個主函數框架。
int main(void)
{

}

在主函數框架里就是你要編寫的內容,相當於告訴計算機:“這里面就是你要執行的命令。“

那么return 0;這一句是干什么的呢?它的意思是讓主函數正常結束。一般來說這句話都是寫在最后。如果你把這句話寫在printf前面,還沒等輸出,程序已經結束了,所以就不會有東西輸出。也就是說程序的一般就是

int main(void)
{

    return 0;
}

所以hello world 的主程序就是

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

你會發現,即使這樣寫完,再編譯還是錯的。為什么呢?有沒有發現在開頭的代碼里,第一行還有#include<stdio.h>這句話又是干什么的呢?

那么你有沒有想過一個問題,既然計算機聽不懂你說“輸出一行hello world”,它憑什么就能聽懂printf("hello world")?所以,相信你已經猜到這句話是什么意思了。這句話就是教會計算機聽懂printf。stdio.h是頭文件,它是一個函數庫:標准輸入輸出庫(standard input output的縮寫)。.h是后綴名,頭文件(head file)的后綴名一般都是.h。那么把stdio.h給include進來的這句話叫做聲明語句。聲明語句都以#開頭,標准自帶庫文件要用尖括號。所以是#include<stdio.h>而且值得注意的是,聲明語句結尾不用分號。

因此,一個hello world 程序就很自然的出來了。

#include<stdio.h>
int main(void)
{
    printf("hello world");
    return 0;
 } 

這樣就可以編譯運行了。在明白了每句話的意思的基礎上,讀者可以自行編寫一遍。

 

//int main(void) 有很多不同的形式,比如int main() int main(int argc,char *argv[]) 暫時不需要知道其中的區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM