C++(1)--概況、開發工具、hello word

簡介

  • 1. 概況
  • 2. 開發工具
  • 3. mac 寫hello word
  • 4. c++ 基本概念
  • 5.兩個數相加代碼分解
    • 5.1編譯預處理命令# include
    • 5.2輸入輸出庫iostream
  • 6.注釋
  • 7.編碼規范

《老九學堂C++課程》《C++ primer》學習筆記。《老九學堂C++課程》詳情請到B站搜索《老九零基礎學編程C++入門》

1. 概況

20世紀70年代,貝爾實驗室的Thompson和Ritchie在想玩游戲的過程中,開發了C語言用于重寫unix系統。

20世紀80年代貝爾實驗室Bjarne Stroustrup在C語言的基礎上開發了C++ ,主要是為了解決軟件設計危機。C++應用范圍:Office工具,編譯器,操作系統,大型游戲。

一開始C++叫帶類的C,可想而知其和C語言的關系。

C++衍生出了Java(語法比較簡單),Java和C# 是兄弟。

2. 開發工具

1.記事本+命令行–專業大牛身份標識別,上手慢;
2.Visual c++ – 經典開發工具,與流行的操作系統有沖突;
3.VS --功能強大,體積同樣強大;(3-5G)只支持微軟版本的C,但是課程推薦標準C。
4.Code::blocks–開源免費C++開發工具,專業開發人員推薦
5.DEV C++, Xcode, Clion(收費), C-free(國產), Xcode(蘋果公司的開發工具mac),C4droid(手機端運行)
6.eclipse c++ 開發

3. mac 寫hello word

1.Mac OS中使用VScode配置C++語言開發環境
一鍵運行,不用配置編譯,運行,調試:
2.在mac上使用vscode創建第一個C++項目
(不會配置,回頭再說)

#include <iostream>
int main()
{	std::cout<<"hello world 2" << std::endl;return 0;	
}

4. c++ 基本概念

1.每個C++程序都包含至少一個函數,至少一個函數為main函數。操作系統通過調用main函數來執行程序(唯一被操作系統顯示調用的函數)。

2.函數定義4要素:
?–>返回類型–main 函數的返回類型一定要是int,return語句所返回值的類型必須和函數返回類型一致。main返回0表示其成功執行,其他非零的值都有操作系統定義的含義,-1表示程序運行失敗。
?–>函數名–函數名的命名規范
–?>圓括號–(參數列表)
–?>函數體–以花括號包圍的語句塊

3.c++中的語句大多數都是以分號結尾。(不用分號:塊語句,大括號括起來的)

4.源文件–保存待編譯程序的文件,源文件的后綴與具體編譯器有關。有.cpp .cp .c等等,C++ primer 一書中的源文件以.cc結尾。

5.常用編譯器
? gnu-默認命令為g++ prog1.cc -o prog1
? 微軟visual studio: cl -GX prog1.cpp

6.表達式:C++中表達式有一個/幾個操作數+操作符組成;每個表達式都會產生一個結果,通常是將操作符作用到操作數所產生的值。

7.定義一個變量,最好記得賦初值(變量的初始化)。

5.兩個數相加代碼分解

#include <iostream>
int main(){std::cout<<"Enter two numbers:"<<std::endl;int v1,v2;std::cin>>v1>>v2;std::cout<<"The sum of "<<v1<<" and "<< v2<< " is "<< v1+v2 << std::endl;return 0;
}

5.1編譯預處理命令# include

編譯預處理命令,尖括號中是一個頭文件的名字,程序使用庫文件必須包含相關的頭文件。編譯預處理命令應該寫在文件的最開始部分。

C 頭文件一般是.h結尾,C++采用C前綴兼容C頭文件,其底層實際還是導入了.h文件。也可以在C++中采用.h的頭文件。

5.2輸入輸出庫iostream

iostream 格式化處理輸入輸出數據的標準庫,iostream 的基礎:istream,ostream。

秉持C++一切皆對象原則,iostream 庫包含4個標準輸入輸出對象

iostream 庫4個標準輸入輸出對象
cin標準輸入
cout標準輸出
err標準錯誤,用于輸出警告和錯誤給程序使用者,try -expect?
clog產生程序執行的一般信息?這些信息是什呢?
<<輸出操作符;兩個操作數:左操作數–ostream對象,右操作數–輸出內容;返回左操作數,所以可以連接輸請求
>>輸入操作符;兩個操作數:左操作數–ostream對象,右操作數–變量;返回左操作數,所以可以連接輸請求
endl操縱符;輸出換行符并清空緩存區,通過刷新緩沖區,使得用戶立即可以看到寫入到流中的內容[\n+fflush(stdin)]
std::前綴 ,其表明 cout,cin 和 endl 是定義在命名空間 std 中的,可以避免與庫中定義的名字相同而引起無意沖突

