C++入門指南及實戰 第三步 基本變量

在C++編程中,內置了一些基本數據類型用來存儲一些不同類型的值。有字符類型 char 用以存儲字符,如a、b、c、d、-、=、1、2、4、3、>、?等;有整形 int 用以存儲整數類型,如1、2、3、4、5、11、111、2311等;有浮點類型 float,用以存儲浮點數 1.23、1.1、2.31、3.412等;有布爾類型用以存儲布爾值,如 Ture、False。
以上介紹并不完全的介紹完C++中的類型,還有許多并未列出,只列出了一部分的常用類型。
在C++中當內置的類型不能滿足開發需求時,也可以自定義,自己創建一個類型。

變量

變量指在編程中用來存儲值的容器。變量必須使用一個類型進行描述,表示該變量屬于什么類型。如有一個變量 a,在c++中整形是用int表示,那么使用整形對變量a進行描述則可以寫為:int a

整形

以上的簡介中,已知整形是使用int表示,在整形中還分為短整形、長整形以及整形。短整型、長整形、整形的區別是在于他們之間的存儲空間①。短整型是16位②,長整形與整形的存儲空間就是32為位。(編譯器版本不一樣準尋的標準不一致,當下我使用的是gcc 4.9.2)首先查看如何新建一個整形變量,并且賦予一個值:

注解: 一些概念了解即可,對于初學者并不是需要剛開始就能完全理解①內存空間指數據存儲位置的空間,抽象概念②位指的是二進制位,二進制10占2位置稱為2位,111占3個位置則稱為3位,16位則表示可比表示為 1111 1111 1111 1111 ,指最大可存儲數字

#include<iostream>
using namespace std;int main(){int a=10;return 0;
}

以上代碼中,整體框架跟上一節內容一致,主要查看amin入口內花括號中所寫的的代碼

 int a=10;

以上代碼使用 int 表述 變量a,并且用個等于號 把 10這個整數值給予 a 變量。
描述一個變量只需要在這個變量前使用一個類型的關鍵字,隨后一個空格與變量名隔開,變量進行值的存儲需要一個等于號,等于號表示把等于號右邊的值 10 裝進a這個變量容器之中,隨后一個分號表示結束。這樣就完成了一個變量的值的創建于復制。

接下來可以使用cout 進行輸出變量,上一節中,使用cout 輸出字符是 count<<"HelloWorld";,輸出字符串需要使用雙引號引起來,但是變量不需要,直接寫成如下代碼示例即可cout<<a;

#include<iostream>
using namespace std;int main(){int a=10;cout<<a;return 0;
}

結果如下:
在這里插入圖片描述
注意,以上代碼是有邏輯順序的,先定義變量a,并且賦值后才可以輸出,如果沒有定義變量a,就直接輸出是不行的,以下是錯誤的方式:

#include<iostream>
using namespace std;int main(){cout<<a;int a=10;return 0;
}

結果會報錯:
在這里插入圖片描述
剛剛說到,使用short int 短整型,存儲空間只能存16位,我們可以使用計算機自帶的計算機查看一下 1111 1111 1111 1111 轉換成十進制的數位多少,步驟如下:
打開計算器選擇查看,點擊程序員
在這里插入圖片描述

輸入16個1,隨后點擊十進制查看值為多少在這里插入圖片描述
在這里插入圖片描述
值為65535,這個時候把變量a所存儲的10更改為65535:

#include<iostream>
using namespace std;int main(){short int a=65535;cout<<a;return 0;
}

結果如下:
在這里插入圖片描述
此時應該存儲的值為最大存儲值,應該裝滿了,不能網上裝了,這時我們把65535改為65536:

short int a=65536;

這時數據將會溢出結果如下:

在這里插入圖片描述
現在我們把存儲數據再一次進行更改:

short int a=65538;

這時數據溢出的值多了2,這時運行代碼得到的值為:
在這里插入圖片描述
因為數據溢出就像時鐘一樣,繞了一圈又從起始開始。

有無符號

在C++ 中,整數類型還分為有符號和無符號兩種,符號可以理解為符號- 與正號+ ,描述使用的關鍵字是 有符號 signed 與 無符號 unsigned。用來描述以上示例的整形可以寫為:

signed short int a=65538;

修改以上示例:

#include<iostream>
using namespace std;int main(){signed short int a=-65538;cout<<a;return 0;
}

運行結果如下:
在這里插入圖片描述
當我們使用無符號進行對象的描述:

#include<iostream>
using namespace std;int main(){unsigned short int a=-65538;cout<<a;return 0;
}

結果如下:

