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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...