不用endl也是能看到,就是沒有換行而已
忘記刷新輸出流可能會造成輸出停留在緩沖區中,如果程序崩潰,將會導致程序錯誤推斷崩潰位置。

命名空間是C++的一大特性,用來在編寫大型程序時組織源代碼。

6.注釋

注釋用于概括算法、確認變量的用途或者闡明難以理解的代碼段。

注釋并不會增加可執行程序的大小,編譯器會忽略所有注釋。

錯誤的注釋比沒有注釋更可怕

//–單行注釋

/**/–定界符號,用于段落注釋。多行注釋時,注釋內容的每一行都用* 開始,表明這一行是注釋塊的一個 部分。一般將注釋塊放在要解釋的代碼上方。

臨時注釋,建議用單行注釋符。

7.編碼規范

1.每條語句占一行
2.函數體花括號獨占一行
3.函數中的語句相對于花括號進行縮緊
4.函數名后緊跟小括號,沒有空格

注釋的模版

/***************************************** 文件名:xxx* 創建人:xxx* 日 期:xxx* 修改人:xxx* 日 期:xxx* 版 本:1.0.0****************************************/
//****************************************
// Method:
// Fullname:
// Access:		public
// Return:		viod
// Parameter:	int fontsize
//****************************************

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444937.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444937.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444937.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

class 和 struct的區別

C中的struct對C中的struct進行了擴充&#xff0c;它已經不再只是一個包含不同數據類型的數據結構了&#xff0c;它已經獲取了太多的功能。 struct能包含成員函數嗎&#xff1f; 能&#xff01; struct能繼承嗎&#xff1f; 能&#xff01;&#xff01; struct能實現多態嗎&…

leetcode206 反轉鏈表

反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 進階: 你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題&#xff1f; 經典題不解釋 /*** Definition for singly-linked list.* public class ListNode…

淺議柔性數組