在這里插入圖片描述
由于不接受負數帶符號的顯示,65535為短整型,65536為0,那么就會顯示出65534。由于編譯器遵循的標準不一致會出現不同的情況,按照讀者自己 的演示結果為標準。整型相關內容不再繼續詳講,有機會將會在此篇列出不同標準執行的不同結果。示例想讓讀者明白的是存儲空間有大小限制,需要在開發時注意這個會觸發bug的知識點。

字符

相信有了以上的知識,在這一節內容中,大家將會很快的學會字符變量的定義。
字符類型修飾符為 char,后面接變量名,寫為 char a,隨后等于號,并且用單引號表示字符 char a='c';,完整示例如下:

#include<iostream>
using namespace std;int main(){char a='c';cout<<a;return 0;
}

結果如下:
在這里插入圖片描述
在此注意,單個的符號數字才叫字符,組合成的為字符串。如果你寫成了多個字符組合,那么只取最后一個字符為字符變量的值,并且字符變量值只能用單引號表示(一定是英文輸入法的標點符號):

#include<iostream>
using namespace std;int main(){char a='ce2112d';cout<<a;return 0;
}

結果如下:
在這里插入圖片描述

浮點

浮點類型使用float關鍵字進行修飾,float a=1.41表示定義了一個浮點類型的變量a,值為1.41:

#include<iostream>
using namespace std;int main(){float a=1.41;cout<<a;return 0;
}

結果如下:
在這里插入圖片描述
浮點數分為單精度 float 與 雙精度浮點double,區別在于精度,在此并不做過多講解。

c++教程持續更新中,歡迎點贊、收藏、關注。

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

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

相關文章

OPCServer Modbus使用和配置

一&#xff0c;安裝KEPware.Enhanced.OPC.DDE.KEPServer。(PLC數據傳送給KEPServer,開發的程序用OPCServer讀KEPServer) 設置ip地址后面是指的plc站號&#xff0c;此處必須和plc上站號對應。否則無法接收數據。 打開quick client 查看傳值情況 二.C#程序代碼 引用opcdaauto.dll…

C# 創建命名管道服務器

通過創建 NamedPipeServerStream 的一個新實例&#xff0c;來創建服務器。NamedPipeServerStream 派生自基類 PipeStream&#xff0c;PipeStream 派生自 Stream 基類&#xff0c;因此可以使用流的所有功能&#xff0c;例如&#xff0c;可以創建CryptoStream 或 GZipStream&…

在香蕉派 Banana Pi BPI-M1上使用 開源 OxOffice Impress

2019獨角獸企業重金招聘Python工程師標準>>> 在香蕉派 Banana Pi BPI-M1上使用 開源 OxOffice Impress 在Banana Pi BPI-M1上使用OxOffice Impress&#xff0c;該簡報大小約26MB&#xff0c;採用自動播放機制。 OxOffice提供 arm linux的版本&#xff0c;可佈署在ar…

免殺新姿勢:利用線程將惡意代碼注入到內存中

本文講的是免殺新姿勢&#xff1a;利用線程將惡意代碼注入到內存中&#xff0c;產生存放遠程攻擊線程的進程在這篇文章中我不想一步一步解釋我編寫的C#代碼&#xff0c;但是我會展示下它能夠繞過殺毒軟件&#xff0c;并且操作非常簡單&#xff0c;而且實用。 首先說明一下&…

【經典回放】多種語言系列數據結構算法:希爾排序

【希爾排序原理】每隔sp(整數)個數即取數并判斷大小,交換,先構造局部有序序列,直到sp為1,構造完整的有序序列。 給出一組數據,如下: 0 1 2 3

Java之解決散列表的沖突用開放定址法和鏈表法

1 問題 理想狀態下&#xff0c;散列表就是一個包含關鍵字的固定大小的數組&#xff0c;通過使用散列函數&#xff0c;將關鍵字映射到數組的不同位置&#xff0c;哈希函數可以將關鍵字均勻的分散到數組的不同位置&#xff0c;不會出現兩個關鍵字散列值相同&#xff08;假設關鍵…

python 手把手教你基于搜索引擎實現文章查重

前言 文章抄襲在互聯網中普遍存在&#xff0c;很多博主都收受其煩。近幾年隨著互聯網的發展&#xff0c;抄襲等不道德行為在互聯網上愈演愈烈&#xff0c;甚至復制、黏貼后發布標原創屢見不鮮&#xff0c;部分抄襲后的文章甚至標記了一些聯系方式從而使讀者獲取源碼等資料。這…

lru算法實現 redis_使用數組與雙向鏈表實現一個簡單的LRU算法

