C++基礎之變數

来源:https://www.cnblogs.com/jalja365/archive/2020/05/19/12920163.html
-Advertisement-
Play Games

C++語言中加入了面向對象的概念,雖然C語言的語法絕大部分都被保留在C++語言中,但C++的程式結構與C語言的程式結構存在很大差別。C++語言對C語言做了很多改進,C++語言相對於C語言的最根本的變化是引進了類和對象的概念。 ...


一、C++的特點

1、C++語言的特點
它是C語言的繼承,儘量相容C語言,既保持了C語言的簡潔和高效,可以像C語言那樣進行結構化程式設計,同時也增強了C語言對類型的處理。
加入了面向對象的特征,可以進行以抽象數據類型為特點的基於對象的程式設計,還可以進行以繼承和多態為特點的面向對象的程式設計。

2、與C語言相比,C++語言的優點:
(1)從程式運行的穩定性來說,C++語言比C語言更安全,它支持過程化編程、面向對象編程和泛型編程。因為能夠支持面向對象的開發方式,所以C++語言的應用領域更加廣泛。
(2)C++語言可運行於多種平臺上,如Windows、MAC操作系統及UNIX的多種版本。
(3)C++語言中加入了面向對象的概念,雖然C語言的語法絕大部分都被保留在C++語言中,但C++的程式結構與C語言的程式結構存在很大差別。C++語言對C語言做了很多改進,C++語言相對於C語言的最根本的變化是引進了類和對象的概念。

二、基礎語法

C++工程中只能有一個main() 函數

1、基本的輸入/輸出

在C++中,可以使用流提取運算符“>>”從標準輸入設備鍵盤取得數據。

  • cin 是一個標準的輸入流對象, “cin>>x;”從鍵盤獲取輸入數據並賦給變數x。使用cin可以獲得多個來自鍵盤的輸入值。
  • cout是一個標準輸出流對象,使用流插入運算符“<<”向輸出設備屏幕輸出信息。
void cinAndCout(){
    int x=0;
    cin>>x;
    cout << "Hello, World!=>" << x <<  endl;
}

真題:已知:"int a=5;char c='a';"則輸出語句cout<<c+1<<a<<c;的顯示結果是(985a)   解答:'a'+1 是一個算數運算,a轉為int 對於的ascII 嗎是97 所以 c+1=98

2、頭文件

頭文件:在C++中一個C++源文件如果要使用其他C++文件的內容,那麼他必須包含其頭文件,使用#include指令

  • ostream是C++的標準輸入/輸出流。當在程式中使用cin或cout時,必須在程式的最前麵包含這個流。
  • 每條#include指令僅可以包含一個頭文件,如果需要包含多個頭文件,則需要使用多條#include指令。
  • 在C++中,頭文件不再以“.h”結尾,以“.h”結尾的頭文件是C語言中常用的頭文件。

當使用尖括弧時,C++編譯器將首先在C++系統設定的目錄中尋找要包含的文件,如果沒有找到,再到指令中指定的目錄中去查找。採用雙引號時,C++編譯器在用戶當前目
錄下或指令中指定的目錄下尋找要包含的文件。例如,要包含e:\myprog目錄下的頭文件ex1.h,相應的語句如下:#include"e:\myprog\ex1.h“

常用的頭文件有以下一些。

  • 標準輸入輸出流:<iostream>。
  • 標準文件流:<fstream>。
  • 標準字元串處理函數:<string>。
  • 標準數學函數:<cmath>。
#include <iostream>
#include <string>
#include"e:\myprog\ex1.h“

3、命名空間

C++中為了避免名字定義衝突,特別引入了“命名空間”的定義,即namespace。命名空間的作用是為了消除同名引起的歧義。 using namespace std;

namespace 命名空間名{
  命名空間內的各種聲明(函數聲明、類聲明、……)
}

namespace MyTest{
    int add(int a,int b){
        return a+b;
    }
}
int main() {
    int m=MyTest::add(1,3);
    cout << "m=:" << m << endl;
    return 0;
}

4、C++中的基本數據類型

整型:整形包括短整型、整形和長整形。

  • 1、短整形:兩個位元組,例如:short a=1;
  • 2、整形:一般占4個位元組(32位),最高位代表符號,0表示正數,1表示負數,取值範圍是-2147483648~2147483647,在記憶體中的存儲順序是地位在前、高位在後;定義:用int關鍵字,例:int a=6;
  • 3、長整形:一般8位元組    long a=10;