很多時候,柔性數組應用在了變長結構體中,如: StructPacket {Int state; Int len;

leetcode 152 乘積最大子序列

給定一個整數數組 nums &#xff0c;找出一個序列中乘積最大的連續子序列&#xff08;該序列至少包含一個數&#xff09;。 示例 1: 輸入: [2,3,-2,4] 輸出: 6 解釋: 子數組 [2,3] 有最大乘積 6。 示例 2: 輸入: [-2,0,-1] 輸出: 0 解釋: 結果不能為 2, 因為 [-2,-1] 不是子…

PaperNotes(5)-Conditional Generative Adversarial Nets

Conditional GAN 論文閱讀筆記Abstract1 Introduction2 Related Work3 Conditional Adversarial Nets3.1 Generative Adversarial Nets3.2 Conditional Adversarial Nets4 Experimental Results4.1 Unimodal4.2 Multimodal5 Future Work6.思考文章地址&#xff1a;https://arxi…

蛙泳姿勢教學

偶爾看到分享的一篇日志&#xff0c;記錄下&#xff0c;忙過這段時間努力學蛙泳。 蛙泳配合有一個順口溜&#xff0c;在講解蛙泳動作要領之前先介紹給大家&#xff1a;“劃手腿不動&#xff0c;收手再收腿&#xff0c;先伸胳膊后蹬腿&#xff0c;并攏伸直漂一會兒。”從順口溜中…

leetcode238 除本身以外數組的乘積

給定長度為 n 的整數數組 nums&#xff0c;其中 n > 1&#xff0c;返回輸出數組 output &#xff0c;其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積。 示例: 輸入: [1,2,3,4] 輸出: [24,12,8,6] 說明: 請不要使用除法&#xff0c;且在 O(n) 時間復雜度內完…

C 和c++的一些雜想,想到哪兒寫到哪兒

關于C和c++一直有好多的程序猿在研究,研究區別研究相似的地方,究竟用那個預言好,沒有確定的說法,要看你做什么了。 初始化操作: 在初始化的時候,我們都知道C語言一般都是這樣處理的: int a=12; C++ 呢,除了這樣復制初始化之外還可以直接初始化: int a(12); 啊…

C++(2)--mac使用VScode 進行C++編譯、運行、調試

mac 使用VScode 進行C開發1.編譯的基礎概念2. mac 編譯c代碼2.1 查看編譯器情況2.2 安裝插件C/C&#xff0c;C/C Clang Command Adapte2.3新建一個C project2.3.1本地新建文件夾2.3.2新建mian.cpp文件2.3.3 編寫hello word demo2.4 代碼編譯&#xff0c;運行&#xff0c;調試2.…

boost庫linux編譯安裝

0.下載 1.解壓boost_1_49_0.tar.g然后放到/opt/ 2. 進入解壓后的文件夾 cd /opt/boost_1_49_0 3.將boost安裝配置在/boost/prefix目錄下 不過之前先 mkdir -p /boost/prefix

leetcode136 只出現一次的數字

給定一個非空整數數組&#xff0c;除了某個元素只出現一次以外&#xff0c;其余每個元素均出現兩次。找出那個只出現了一次的元素。 說明&#xff1a; 你的算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎&#xff1f; 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: …

C++(3)--編譯、gdb調試

3--編譯和執行過程1.編譯2.gdb調試gdb 查coreGCC是一個編譯套件&#xff0c;是一個以"gcc"命令為首的源碼施工隊。施工隊的成員有gcc、cpp、as、ld四個成員 預處理–宏定義展開&#xff0c;頭文件引入-- cpp 等價于 gcc -E編譯–C語言->匯編語言–gcc -S匯編–匯…

leetcode94 二叉樹的中序遍歷

給定一個二叉樹&#xff0c;返回它的中序 遍歷。 示例: 輸入: [1,null,2,3] 1 \ 2 / 3 輸出: [1,3,2] 進階: 遞歸算法很簡單&#xff0c;你可以通過迭代算法完成嗎&#xff1f; 遞歸 /*** Definition for a binary tree node.* public class TreeNode …

使用動態鏈接庫

1. 動態鏈接庫是程序運行時加載的庫,當動態鏈接庫正確安裝后,所有的程序都可以使用動態庫來運行程序。動態鏈接庫是目標文件的集合,目標文件在動態鏈接庫中的組織方式是按照特殊方式形成的。庫中函數和變量的地址是相對地址,不是絕對地址,其真實地址在調用動態庫的程序加載…

算法(29)--兩棵樹匹配

樹匹配1.劍指 Offer 26. 樹的子結構2.劍指 Offer 27. 二叉樹的鏡像3.劍指 Offer 28. 對稱的二叉樹1.劍指 Offer 26. 樹的子結構 判斷&#xff1a;小樹B是否是大樹A的一部分&#xff0c;需要以大樹A的每個為根節點進行匹配判斷。 算法&#xff1a;判斷兩個節點是否相等&#xf…

leetcode647 回文子串

給定一個字符串&#xff0c;你的任務是計算這個字符串中有多少個回文子串。 具有不同開始位置或結束位置的子串&#xff0c;即使是由相同的字符組成&#xff0c;也會被計為是不同的子串。 示例 1: 輸入: "abc" 輸出: 3 解釋: 三個回文子串: "a", "…

windows下關于Objective-C開發環境的配置

最近IOS一直很火&#xff0c;也想學習以以下OC開發&#xff0c;一般裝個虛擬機&#xff0c;然后裝個mac&#xff0c;我相信大多數人的機子跑不起來或者很卡&#xff0c;所以之前借鑒了一個文章&#xff0c;就是關于在windows下配置OC開發環境&#xff0c;這里我把自己的安裝說一…

如何選擇商鋪投資

如何選擇商鋪&#xff1f; 選擇商鋪時&#xff0c;需要考慮哪些因素呢&#xff1f; 聶先生表示&#xff0c;要看地段&#xff0c;包括周圍的商業環境、停車方便程度、汽車流量、未來發展前景、視覺效果等因素。此外&#xff0c;地域經濟也很重要&#xff0c;必須要有一個好的投…

PaperNotes(6)-GAN/DCGAN/WGAN/WGAN-GP/WGAN-SN-網絡結構/實驗效果

GAN模型網絡結構實驗效果演化1.GAN1.1網絡結構1.2實驗結果2.DCGAN2.1網絡結構2.2實驗結果3.WGAN3.1網絡結構3.2實驗結果4.WGAN-GP4.1網絡結構4.2實驗結果5.WGAN-SN5.1網絡結構5.2實驗結果小結1.GAN 文章&#xff1a; https://arxiv.org/pdf/1406.2661.pdf 代碼&#xff1a; Py…

Spring Security使用

Spring Security 在web應用開發中&#xff0c;安全無疑是十分重要的&#xff0c;選擇Spring Security來保護web應用是一個非常好的選擇。 Spring Security 是spring項目之中的一個安全模塊&#xff0c;可以非常方便與spring項目無縫集成。特別是在spring boot項目中加入sprin…