什么是LRU算法&#xff1f;redis大家都玩過吧&#xff0c;你們好奇redis內存數據存滿之后會發生什么嗎&#xff1f;拋出異常&#xff1f;禁止使用&#xff1f;還是刪除數據&#xff1f;其實redis設計了一種內潤淘汰機制。noeviction(默認策略)&#xff1a;屏蔽寫操作&#xff0…

【經典回放】多種語言系列數據結構算法:歸并排序

目錄 干貨1:C#語言實現歸并排序! 干貨2:C語言實現歸并排序! 干貨1:C#語言實現歸并排序! 一、算法 1、思想基礎

Java對象和類

轉自原文&#xff1a;http://www.yiibai.com/java/java_object_classes.html java是一種面向對象的語言。由于具有面向對象特性的語言&#xff0c;Java支持以下基本概念&#xff1a; 多態性繼承封裝抽象化類對象實例方法消息解析在本章中&#xff0c;我們將探討類和對象這些概念…

bzoj3224 Tyvj 1728 普通平衡樹題解--Treap

題面&#xff1a; Description您需要寫一種數據結構&#xff08;可參考題目標題&#xff09;&#xff0c;來維護一些數&#xff0c;其中需要提供以下操作&#xff1a; 1. 插入x數 2. 刪除x數(若有多個相同的數&#xff0c;因只刪除一個) 3. 查詢x數的排名(若有多個相同的數&…

Blazor University (18)使用 RenderFragments 模板化組件 —— 創建 TabControl

原文鏈接&#xff1a;https://blazor-university.com/templating-components-with-renderfragements/creating-a-tabcontrol/創建一個 TabControl 組件源代碼[1]接下來我們將創建一個 TabControl 組件。這將教您如何實現以下目標&#xff1a;將數據傳遞到 RenderFragment 以為其…

Java之GC機制

1 JVM基本結構 1&#xff09;類加載器classLoader&#xff1a;在JVM啟動時或者類運行時將需要的.class文件加載到內存中 2&#xff09;內存區域&#xff08;運行時數據區&#xff09;&#xff1a; 是在JVM運行的時候操作所分配的內存區 3&#xff09;執行引擎&#xff1a;負…

ArcGIS實驗教程——實驗十八:疊置分析(Overlay Analysis)

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據) 目 錄 一、實驗描述 二、實驗內容 三、實驗目的 四、實驗數據

《零基礎看得懂的C語言入門教程 》——(一)脫離學習誤區

本節視頻連接&#xff1a; https://www.bilibili.com/video/BV1Qv411t7ae 新手C語言學習有些誤區你應該知道&#xff0c;這樣學習起來事半功倍~一、前言 距離上一次編寫C語言的教程是5年前了&#xff08;2015年&#xff09;&#xff0c;由于自己是從初一時開始學習編程&#…

一套完整的導視設計案例_色彩導視藝術:烏克蘭基輔語言學校導視設計案例

學校導視設計案例建筑師Emil Dervish為烏克蘭基輔Underhub語言學校設計了色彩繽紛的導視系統&#xff0c;該設計靈感來源于倫敦地鐵&#xff0c;他希望通過彩色線條的大膽應用來營造輕松而歡樂的氛圍。讓我們一起來看看這座由“彩虹”做導視的學校。彩虹導視設計跟著紅色導視線…

C# 創建匿名管道

下面對匿名管道執行類似的操作。通過匿名管道&#xff0c;創建兩個彼此通信的任務。為了給管道的創建發出信號&#xff0c;使用 ManualResetEventSlim 對象&#xff0c;與內存映射文件一樣。在 Program 類的 Run 方法中&#xff0c;創建兩個任務&#xff0c;調用 Reader 和 Wri…

內測投票

create table DiaoYanTiMu &#xff08;  Ids int(10) auto_increment not null primary key(),//把所需要的都寫上中間不需要符號隔開&#xff0c;設自增長列類型必須是int&#xff0c;主鍵的話必須不能為空not null&#xff0c; Title varchar(50) not null &#xff09;;/…

Android之通過Binder機制實現IPC和linux的傳統IPC的對比分析

一、 Android的Binder機制實現IPC 這里bind機制實現實現IPC模型這里不具體分析,簡單理解就是clint-server模型 涉及到4個模塊client、server、serverManager、bind底層驅動。 serverManager的作用是將字符形式的Binder(Server創建了Binder實體)名字轉化成Client中對該Bin…

Mysql 查詢統計練習

2019獨角獸企業重金招聘Python工程師標準>>> 1、建表 customers 顧客表 products 產品表 orders 訂單表 -- 顧客表 CREATE TABLE customers (c_id INT NOT NULL AUTO_INCREMENT,lastname VARCHAR(255),firstname VARCHAR(255),address VARCHAR(255),birthday DATETI…