成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

EasyC++01,從C++示例程序說起

開發 后端
很多小伙伴反應想要用C++刷LeetCode,但是對于C++語法不熟悉,對于很多算法和數據結構也不夠了解。這就導致了刷題的時候需要四處查詢資料,非常的麻煩。

[[428614]]

大家好,我是梁唐。

很多小伙伴反應想要用C++刷LeetCode,但是對于C++語法不熟悉,對于很多算法和數據結構也不夠了解。這就導致了刷題的時候需要四處查詢資料,非常的麻煩。

于是,受此鼓舞,老梁在github上新建了名叫EasyLeetCode的repo,決定將C++基礎、算法、數據結構、題解這一系列內容全部囊括。當然這個工程巨大,老梁目前打算先從C++基礎開始,每天更新一篇。也會同步更新到公眾號。

目前更新C++基礎,文章標題會以EasyC++開頭。保持每天更新,歡迎打卡。由于文章會同步到github等平臺,所以文章會相對更偏技術博客一些,不太像是公眾號的文章。

廢話到此結束,正文開始。

我們先來看一段C++的示例代碼:

  1. // my first cpp file 
  2. #include <iostream> 
  3. int main() { 
  4.     using namespace std; 
  5.     cout << "hellworld" << endl; 
  6.     return 0; 

這段代碼雖然很短,但幾個重要的要素都包含了,如果只是用來刷題,會發現基本上也只會用到這些語法。

我們一行一行來看。

注釋

首先是第一行,第一行表示的C++當中的注釋。C語言當中的/**/的多行注釋方法同樣支持,但為了避免潛在的問題,盡量使用C++類型的注釋。

include

第二行是預編譯指令include,這里的預編譯指令是一個專業名詞,表示在編譯之前預先執行的指令。C++當中的預編譯指令有好幾種,除了include之外還有define、if、undef等等,我們后面遇到了再說。

include這個指令會引入一個源代碼文件,后面跟著的是一個包含文件名,也叫頭文件名。C語言中的頭文件以.h結尾,而C++當中兼容了C語言的頭文件,只不過將其重新命名,去掉了末尾的.h,而換成了c開頭。比如math.h文件替換成了cmath。

在這行代碼當中我們include的頭文件叫做iostream,iostream為C++的標準輸入輸出庫,用來在終端讀入或者打印文本信息。iostream可以拆開理解成io和stream,其中io表示input、output即輸入輸出,stream表示流,即使用流形式進行io。

main函數

main函數是C++程序的入口函數,C++標準當中定義的main函數類型是int。返回0表示程序正常退出,所以一般我們要在main函數的最后寫上return 0。

C++的main函數通常有兩種寫法,一種是參數留空,一種是定義參數數量以及參數值。

  1. int main() {} 
  2. int main(int argc, char* argv[]) {} 

關于main函數的傳參方法,以及參數使用方法同樣會在之后介紹,初學者隨便使用哪一種都是一樣的。

注意,有些編譯器比如vc6.0等沒有嚴格遵循C++ Primer規范,導致支持void類型的main函數。建議放棄此類不規范的編譯器,以免代碼無法遷移,并且養成不好的編碼習慣。

命名空間

命名空間是C++當中的特性,用來解決大型項目名稱沖突的問題。

有可能多個程序員同時開發了getValue函數,但當我們編譯運行的時候,編譯器無法知道我們究竟調用的是哪一個getValue,所以需要使用命名空間進行區分。比如A程序員將getValue放入了名為A的命名空間當中,那么當我們調用getValue的時候就需要寫成A::getValue,B程序員將它放入了名為B的命名空間中,同樣調用的時候寫成B::getValue。

然而常用的許多函數、變量都明明在std的命名空間當中,這就意味著當我們使用這類內容的時候,都需要在前面加上std::,比如標準輸出的cout命令,需要寫成std::cout。

這會導致編碼變得繁瑣,所以C++提供了using namespace的功能,即告訴編譯器當前使用的命名空間名稱,這樣我們在調用該命名空間的內容時,可以省略前綴。

除了using namespace之外我們也可以單獨使用using命令,例如:

  1. using std::cout; 
  2. using std::cin; 

cout

標準輸出工具,可以將字符串輸出在終端中。

cout本身是一個預定義的對象,它知道如何顯示字符串、數字和單個字符。<<符號表示將字符串發送給cout,由cout輸出在屏幕當中。<<符號表示了信息流動的路徑,<<符號可以多個疊加連接,比如:

  1. cout << "hello" << "world"; 

endl表示當前輸出行的結束,cout遇到endl時會重啟一行,否則則會接在同一行后面繼續輸出。

除了使用endl之外,我們也可以使用換行符來達到同樣的效果,如:

  1. cout << "hello" << "world\n"

C++ Primer當中建議在輸出由內容的字符串時使用換行符,而非endl,其他情況下使用endl,而非換行符。這兩者絕大多數情況下是等價的,在一些特殊情況下可能會構成差異。

如endl確保程序繼續運行前刷新輸出,而使用"\n"則意味著有時候需要在輸入信息之后才會出現提示。當然這不是重點,我們遇到的概率也非常小,如果實在搞不清楚也不用糾結,統一使用endl也行。

本文轉載自微信公眾號「Coder梁」,可以通過以下二維碼關注。轉載本文請聯系Coder梁公眾號。

 

責任編輯:武曉燕 來源: Coder梁
相關推薦

2021-10-27 16:27:20

C++指針操控

2021-10-21 18:52:00

C++數組存儲

2021-10-31 20:24:24

C++for循環

2021-10-29 09:44:50

C++指針變量

2021-10-20 14:03:06

C++運算符類型

2021-11-01 15:35:31

C++自增自減

2010-01-12 16:40:23

miniGUI編譯安裝

2010-02-01 11:22:09

C++虛函數

2010-02-05 10:23:09

C++基本函數

2009-08-28 11:03:21

C#快速排序

2010-09-16 10:46:47

2024-06-28 09:25:51

2021-12-12 18:13:54

C++This指針

2021-12-29 20:31:40

C++多態指針

2010-02-03 10:05:48

C++ enum枚舉

2022-10-13 15:51:29

C++應用開發

2010-01-28 10:33:10

C++開發程序

2010-03-22 11:26:18

Python示例程序

2012-03-19 21:06:52

Android

2025-03-25 09:00:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区激情视频 | 亚洲精品一区二区 | 国产一区久久久 | 成人在线观看网址 | 超碰免费在线 | 欧美激情一区二区三区 | 天天操狠狠操 | 午夜久久 | 国产乱人伦精品一区二区 | 欧美日韩在线一区 | 一区二区在线不卡 | 国产免费一区二区 | 欧洲一级黄 | 亚洲人在线播放 | 日本黄色免费视频 | 成人国产精品久久久 | 欧美日韩一区二区三区在线观看 | 国产精品一二三区 | 狠狠av | 欧美精品日韩 | 欧美综合国产精品久久丁香 | 国产精品久久在线观看 | 国产精品一区二区在线 | 欧美视频网 | 婷婷精品 | 中文字幕一区二区三区不卡 | 免费视频一区二区 | 成人国产精品色哟哟 | 国产视频二区在线观看 | 亚洲黄色av| 在线免费观看成年人视频 | 在线观看免费福利 | 久久久青草婷婷精品综合日韩 | 中文精品视频 | 国产日韩欧美一区 | 精品一区二区三区在线观看国产 | 国产在线网站 | 国产精品.xx视频.xxtv | 精品综合 | 天堂在线www | 9999在线视频 |