C/C++編程筆記:C++入門知識丨認識C++的函數和對象

来源:https://www.cnblogs.com/yxy6/archive/2020/07/21/13357672.html
-Advertisement-
Play Games

一. 本篇要學習的內容和知識結構概覽 二. 知識點逐條分析 1. 混合型語言 C++源文件的文件擴展名為.cpp, 也就是c plus plus的簡寫, 在該文件里有且只能有一個名為main的主函數, 它作為程式的入口. 因為這個主函數的存在, 所以C++被稱為混合型語言. 2. C++語言當中的註 ...


一. 本篇要學習的內容和知識結構概覽

二. 知識點逐條分析

1. 混合型語言

C++源文件的文件擴展名為.cpp, 也就是c plus plus的簡寫, 在該文件里有且只能有一個名為main的主函數, 它作為程式的入口.  因為這個主函數的存在, 所以C++被稱為混合型語言.

2. C++語言當中的註釋

第一種: 單行註釋, 從 // 開始到本行結束. 像這樣: // 下麵的代碼是求最大值的

第二程: 多行註釋, 從 /* 開始到 */ 結束. 像這樣:

/*

  函數功能: 下麵的代碼是用來求最大值的

函數描述: 接收兩個整型參數, 返回它倆的最大值

*/

3. 輸入對象和輸出對象

我們在使用這兩個對象前, #include <iostream> 先引入這個頭文件, 並且使用命名空間: using namespace std; 之後就可以使用這兩個對象啦!

a. 輸入對象: cin, 輸出對象cout.

像這樣:

int a = 0; // 定義一個整型變數a, 賦初值為0

cout << a; // 列印這個值

cin >> a; // 使用cin對象獲取用戶輸入的值賦值給a

cout << a; // 使用cout對象輸出變數a的值

b. 當然我們也可以輸出字元串: 

cout << “我是被輸出的字元串!”;

c. 我們還可以字元串加變數值的拼接輸出:

cout << “用戶輸入的值為: ” << a << endl;

d. 我們也可以在輸出的時候進行換行

第一種: cout << “\n”;

第二種: cout << endl;

這兩個的效果是一樣的.

4. 使用命名空間

引入頭文件的方式有兩種, 系統頭文件用<>, 自定義頭文件用””

第一種: 帶.h引入頭文件

#include

第二種: 使用命名空間引入頭文件

#include <iostream>

using namespace std;

5. 對象的定義和初始化

int a = 0;

int z(0);

上面兩句話是等價的, 作用: 申請記憶體空間, 給記憶體空間命名, 向這塊記憶體中寫入數據.

不過我們一般都使用第一種方式.

6. 函數原型及其返回值

函數及變數的使用規則: 先聲明, 後使用. 變數有時也可以邊聲明, 邊使用.

我們在main函數後面定義的函數, 如果想要在main函數內使用, 就必須在main函數前聲明, 告訴編譯系統, 後面有這個函數, 我要用啦! 當然也可以把函數定義放在main函數之前, 這樣就不用聲明啦!

像這樣: 

如果函數不需要返回值, 可以用void標識, 一旦使用void, 函數體不再使用return語句, 但是可以使用return;直接結束函數的執行, 返回到調用函數.

像這樣:

7. const修飾符及預處理程式

a. const修飾的變數, 在以後值不可再更改, 所以我們稱之為符號常量, 也必須在聲明時對符號常量進行初始化。

像這樣:

const int a = 5;

a = 10; // 錯誤, 符號常量a不可更改

但是用extern修飾的外部變數, 可以不用進行初始化.

像這樣:extern const int b; // 其中b為其它文件定義的外部符號常量

b. 用於代替巨集定義

#define M_PI 3.14 // 巨集定義是直接進行替換, 沒有類型檢查

const float M_PI 3.14; // 而const定義的符號常量, 是有類型檢查的, 更安全.

c. 預處理有有一種: 巨集定義, 條件編譯, 文件包含

第一種, 巨集定義: 在編譯期間, 將出現巨集的地方替換為指定代碼

第二種, 文件包含: 一個文件把另一個文件的內容包含進來.

