C++ 第一個程序

2023-03-20 15:43 更新

習慣上,人們學習一門新語言時寫的第一個程序都是“Hello,World.”,它只是輸出“Hello,World.”這句話。下面是C++版本1:

#include <iostream.h>

// main: 生成一些簡單的輸出

void main ()
{
    cout << "Hello, world." << endl;
    return 0
}

有些人喜歡通過“Hello,World.”程序是否簡潔來判斷編程語言的質(zhì)量。如果以此為標準,C++相當不錯。即便如此簡潔,這個程序中還是有幾個特性不容易給初學者解釋清楚。我們暫且忽略這種不易理解的特性,比如第一行的#include語句。

第二行以“//”開始,它表明這句話是注釋。注釋是可以放入程序中的英語文本,用以解釋程序的意圖。當編譯器讀取到“//”時,會忽略從“//”開始直到行尾的所有字符。

在第三行中,你暫時先別理會單詞void,但要注意另一個單詞mainmain是一個特殊的名字,它指明程序開始執(zhí)行的位置。程序運行時,會從main中的第一條語句開始執(zhí)行,然后按順序執(zhí)行后續(xù)語句,直到最后一條語句,最后退出。

main中的語句行數(shù)并沒有限制,不過例子中只包含了一條語句。這是一條基本輸出語句,會在屏幕上輸出或者顯示一條信息。

cout是系統(tǒng)提供的特殊對象,允許將輸出發(fā)送給屏幕。符號<<是應(yīng)用到cout和一個字符串上的操作符,它在屏幕上顯示這個字符串。

endl是表示一行結(jié)束的特殊符號。當把endl發(fā)送給cout時,會導致光標移到顯示的下一行。下一次輸出時,文本會出現(xiàn)在新行上。

和所有語句一樣,輸出語句也以分號結(jié)尾。

程序中的語法有幾點需要注意。首先,C++使用花括號組織語句。示例程序中,輸出語句被包圍在花括號之中,說明它在 main函數(shù)定義之內(nèi)。再有,注意語句的縮進,這可以更直觀地表示出哪些語句在定義之內(nèi)。

現(xiàn)在,何不坐到電腦前面編譯并運行這個程序?具體如何編譯運行與你的編程環(huán)境有關(guān),從現(xiàn)在開始,本書假設(shè)讀者了解該如何處理。

前面也提到過,C++編譯器對語法細節(jié)要求十分嚴格。編寫程序時出現(xiàn)任何錯誤,代碼都無法成功編譯。比如,若把iostream拼寫錯了,你可能會遇到下面的錯誤提示信息:

hello.cpp:1: oistream.h: No such file or directory

雖然這行提示包含了大量信息,但這種信息密集的說法著實不易理解。更友好的編譯器可能要這樣說:

“在名為`hello.cpp`的源代碼文件的第一行,你想要包含一個名為`oistream.h`的頭文件。我沒有找到叫這個名字的文件,但我找到了`iostream.h`,也許這是你要找的文件?”

十分不幸,幾乎沒有這么友好的編譯器。編譯器并不是真的非常聰明,大多數(shù)情況下,錯誤信息只是程序錯誤的一個線索。要熟練理解編譯器的信息還是需要些時間磨練的。

不過,編譯器仍然是學習語言的語法規(guī)則的有用工具。拿一個可以工作的程序(如hello.cpp)練手,以各種方式修改它,看看會發(fā)生什么。如果碰到錯誤信息,記住消息說了什么以及是什么原因?qū)е碌腻e誤,下次再遇到的時候就知道錯誤信息的意義了。

1.按照C++規(guī)范,返回值應(yīng)為int類型,但本書第5章才會介紹有返回值的函數(shù),這里暫且用void,第5.9節(jié)會有相關(guān)說明?!g者注

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號