C++(4)--初识变量、数据类型
C++變量
- 1.C++ 命名規則
- 2.C++ 命名規范
- 3.C++ 數據類型
- sizeof ()
- 4.聲明和使用變量
- 4.1使用整型變量
- 4.2使用單精度浮點型變量
- 4.3使用雙精度浮點型變量
- 5.附送-cout 設置寬度,對齊方式
- 6.算術運算符和表達式
- 6.1除法、取余
- 6.2自加、自減
- 7.強制類型轉換
《老九學堂C++課程》《C++ primer》學習筆記?!独暇艑W堂C++課程》詳情請到B站搜索《老九零基礎學編程C++入門》
-------------簡單的事情重復做,重復的事情用心做,用心的事情堅持做(老九君)---------------
程序員通過指令控制計算機
指令和數據在存放在內存中–寄存器,讀寫速度塊。
一般說的內存條,內存條RAM。
內存的基本單位是bit。
變量:計算機中一塊特定的內存空間
通過變量的名字快速找到變量,C++中使用命名空間(namespace)來避免重名問題。
1.C++ 命名規則
關鍵字:C++編譯器預留出來的76個單詞,用戶變量名不能與之相同。在IDE中會以特殊的顏色顯示出來,例如:int,calss,double
2.C++ 命名規范
一些命名雖然不會有語法錯誤,但是不好。一個好的程序員,需要掌握一定的命名規范。
1.本地變量:小寫,下劃線連接
2.全局變量:以g_作為前綴,建議盡量少用全局變量
3.預處理指令: #defined 后全大寫,不加語句結束符號;
4.函數名:單詞首字母大寫,無下劃線連接
5.命名空間名字:全小寫
6.類名稱:單詞首字母大寫,無下劃線連接
7.注釋:文檔注釋,在文件的開頭,包括版本,許可,作者,日期,功能;函數注釋,注釋于函數之前,描述函數功能以及用法‘
8.括號:大括號放在函數,類名稱的下一行
3.C++ 數據類型
(20201106-25 數據類型小節)
–數值型
----整型-int, short, long, long long, bool, long bool
----非整型-float, double long double
–非數值型-string,
| 整型 | int | 32位-4個字節 | |
| 短整型 | short int | 16位-2個字節 | |
| 長整形 | long int | 32位(用int 和long么啥區別) | |
| 長整形 | long long | 64位(C++11的標準) | |
| 單精度浮點型 | float | 32位 | |
| 雙精度浮點型 | double | 64位(存儲位數較多的小數) | |
| 字符型 | char | 8位(C++中隸屬于整型) | [-128,127] |
英文字符用char,中文字符要用W char(寬字符)
c++ 中的其他常用數據類型: ,枚舉類型,自定義類型,指針類型(少用指針,多用引用),空類型(void)
size_t # 其實是一個無符號的整形,通過別名定義出來的
typedef unsigned int size_t
輸出int 數據類型的上界 INT_MAX:
INT_MAX輸出報錯的話,可以引入一個頭文件
# include <climits>
INT_MAX其實是一個宏定義常量,標識符號是一個
#define INT_MAX 21247XXXXX //
sizeof ()
用來測量數據類型的長度,單位是字節。c++中默認的小數是double型,后面+ 一個f變成浮點型.
#include <iostream> using namespace std; int main(){// sizeof 用來測量數據類型的長度cout << sizeof(double) << endl;cout << sizeof(long double) << endl;cout << sizeof(3.14) << endl;cout << sizeof(3.14f) << endl;return 0; }4.聲明和使用變量
變量聲明即定義一個變量,聲明的格式如下??梢栽诼暶鞯耐瑫r賦初值(建議使用這種方式);也可以僅聲明,后面再賦值。(變量第一次被賦予值的操作叫變量的初始化)
數據類型 變量名; // 僅聲明
數據類型 變量名=value; //聲明并初始化
4.1使用整型變量
一條聲明語句可以聲明多個相同類型的變量,編碼規范建議一行代碼只做一件事情。
int salary1, salary2, salary3;
int num1 = 10, num2 = 8;
使用變量,打印出來
cout << “小明的收入是:” << salary << endl;
4.2使用單精度浮點型變量
浮點型變量:32位,4個字節,6-7位有效數字,可以在數值的末尾加一個f
輸出超出有效位float 數會產生自動截斷:
int main(){float num = 12345.12345678;std::cout << num << std::endl;return 0; }12345.1
使用float類型變量的例子: 計算一個圓柱體的體積
#include <iostream> #include <cmath> int main(){// 已知圓柱體的半徑和高,求圓柱體的體積const float PI = 3.14; //定義了一個float 類型的常量,無法改變 float radius = 4.5f;float height = 90.9f;//double volume = PI * radius * radius * height;double volume = PI * pow(radius, 2) * height;std::cout << "體積是:" << volume << std::endl;return 0; }體積是:5779.88
4.3使用雙精度浮點型變量
直接輸出
int main(){// 輸出double類型的數字// 直接輸出的是6 位有效數字 3.33333std::cout << doublenum << std::endl;return 0; }3.33333
控制位數輸出,強制以數字的方式顯示
#include <iomanip> using namespace std; int main(){cout << fixed; //強制以小數的方式顯示,cout << setprecision(2); // 控制小數點后兩位數字double doublenum = 10.0 / 3.0;cout << doublenum << endl;return 0; }3.33
控制輸出寬度
int main(){//設置輸出寬度cout << setw(8) << "|" << 3.14 << "|";return 0; }輸出
|3.14||3.14| | 3.14|注意單精度浮點型的有效數字只有6-7位,在數字較大市,會產生截斷誤差
演示單精度浮點型和雙精度浮點型的精度問題。
#include <iostream> #include <cmath> #include <iomanip>using namespace std; int main(){// 演示單精度浮點型和雙精度浮點型精度問題float numFloat = 10 / 3.0;double numDouble = 10 / 3.0;cout << fixed;cout << "numFloat: " << numFloat << endl;cout << "numDouble: " << numDouble << endl;cout << "numFloat: " << numFloat * 10000 << endl;cout << "numDouble: " << numDouble * 10000 << endl;cout << "numFloat: " << numFloat * 1000000000 << endl;cout << "numDouble: " << numDouble * 1000000000 << endl;return 0; } numFloat: 3.333333 numDouble: 3.333333 numFloat: 33333.332031 numDouble: 33333.333333 numFloat: 3333333248.000000 //精度損失嚴重 numDouble: 3333333333.3333335.附送-cout 設置寬度,對齊方式
#include <iostream> #include <iomanip>// #include <windows.h> // SetConsoleTile("控制臺標題") // 在window系統之下才好用 using namespace std; int main(){// 轉義字符cout << "\a" << endl; //警報聲,沒聽到double attack1 = 272;double attack2 = 250;double attack3 = 240;// 默認輸出右對齊cout << setw(8) << attack1 <<setw(8) << attack2 <<setw(8) << attack3 << endl;// 設定輸出左對齊cout << left;cout << setw(8) << attack1 <<setw(8) << attack2 <<setw(8) << attack3 << endl;// 設定填充方式cout << setfill('_'); // 單引號和雙引號右區別,雙引號是要報錯的。cout << setw(8) << attack1 <<setw(8) << attack2 <<setw(8) << attack3 << endl;return 0; }輸出
272 250 240 272 250 240 272_____250_____240_____6.算術運算符和表達式
算術運算符:
一元運算符:++,–
二元運算符:+,-,*,、,%‘
表達式:運算符+操作數組成表達式
6.1除法、取余
#include <iostream> using namespace std; int main(){// 運算符和表達式int num1 = 5, num2 = 2;cout << num1 / num2 << endl;// 取模結果的符號和第一個操作數相匹配// 取模的應用場景: 取摸個數字的個位 15 % 10,45天式一個月零幾天 45 % 30cout << num1 % num2 << endl;cout << (-1 * num1) % num2 << endl;cout << num1 % (-1 * num2) << endl; }輸出
2 1 -1 16.2自加、自減
其實自加和自減再單獨使用的時候前置和后置都沒有區別,但是在和其他算子連用時才會體現出這個區別。
#include <iostream> using namespace std; int main(){// 運算符和表達式// 自加++和自減--// 放在后面的就是,先參與運算,自己再加; 放在前面就是自己先加,然后再參與運算。都是從自己出發// int num3 = (num2++) - (--num2); // num3 = (2)- (1) = 1,這個分析是錯的,這個編譯器頁過不去,會報錯// warning: unsequenced modification and access to 'num2' [-Wunsequenced]int num4 = num1 - (--num2); // 至少這樣是可以的cout << num2 << "\t" << num4 << endl;return 0; }輸出
1 47.強制類型轉換
類型轉換原則:把表示范圍小的類型值, 轉換到表示范圍大的類型值
short -> int -> long -> float -> double
強制類型轉換語法
(類型名) 變量或數值
輸出
2 2.5總結
以上是生活随笔為你收集整理的C++(4)--初识变量、数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Python Cookbook 3rd
- 下一篇: C++基础学习(01)--(介绍,环境配