日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ 复合类型 读书笔记(二)

發布時間:2024/3/7 c/c++ 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ 复合类型 读书笔记(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • String類
    • string拼接 賦值
  • struct
    • 結構數組
    • 結構中的位字段
  • 共用體(union)
  • 枚舉(enum)
    • 設置枚舉量的值
    • 枚舉量的取值范圍
  • 指針與c++基本原理
    • 聲明和初始化指針
    • 指針與數字
  • 引用

String類

使用string類,要包含頭文件string;
string類位于名稱空間std中,因此要提供一條using編譯指令,或者使用std::string

#include <iostream> #include <string>int main() {using namespace std;string str1;string str2="bottom";cin>>str1;cout<<str2[2];return 0; }

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++中可以使用賦值運算符=將結構賦值給另一個同類型的結構,這種賦值被稱為成員賦值;

struct person {string name;int age;char sex; }; person zs={"zhangsan",20,'m'};//在定義結構的同時完成創建結構變量的工作 struct person {string name;int age;char sex; }zs; //這種沒有名稱的結構類型,除了在定義結構類型的時創建變量,以后就無法創建這種類型的變量 struct {string name;int age;char sex; };

結構數組

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++ 复合类型 读书笔记(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。