1 簡單變數
c++內建型別:
基本型別/算術型別:整型(bool、char、wchar_t、符號整型(signed char、 short、 int、long、long long)、無符號整型(unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long)、char16_t,char32_t)、浮點型(float、double、long double)
復合型別:陣列、字串、指標和結構
標識資料的方法:
使用&運算子檢索變數名的記憶體位址。
使用指標標識。
變數名:
區分大小寫
乙個下劃線開頭的名稱被保留給實現,用作全域性識別符號
變數命名和函式命名一樣
整型:
最小長度:
char 8位; short 16位; int 16位; long 32位; long long 64位;
有無符號;
sizeof返回型別或者變數的長度,單位為位元組
標頭檔案climits中包含了整數限制的資訊:最大取值,位元組位數
預處理編譯命令:#define 和 #include 一樣
為提高可移植性,int可用long
climits中的符號常量
無符號型別:
short:[0,65535]
預設是有符號
signed max_short + 1 = signed min_short
unsigned min_short - 1 = unsigned max_short
整數溢位
整型字面值:
十進位制八進位制
注意:endl為控制符;其他控制符:dec、hex、oct;識別符號hex位於命名空間std中;
防止溢位:使用long或者long long
char型別:
儲存字元
cout會自動識別資料型別,是智慧型物件的乙個例子。
成員函式cout.put():
類ostream;cout物件;put()成員函式;
轉義序列的編碼:
通用字元名的用法類似於轉義序列:
以\u(後接8個十六進製制位)或者\u(後接16個十六進製制位)開頭。
處理日文漢字系統:
1是編譯器廠商可以將char定義為乙個16位的位元組或更長的位元組。
2是wchar_t(寬字元型別)可以表示擴充套件字符集。
其中,wcin和wcout可以處理wchar_t流
c++11中新增:
char16_t:無符號,16位,字首u表示字元常量和字串常量
char32_t:無符號,32位,字首u表示常
都有底層型別-內建的整型。
bool型別:
bool型別可以轉換為int型別,也可以將數字值或者指標值轉換為bool值。
2 const限定符
名稱的首字母大寫,以提醒該名稱是常量;
另一種是以字母k開頭;
如果在宣告常量時沒有提供值,則該常量的值不確定,且無法修改。
#define建立常量時可以將整個名稱都大寫;const相對於#define的好處:可以指定型別,作用域可以為特定函式中。
3 浮點數
能夠表示帶小數部分的數字;提供的值範圍更大,可以表示整數之間的值;使用縮放因子移動小數點的位置;
浮點數的表示方法:
1是使用小數點。
2是使用e表示法。適合非常大和非常小的數。指數為負數時,除以10的乘方。
e表示法
浮點型別:
3種:float,double,long double;
至少有效位數要求:32位, 48位, ==long double;
通常:32位,64位,80/96/128位;
指數範圍至少:[-37,37]
通常:cout會刪除結尾的零,而cout.setf()會覆蓋這種行為;
cout.setf()迫使輸出使用定點表示法,以便更好地了解精度,防止程式把較大的值切換為表示法,並使程式顯示到小數點後6位。
float型別只能表示數字中的前6位(四捨五入後的有效位,保證精度下的正確值)或者前7位,後面的數發生改變時不影響值。
浮點常量:
系統預設將浮點數存為double型別,若使用float時,使用f或者f字尾;使用long double時,使用l或l字尾;
優缺點:
優點:表示整數之間的值;縮放因子可以使表示的範圍大得多;
缺點:運算速度通常整數運算慢,且精度降低;
4 算術運算子
優先順序和結合性
除法:
各種除法
型別轉換:
潛在的數值轉換問題:
以{}初始化時轉化:
常用於給複雜的資料型別提供值列表,條件是編譯器知道目標變數能正確地儲存賦給它的值;
非常量不允許轉換;
表示式中轉換:
c++11的校驗表,編譯器將以此查閱該列表:
傳遞引數時轉換
強制型別轉換
通用格式:(typename) value;
typename(value):類似於函式呼叫
C 資料處理
時間限制 1 sec 記憶體限制 64 mb 提交 92 解決 22 標籤 提交統計 討論版 做完大學物理實驗後,wyl同學得到了很多比例形式的實驗結果。比如1498 902,337 124等等。不過,老師對這些比例很不滿意。因為比例的數值太大,難以一眼看出與理論值的關係。對於上面這個例子,如果把比...
C 處理JSON資料
第一種 右擊專案 新增 引用 這裡重點介紹第二種方式。第二種 使用nuget包,對沒錯,是json.net 需要引入的命名空間是 這種方式直接使用工具,不需要進行new。生成json檔案 對於序列化和反序列化的理解 反序列化 從外部 磁碟或者網路 讀入的檔案反序列化之後讀入記憶體。序列化 記憶體中的...
C 多執行緒處理資料
os centos 7 編譯環境 gcc 4.8 cpu 2顆 intel r xeon r cpu e5 2670 v3 2.30ghz,24核48執行緒。int pthread create pthread t thread,const pthread attr t restrict attr,...