亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++基礎入門教程(三):數組、字符串、結構體、共用體

2020-01-26 15:11:35
字體:
來源:轉載
供稿:網友

今天的標題取得..好嚴肅的感覺。(小若:咳噗)

這章的內容雖然還是很詳(lao)細(dao),但已經開始有很多值得記錄的內容了~
那么,今天就來初次介紹數組與字符串…以及結構體..還有共用體..吧。

1.數組

我記得大四實習的時候,請教同事:“什么是屬主?”(其實是和數據庫相關的東西)
然后同事驚訝地說道:“啊,你連數組都不知道..這,基礎還是要好好補補…吶,數組的意思呢,是這樣的…”
我聽著聽著就不對勁,“等等,這是數組…其實我是問這個屬主…”
然后同事松了一口氣,估計心里在想,“唉,嚇死我,我以為來了個渾水摸魚的實習生了”。
 
等等,我好像跑題了。
那么,數組這么簡單,我是不可能給大家介紹的了。
隨便說說它的聲明和初始化吧,如下代碼:

復制代碼 代碼如下:

// 1.普通人的聲明和初始化
int nums[3] = {25, 65, 4};
// 2.只聲明
int num[3];  // 這樣數組里的元素值是未知的
// 3.只聲明,然后賦值
int num[3];
num[0] = 1;
num[1] = 34;
num[3] = 9;
// 4.文藝青年的初始化
int nums[3] = {89}; // 第0個元素賦值為89,其他默認為0
int nums[3] = {};   // 所有元素的值都為0
// 5.非主流青年的初始化
int nums[] = {1,2,3,4,5}; // 不指定大小,由后面的賦值內容決定數組大小,書上說不推薦,我本人不評價~
// 6.新人類的初始化(C++11)
int nums[3] {1, 2, 3}; // 省略了等號

代碼里已經把大部分的情況都列出來了~
關于第3條的第二種,其實也是C++11的新特性。
 
最后,對于第6條這種的話,也是C++11的新東西,我個人不太喜歡~
這可能會讓不熟悉C++的人覺得很生疏(比如別人只是迫不得已要看一段C++代碼,結果出來了這句,可能會一下子蒙住)。
而其他的形式即使沒有學過C++的人也能很輕易地知道這是在定義一個數組。(好吧,隨便說說的)

2.字符串

字符串有兩種,一種是C風格的字符串,另一種是string(可以說是一個類了)
C風格字符串和數組很像,如下代碼:

復制代碼 代碼如下:

// 1.聰明人的初始化
char name[] = "mutou";
// 2.笨蛋的初始化
char name[6] = "mutou";
// 3.蛇精病的初始化
char name[6] = {'m', 'u', 't', 'o', 'u', '/0'};

這種風格的字符串就相當于char類型的數組了,但是它需要在最后加一個'/0'作為結束符(學過C的都知道喇)

我想,正常人都會使用第一種方式的(除非特殊情況?我還真不知道),”mutou”稱之為字符串常量,后面會自動給數組補上一個'/0'符號的。

接著就是string字符串了,使用方式如下:

復制代碼 代碼如下:

// 1.先聲明,再初始化
std::string name;
name = "mutou";
// 2.聲明和初始化
std::string name = "mutou";
// 3.復制其他字符串內容
std::string name1 = "mutou;
std::string name2 = "hello";
name1 = name2;   // 此時name1為"mutou"
name2 = "nihao"; // 此時name2為"nihao",name1仍然為"mutou"
// 4.連接字符串
std::string name = "mutou";
name += "hehe";

string在頭文件string里,所以使用的時候要加上 #include <string>。
并且它屬于命名空間std,所以也要加上std::
 
string字符串用起來很舒服,就像是本就該這么用的那種感覺~
如果使用C風格字符串,那么,復制字符串和連接字符串都會變得很麻煩(需要使用strcpy和strcat函數來完成)

3.原始字符串

還有一個比較有意思的字符串,叫做原始字符串。
我們都知道,字符串是用雙引號來包圍的,如果要在字符串中出現其他雙引號,就要用轉義字符/。
而使用原始字符串就可以避免這種麻煩,如下代碼:

復制代碼 代碼如下:

std::string name1 = R"("mutou")";
std::string name2 = R"*(("mutou"))*";
std::cout << name1.c_str() << "/n";
std::cout << name2.c_str() << "/n";

輸出結果如下:

復制代碼 代碼如下:

“mutou”
(“mutou”)

使用R開頭,再用“(和)”符號把字符串包圍起來,那么,中間的字符串就可以使用雙引號等原本需要轉義的字符了。
那么,name2字符串又是怎么回事呢?這是為了解決惡性循環的問題――如何在原始字符串里使用額外的 ( 字符呢?
于是,我們可以在“(中間添加一個*號,在)”中間也添加一個*,也就是變成這樣:R”*(…..中間很多字符串….)*”
于是就可以在字符串中間使用 ( 等字符了。
其實不一定得加*號,可以加其他東西,而且可以加好幾個,隨你喜歡,但也有限制,不能加空格、左右括號、斜杠和控制字符。

4.結構體

結構體應該算是類的前身吧~
比較簡單,不多說了,隨便看看:

復制代碼 代碼如下:

// 定義
struct BadMan
{
    char name[]; // 也可以使用 std::string name; 但可能有些編譯器不支持
    int age;
    long money;
};
// 使用
BadMan man1 =
{
    "mutou",
    18,
    99999999
};
man1.money = 88888888;

好吧,不多說了~

5.共用體

人格分裂聽過嗎?
沒聽過吧~人格分裂就是好幾個人的靈魂存在于同一個身體里,同時只能有一個靈魂在控制身體。(小若:瞎說~!)
 
C++也有這樣的東西,那就是共用體,看代碼:

復制代碼 代碼如下:

union ManyOne
    {
        int age;
        long money;
        float girl;
    };
    ManyOne mOne;
    mOne.age = 25;
    std::cout << mOne.age << "/n/n";
    mOne.money = 999990;
    std::cout << mOne.age << "/n";
    std::cout << mOne.money << "/n";

輸出結果是:

復制代碼 代碼如下:

25
999990
999990

共用體和struct很像,唯一有一點區別,那就是,共用體里的屬性只能同時存在一個。

比如剛剛的代碼,雖然age在之前賦值為25,但是一旦給其他屬性賦值,那么age的值將不被保留。
因為他們使用的是同一個空間,這點要記住。

因為共用體的所有屬性都是使用一個存儲空間的,所以共用體占內存的大小是以需要最大存儲空間的成員為準的。
 
也許第一次聽說共用體的人會迷糊,其實共用體可以想象成是一個變量有多個名字,我們可以用不同的名字去使用它們。

只不過,這不同的名字有著不相同的類型擺了。

6.結束

嗯,這本書實在是太詳(lao)細(dao)了,第四章還在繼續進行中。(小若:你覺得和你比起來,誰更嘮叨?)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩久久免费视频| 亚洲成人中文字幕| 色综合久久天天综线观看| 成人性教育视频在线观看| 青青在线视频一区二区三区| 亚洲欧美国产一本综合首页| www.亚洲一二| 精品夜色国产国偷在线| 成人性生交大片免费看视频直播| 成人有码视频在线播放| 久久精品国产欧美激情| 日韩免费在线电影| 亚洲精品电影网| 日韩av影院在线观看| 亚洲乱码一区二区| 精品一区二区三区三区| 欧美美女操人视频| 亚洲韩国欧洲国产日产av| 亚洲乱码av中文一区二区| 亚洲资源在线看| 国产精品久久久久久久美男| 欧美性xxxxx极品| 色妞在线综合亚洲欧美| 欧美黑人性生活视频| 日韩福利伦理影院免费| 中文日韩在线视频| 欧美国产高跟鞋裸体秀xxxhd| 国产午夜精品免费一区二区三区| 18性欧美xxxⅹ性满足| 日韩在线小视频| 亚洲free性xxxx护士白浆| 3344国产精品免费看| 国产精品偷伦一区二区| 在线观看日韩专区| 亚州国产精品久久久| 深夜福利国产精品| 欧美精品免费在线观看| 成人av在线天堂| 日韩精品在线免费| 国产99视频在线观看| 国产精品自拍偷拍视频| 亚洲精品wwwww| 久久精品亚洲精品| 欧美极度另类性三渗透| 日日狠狠久久偷偷四色综合免费| 中文在线资源观看视频网站免费不卡| 亚洲国产精品福利| 国产精品久久久久久久久久东京| 黑人与娇小精品av专区| 国产在线日韩在线| 国产一区二区丝袜高跟鞋图片| 亚洲精品乱码久久久久久金桔影视| 中文字幕日韩专区| 欧美在线精品免播放器视频| 国产精品一区二区久久久久| 精品一区精品二区| 97欧美精品一区二区三区| 日韩色av导航| 91亚洲精华国产精华| 国产精品高潮呻吟久久av黑人| 成人黄色在线免费| 国产精品aaa| 777午夜精品福利在线观看| 成人免费激情视频| 欧美一级黑人aaaaaaa做受| 亚洲欧美日韩精品久久奇米色影视| 国产日本欧美一区二区三区在线| 久久久久久噜噜噜久久久精品| 日韩精品中文字幕视频在线| 欧美乱大交xxxxx| 亚洲国产精品久久久久久| 中文字幕亚洲欧美在线| 欧美精品成人在线| 亚洲一区二区在线播放| 亚洲高清免费观看高清完整版| 国产日韩欧美视频在线| 国产精自产拍久久久久久| 国产欧美一区二区三区四区| xxxx欧美18另类的高清| 久久香蕉国产线看观看av| 国产精品美腿一区在线看| 亚洲成色777777女色窝| 国内免费精品永久在线视频| 91精品久久久久久| 亚洲欧美日韩精品| 性色av一区二区三区免费| 精品人伦一区二区三区蜜桃网站| 亚洲国产精品一区二区三区| 日韩在线观看你懂的| 亚洲xxxxx电影| 亚洲偷熟乱区亚洲香蕉av| 亚洲三级av在线| 在线视频亚洲欧美| 91日本在线视频| 91av在线影院| 国产精品美乳一区二区免费| 久久久久五月天| 久久躁狠狠躁夜夜爽| 欧美性猛交xxxx乱大交蜜桃| 成人a视频在线观看| 欧洲一区二区视频| 久久伊人免费视频| 亚洲无限av看| 国产精品精品视频一区二区三区| 国产精品影院在线观看| 国产a∨精品一区二区三区不卡| 亚洲精品免费网站| 亚洲视频网站在线观看| 国产精品成久久久久三级| 日韩极品精品视频免费观看| 九九热精品在线| 清纯唯美亚洲激情| 国产精品入口福利| 国产一区二区三区在线观看网站| www.亚洲男人天堂| www.欧美精品| 欧美日韩视频在线| 欧美视频国产精品| 日韩精品免费一线在线观看| 精品高清一区二区三区| 亚洲永久免费观看| 成人黄色片网站| 欧美一级电影免费在线观看| 免费91在线视频| 久久久久亚洲精品成人网小说| 91av中文字幕| 精品成人在线视频| 亚洲福利视频久久| 久久人人爽人人爽人人片亚洲| 亚洲国内精品在线| 亚洲夜晚福利在线观看| 日韩一区av在线| 亚洲天堂开心观看| 久久久999国产精品| 97久久久久久| 日韩精品中文字| 久久精品国产欧美激情| 日韩高清电影好看的电视剧电影| 中文字幕少妇一区二区三区| 久久99国产综合精品女同| 97超碰蝌蚪网人人做人人爽| 色婷婷综合成人| 国产一区二区丝袜| 亚洲性夜色噜噜噜7777| 久久99久久99精品免观看粉嫩| 91久久久久久久久久久| 欧美大尺度激情区在线播放| 在线视频亚洲欧美| 久久这里只有精品视频首页| 亚洲国产精品字幕| 欧美激情国产高清| 亚洲国产精品一区二区三区| 亚洲天堂av在线免费| 亚洲xxxxx| 中文字幕在线日韩| 91精品国产自产在线观看永久| 欧美激情亚洲另类| 欧美精品一本久久男人的天堂| 久久精彩免费视频| 日韩电影中文 亚洲精品乱码| 68精品国产免费久久久久久婷婷| 亚洲四色影视在线观看| 日韩欧美在线播放| 日韩av免费观影|