像這樣:

第三種, 條件編譯

像這樣:

一般用於系統控制, 跟我們代碼中的if..else是一樣的, 用得比較少

8. 代碼書寫基本規範

a. 括弧緊跟在函數名後面, 我們見到名字加括弧, 很直觀的知道這是一個函數

b. for, while等關鍵詞和括弧之間要用一個空格隔開

c. 運算符左右各留一個空格

d. 在參數列表中, 每個逗號後面加空格, 這樣顯得更清晰

e. 合理添加空行和註釋, 讓代碼以組的形式和功能塊的形式呈現, 這樣就更完美啦!

我們每每在接觸一門新的語言的時候, 關註點總是放在關鍵字, 語法結構, 函數(方法)使用上, 而我們學習一個新的語言要學會得應該是基本素養和基本概念, 以及語言當中所包含的自己所特有的思想. 學會對比, 學會思考這門語言的優勢和不足, 相信大家一定會有所收穫, 而我也在向這方面所努力, 希望大家一塊來討論這門語言和或者其它的語言, 懂得分享才能更進一步!

自學C/C++編程難度很大,不妨和一些志同道合的小伙伴一起學習成長!

C語言C++編程學習交流圈子,【點擊進入微信公眾號:C語言編程學習基地

有一些源碼和資料分享,歡迎轉行也學習編程的伙伴,和大家一起交流成長會比自己琢磨更快哦!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Connection介面 該介面代表Java程式和數據的連接,只有獲取該連接對象,才能訪問資料庫來操作數據表 常用方法: 方法 說明 creatStatement() 創建並返回一個Statement實例,通常在執行無參數SQL語句時創建該實例 prepareStatement() 創建並返回一 ...
  • 介面預設方法 在介面中的方法前加上default關鍵字就可以在介面中寫方法的預設實現。 預設方法,介面的子類不需要實現,可以直接使用 可以定義一個或多個預設方法 以List介面為例,在Java8中新增了預設方法: public interface List<E> extends Collection ...
  • Stream API 使用一種類似於SQL語句從資料庫查詢數據的直觀方式對Java集合進行運算和表達。 將要處理的元素集合看作一種流, 流在管道中傳輸,我們可以在管道的節點上進行處理, 比如篩選, 排序,聚合等。 Stream的三個操作步驟為: 創建Stream:從一個數據源,如集合、數組中獲取流。 ...
  • 一:什麼是動態代理: 利用反射機制在運行時創建代理類。介面、被代理類不變。 二:動態代理和靜態代理的不同: 1、靜態代理的代理類是程式員事先寫好的 2、動態代理的代理類是在程式運行時動態生成的 三:動態代理分為兩大類: 1、基於介面的動態代理 2、基於類的動態代理 四:動態代理的三種實現方式: 1、 ...
  • HashMap的知識點可以說在面試中經常被問到,是Java中比較常見的一種數據結構。所以這一篇就通過源碼來深入理解下HashMap。 1 HashMap的底層是如何實現的?(基於JDK8) 1.1 HashMap的類結構和成員 /** HashMap繼承AbstractMap,而AbstractMa ...
  • selenium之彈框操作 一、分類 彈框類型自見解分為四種: 1,頁面彈框 2,警告提示框(alert) 3,確認消息框(confirm) 4,提示消息對話(prompt) 提示: selenium 提供switch_to_alert()方法定位到 alert/confifirm/prompt對話 ...
  • Spring事務的核心對象 ​ spring提供了三大介面來實現事務的控制 PlatformTransactionManager 此介面定義了事務的基本操作,因為此類是一個介面,所以我們創建事務對象,需要用其實現類DataSourceTransactionManager 方法 說明 DataSour ...
  • 01 不能直接返回局部變數的引用/地址 C++有時候還挺傻的,比如調用函數的時候,我就想返回一個局部變數的引用或指針(常想用於返回新建的數組/對象),是不正確的。 比如下麵這段代碼,用指針存儲變數 \(a\) 的地址並返回(直接返回 \(a\) 的地址的話,在編譯器那關就過不了): // 程式 #i ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...