C 學習筆記之二 C 基礎學習

2021-07-11 05:15:45 字數 1965 閱讀 1298

因為作者本人以前就在使用c++,雖然基礎不夠紮實,但是對一些基礎的知識還是有一些了解和應用的。為了查缺補漏,對於基礎c++的知識會較快速的掠過,以前漏掉的知識點會在本章節中記錄整理,已經熟悉的知識就不再贅述了。

注意:1、c++也能夠使用printf()、scanf()和其他所有標準c輸入和輸出函式,只需要包含常規c語言的stdio.h檔案。但是,在以後的c++學習中我們應該注意,我們應該盡量c語言的原有應用影響,用c++的工具實現自己的**。

2、c++原始檔的檔名可以用.c或.cxx表示,c語言是小寫的.c,注意區別。

3、關於注釋:c++的注釋為//打頭,c語言的注釋為/*  */。現在在c++程式中這兩種注釋形式都可以使用,但是要注意盡量使用c++注釋,因為這不涉及到結尾符號和起始符號的正確配對問題,所以產生問題的可能性很小。

4、在標頭檔案的副檔名中,c++的標頭檔案風格有一些改變,去掉了.h的副檔名,並在檔名前加上c。例如:在c語言中,數**算標頭檔案為「cmath.h」,新式的c++標頭檔案為「cmath」。

5、命名空間的使用:在使用去掉.h的標頭檔案時,因為此c++標頭檔案中包含了命名空間的定義,因此,要使用using namespace std宣告命名空間。

關於命名空間的介紹:命名空間的支援是一項新的c++特性,旨在讓使用者編寫大型程式的時候便於將幾個廠商的**程式更容易組織在一起。舉個例子來說,兩個公司microflop和piscine提供的**中都有函式wanda(),如果我們的程式同時需要用到兩個廠商的這個函式,那麼編譯器就不知道使用wanda()函式指的是哪個版本了。命名空間讓廠商可以將其產品封裝在乙個叫做命名空間的單元中,這樣就可以用命名空間的名稱來指出想使用哪個廠商的產品了。因此,microflop可以將其wanda()函式定義在乙個名為microflop的命名空間中,這樣,其wanda()函式全稱為microflop::wanda(),同樣,piscine公司的wanda()版本可以表示為piscine::wanda()。這樣,程式就可以使用命名空間來區分不同的版本的函式了。所以,像類、函式和變數這些編譯器的標準元件,都被放置在命名空間std中,所以事先宣告using namespace std; 

但是在使用命名空間時需要注意:using namespace  std編譯指令使得std命名空間中所有名稱都可用。這是一種偷懶的做法,對於簡單的程式中,可能只涉及到乙個命名空間或者命名空間中沒有重複的函式時,不會有影響。但是,在大型專案中,使用using指令後就無法區分開兩種不同空間的相同函式了,所以慎用。更好的方法是只使所需的名稱可用,如果我只用到cout和cin,那就通過using宣告實現:using std::cout;    using std::endl:  using std::cin。或者直接在程式中用到函式時直接宣告函式的**,如std::cout。

6、c++源**風格:

每條語句佔一行;每個函式都有乙個開始花括號和乙個結束花括號,這兩個花括號各佔一行;函式中的語句都相對於花括號進行縮排;與函式名稱相關的圓括號周圍沒有空白。前三條規則是為了使**清晰易讀,第四條規則幫助區分函式和一些也使用圓括號的c++內建結構(如迴圈)。

7、cout的輸出功能

要知道,整數儲存25和字元儲存25是不同的,字元儲存中,25就是書寫該數字時使用的字元,即2和5。程式在內部儲存器中儲存的就是2和5的編碼。要列印字串,cout只需列印字串中的各個字元即可。但是整數25被儲存為數值,計算機不是單獨儲存的每個數字,而是將25儲存為二進位制數。列印之前,cout必須將整數形式轉換為字串形式。

與老式的c語言相比cout更加聰明了。在c語言中,要列印字串「25」和整數25可以使用c語言的多功能輸出函式printf():

printf("printing a string: %s\n","25");

printf("printing ainteger: %d\n",25);

這樣每次必須指出列印的型別,很容易出錯。cout就可以智慧型的將各種型別的資料轉換為字串形式再輸出。實際上c++插入運算子(《)將根據其後的資料型別相應的調整其行為,這涉及到運算子過載的例子。所以,以後涉及到列印輸出,盡量使用cout而不是printf。

c 的學習筆記之二

1.類中定義的靜態變數在編譯時沒有出錯,但是在鏈結時出現錯誤,原因是該靜態變數沒有初始化。class obj vectorobj vstr 這樣在別的地方就可以使用該靜態變數了,具體使用方法很簡單,只要obj vstr 即可。2.乙個類中宣告了乙個指標後,要記得初始化時將此指標賦為空值,在使用時先判...

elasticsearch學習筆記之二(CURD)

本文介紹elasticsearch的概念和curd 2.2 建立文件 表和記錄 2.3 更新文件 2.4 刪除文件 2.5 查詢文件 2.6 刪除型別 表 例如 http localhost 9200 blog user 1 關係型資料庫 elasticsearch 資料庫 blog index 表...

Git學習筆記之二《基礎》

取得專案的git倉庫 兩種方法 在視訊記憶體的目錄下,通過匯入所有檔案裡來建立新的git倉庫 從已有的git倉庫轉殖出乙個新的映象倉庫 從當前目錄初始化 git init 如果當前目錄下有幾個檔案想要納入版本控制,先用git add命令新增,然後提交 git add c git add readme...