浮點型:浮點型包括單精度型和雙精度型。

  • 1、單精度型浮點型,又稱實型,也稱單精度。一般占4個位元組(32位),例如:float a=4.5;
  • 2、雙精度型:一般占8個位元組(64位) 例如: double a=4.5;

字元類型:在各種不同系統中,字元類型都占一個位元組(8位)。例如: char c='a'; 也可以用字元對應的ASCII碼賦值,如:char c=97;

#include <typeinfo>
void number(){
    int num_I=10;
    long num_L=12;
    short num_s=20;
    float  num_f=12.3;
    double  num_d=12.3;
    char num_c='A';
    cout<<"type"<< typeid(num_I).name()<<endl;
}

5、數據類型轉換

強制類型轉換(顯式類型轉換):static_cast用於將一種數據類型轉換成另一種數據類型,使用格式如下:static_cast<類型名>(表達式)其功能是把表達式轉換為類型名所指定的類型。static_cast也可以省略。
int oneInt2=static_cast<int>(12.34); //強制類型轉換
int oneInt3=int(12.34); //強制類型轉換運算符的新形式
int oneInt4=(int)12.34; //強制類型轉換運算符的舊有形式
int oneInt5=12.34; //自動類型轉換

隱式類型轉換:

    long num_L=12;
    double  num_d=12.3;
    cout<<"type="<< typeid(num_L+num_d).name()<<endl; // d double 類型

6、C++程式的編輯步奏

編寫C++程式一般需經過的幾個步驟依次是:編輯、編譯、連接、運行

  • 編輯:編寫.cpp的源文件
  • 編譯:C++編譯器將源文件編譯位為位元組碼文件
  • 連接:鏈接就是把自己寫的源代碼的目標文件與庫函數的目標文件組合起來(#include指令),生成最終的可執行文件
  • 運行:執行.exe

 


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

-Advertisement-
Play Games
更多相關文章
  • 發版流程 SNAPSHOT(快照版)--->M1(里程碑1)--->M2--->M3--->RC1(候選版本1)--->RC2--->Release(正式版)--->SR1(正式版第一次修複)--SR2--->SR3 選擇SR2版本之後的版本比較合適。之前的會有很多坑 ...
  • PYTHON 補充知識點 面向對象三大特性:封裝,繼承和多態。 繼承的意義在於兩點: 第一,子類如若繼承自父類,則自動獲取父類所有功能,並且可以在此基礎上再去添加自己獨有的功能。 第二,當子類和父類存在同樣方法時,子類的方法覆寫了父類的代碼,於是子類對象執行的將是子類的方法,即“多態”。 多態到底有 ...
  • 1 前言 良好的代碼習慣是一個優秀程式員應該具備的品質,但靠人的習慣與記憶來保證代碼質量,始終不是一件靠譜的事。在電腦行業應該深知,只要是人為的,都會有操作風險。本文講解如何通過 搭建代碼檢測平臺 ,並使用它來檢測 項目的代碼。 2 Docker安裝SonarQube 2.1 安裝 通過 安裝,方 ...
  • Spring Boot 教程 Mybatis 1. 什麼是Mybatis? MyBatis 是一款優秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數和獲取結果集的工作。MyBatis 可以通過簡單的 XML 或註解來配置和映射原 ...
  • Spring Boot 教程 HelloWorld 1. Spring Boot 的由來 大家都知道,Spring框架是Java生態中舉足輕重的輕量型框架,幫助我們廣大的大佬們進行Java開發。Spring框架的發展非常的迅速,從最開始的Spring核心容器幫助我們管理Java對象,到後來各種業務上 ...
  • C++語言規定,提供預設值時必須按從右至左的順序提供,即有預設值的形參必須在形參列表的最後。如果有某個形參沒有預設值,則它左側的所有形參都不能有預設值。調用函數時,主調函數的實參與被調函數的形參按從左至右的順序進行匹配對應。 ...
  • 序言 What is Webscoket ? websocket 應用場景 簡版群聊實現 代碼例子 小結 Webscoket Websokcet 是一種單個 "TCP" 連接上進行 "全雙工" 通信的協議,通過 "HTTP" /1.1 協議的101狀態碼進行握手。 http://websocket. ...
  • Java 1.1Java簡介 Java是一種跨平臺的,面向對象的程式設計語言。無論是電腦還是手機,到處都運行著JAVA開發的應用程式;JAVA程式可以在任何電腦、操作系統以及支持JAVA的硬體設備上運行。 什麼是JAVA語言? Java是前Sun公司(現甲骨文股份有限公司Oracle)於1995年 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...