c++ 复合类型 读书笔记(二)
目錄
- String類
- string拼接 賦值
- struct
- 結構數組
- 結構中的位字段
- 共用體(union)
- 枚舉(enum)
- 設置枚舉量的值
- 枚舉量的取值范圍
- 指針與c++基本原理
- 聲明和初始化指針
- 指針與數字
- 引用
String類
使用string類,要包含頭文件string;
string類位于名稱空間std中,因此要提供一條using編譯指令,或者使用std::string
string拼接 賦值
string str1; string str2="top"; str1=str2;//這種用法在數組中不被允許的string的拼接可以用運算符+將兩個string對象合并起來;
strcpy(str1,str2); //把str2的值拷貝給str1 等同于str1=str2 strcat(str1,str2); //把str2的內容添加到str1的后面這兩個函數比上面兩個函數多了一個參數(長度N) strncpy(); strncat();確定字符串中字符數的方法:
int len = str1.size(); //size()是類的一個方法, int len1 = strlen(str1);struct
c++中在聲明結構體變量時,struct可省略;
與c中結構體不同的是,c++結構除了成員變量之外,還可以有成員函數;
c++中可以使用賦值運算符=將結構賦值給另一個同類型的結構,這種賦值被稱為成員賦值;
結構數組
person pop[100]; 這里的pop是一個person類型的數組,它的每一個元素都是person對象; cout<<pop[2].name;在初始化結構數組: person pop[2]= {{"zhangsan",20,'m'},{"lisi",15,'n'} };結構中的位字段
字段的類型應為整型或枚舉,可以使用沒有名稱的字段來提供間距。每個成員都被成為位字段。
struct regi {unsigned int sn:4;unsigned int : 4;bool goodin:1;bool goodtor :1; };初始化也以通常的方式去初始化這些字段;訪問也是。共用體(union)
共用體是一種數據類型,它能夠存儲不同的數據類型,但只能同時存儲其中的一種類型。
共用體的長度是其最大成員的長度。
用途:當數據項使用的是兩種或更多中格式時(不會同時使用),可節省空間;
當結構的其中一個數據成員為共同體時,要訪問共用體當中的成員要使用:
結構體變量.共用體變量.共用體成員若共用體為匿名共用體。其成員將成為位于相應地址處的變量,由于他們的地址相同。所以不需要中間標識符,訪問時使用:
結構體變量.共用體變量枚舉(enum)
提供一種創建符號常量的方式
enum spet {red,orange,yellow,green,blue,violet,indigo,ultraviolet};這條語句完成了: 讓spet成為新類型的名稱,spet被稱為枚舉 將{red,orange,yellow,green,blue,violet,indigo,ultraviolet作為符號常量,它們對應的數值為0~7.這些常量叫做枚舉量。在不強制類型轉換的情況下,只能將定義枚舉時使用的枚舉量賦給枚舉的變量;
例如: spet band ; band= orange;//若band=1則為錯誤,因為1不是枚舉量,orange才是設置枚舉量的值
顯示的設置枚舉量的值; enum bits{one=1,two=2,four=4};指定的值要為整數。也可以顯示的定義部分枚舉量的值 enum bits{one,two=100,fou}; one在默認情況下為0,后面沒有被初始化的枚舉量的值將比前面的枚舉量的值大1;fou為101還可以創建多個值相同的枚舉量: enum {zero,null=0,one,numero=1}; 其中zero,null都為0,one,numero都為1枚舉量的取值范圍
每個枚舉都有取值范圍,通過強制轉換,可以將取值范圍中的任何整數值賦給枚舉變量。即使這個值不是枚舉值。
enum bits{one=1,two=2,four=4}; bits flag; flag=bits(3);3不是枚舉值,但他位于枚舉定義的取值范圍內; 取值范圍定義:首先,找出上限,需要知道枚舉量的最大值。找到大于這個最大值的,最小值的2的冪。將他減去1,得到的是取值范圍的上限,如果最小值不小于0,則取值范圍的下限為0;例如最大值為101,比這個數大的最小2次冪是128,因此上限為127;下限與上限相同,但要加上負號。選擇用多少空間來存儲枚舉有編譯器決定;
指針與c++基本原理
面向對象編程與傳統的過程性編程的區別在于。oop強調的是在運行階段進行決策,運行階段指的是程序正在運行時,編譯階段指的是編譯器將程序組合起來時。 運行階段決策提供了靈活性,可以根據當時的情況進行調整。 在c++中,使用關鍵字new請求正確數量的內存以及使用只恨來跟蹤新分配的內存的位置。聲明和初始化指針
指針在聲明是必須指定指針指向的數據的類型。
在c++中,int* 是一種復合類型,是指向int的指針
在使用指針時,要注意!
在c++中創建指針時,計算機將分配用來存儲地址的內存,但不會分配用來存儲指針所指向的數據的內存。為數據提供空間是一個獨立的步驟。 要在對指針應用解除引用運算符之前,將指針初始化為一個確定的,適當的地址。錯誤實例: long *follow; *follow=233;指針與數字
要將數字值作為地址來使用,應通過強制類型轉換將數字轉換為適當的地址類型:
int* pt; pt=(int *0)0xB9000000;引用
在聲明引用變量時進行初始化,必須在創建時進行初始化;
總結
以上是生活随笔為你收集整理的c++ 复合类型 读书笔记(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原来PWM这么简单!通过锯齿波作为载波和
- 下一篇: c++麻将