第 2 章:變量和基本類型

  1. 把一個(gè)值賦值給一個(gè)無(wú)符號(hào) 類型的變量的時(shí)候涣楷,如果該值超過(guò)了該變量能夠表示的范圍,那么結(jié)果就是該變量獲得了該值經(jīng)過(guò)對(duì)表示范圍大小求模運(yùn)算后落在表示范圍內(nèi)的值抗碰。比如 1 個(gè)字節(jié)的 unsigned char 能夠表示 0 到 255 區(qū)間內(nèi)的值狮斗,表示范圍大小為 256,如果你給它賦一個(gè) -3 (顯然不落在 [0,255])弧蝇,那么該變量拿到的值是 -3 % 256 = -3 + 256 = 253碳褒。269 的話就是 269 % 256 = 269 - 256 = 13。

  2. 相對(duì)地看疗,把一個(gè)值賦值給一個(gè)有符號(hào) 類型的變量的時(shí)候沙峻,如果該值超過(guò)了該變量能夠表示的范圍,賦值結(jié)果是未定義的两芳,該過(guò)程可以正確編譯摔寨,但是運(yùn)行了之后會(huì)發(fā)生什么事情是不可預(yù)知的,對(duì)于不同的編譯器可能有不同的結(jié)果怖辆,可能是崩潰是复,可能是不正確的數(shù)據(jù)删顶,還有可能是其他的事情,所以不要這么做淑廊。

  3. 有無(wú)符號(hào)數(shù)參與運(yùn)算的時(shí)候逗余,結(jié)果一定是落在無(wú)符號(hào)數(shù)的表示范圍值內(nèi)的〗常快速口算的時(shí)候可以先全當(dāng)作有符號(hào)猎荠,之后把計(jì)算結(jié)果模到無(wú)符號(hào)表示范圍就行。但是實(shí)際上計(jì)算機(jī)不是這么計(jì)算的蜀备。

  4. 例如 int + unsigned int 的時(shí)候关摇,會(huì)把 int 轉(zhuǎn)為 unsigned int-42 + 10碾阁,其中 -42int 類型输虱,10unsigned int 類型,那么在加法運(yùn)算前脂凶,-42 會(huì)轉(zhuǎn)為 unsigned int 的值宪睹,也就是 4294967254,然后再加 10蚕钦,變成 4294967264亭病,落在了表示范圍內(nèi),所以結(jié)果就是這個(gè)嘶居。如果再多加一點(diǎn)罪帖,例如給 -42 加的不是 10 而是 50,運(yùn)算結(jié)果是 4294967304 超過(guò)了 2^32-1邮屁,那么對(duì)加法結(jié)果依然會(huì)求一次模整袁,得到 8

  5. 定義于函數(shù)體內(nèi)的內(nèi)置類型對(duì)象如果沒(méi)有初始化佑吝,則其值未定義坐昙;每個(gè)類自行決定起初始化對(duì)象的方式,自己決定是否允許不經(jīng)初始化就定義對(duì)象芋忿。

  6. 聲明 只規(guī)定變量的類型和名字炸客,但是定義 還申請(qǐng)內(nèi)存空間,還可能做出初始化戈钢。因此要區(qū)分這兩者嚷量。

  7. C++ 支持分離式編譯,因此一個(gè)文件中的代碼可能需要使用另一個(gè)文件中定義的變量逆趣。這種情況下,每個(gè)要使用該變量的文件中都要有對(duì)該變量的聲明嗜历,但是該變量的定義 只能在一個(gè)文件中出現(xiàn)宣渗。聲明 一個(gè)變量的時(shí)候使用 extern 關(guān)鍵字抖所,如 extern int i;,這個(gè)時(shí)候不要初始化 i痕囱,否則 extern 關(guān)鍵字失效田轧,該語(yǔ)句變成了定義 (想要文件間共享 const 常量的除外,下面會(huì)有一條這個(gè)解釋)鞍恢。

  8. 在函數(shù)體內(nèi)部傻粘,如果試圖初始化一個(gè)由 extern 關(guān)鍵字標(biāo)記的變量,將引發(fā)錯(cuò)誤帮掉。

  9. 聲明空指針的時(shí)候弦悉,要顯式使用

    // T 代表任意類型
    T *p = nullptr;
    

    T *p = 0;
    

    但是不可以把一個(gè)值等于 0int 變量直接賦給指針,比如這樣子:

    int i = 0;
    T *p = i; 
    // Cannot initialize a variable of type 'int *' with an lvalue of type 'int'
    
  10. 兩個(gè)合法指針進(jìn)行 ==!= 比較的時(shí)候蟆炊,是比較兩個(gè)指針?biāo)娴牡刂?/em>稽莉。當(dāng)兩者的地址都為空時(shí),== 返回 true涩搓;當(dāng)兩者都指向同一個(gè)對(duì)象時(shí)污秆,== 返回 true;當(dāng)兩個(gè)指針都指向同一個(gè)對(duì)象的下一地址時(shí)昧甘,== 也返回 true良拼。還有一種比較特殊的情況,當(dāng)一個(gè)指針指向某對(duì)象充边,另一個(gè)指針指向另外一個(gè)對(duì)象的下一地址庸推,但是因?yàn)閮蓚€(gè)對(duì)象恰好在內(nèi)存中是相鄰 的,所以也會(huì)出現(xiàn) == 返回 true 的情況痛黎,一定不要忘記這種情形予弧,

  11. void* 指針比較特殊,可以存放任意類型對(duì)象的地址湖饱,但也因此失去了被解引用的能力:我們不能確定這個(gè)被指向的對(duì)象是什么類型掖蛤,自然就不知道解引用后能做什么事情。因此 void* 指針能做的事情比較有限:去和別的指針做比較 (也就是比較指針?biāo)涗浀牡刂?井厌;作為函數(shù)的輸入或輸出 (這點(diǎn)用的較多)蚓庭;把它的值賦給另外一個(gè) void* 指針。

  12. int *&r = &i; 這句話代表 r 指向 i仅仆,但是具體而言 ri 的指針的引用器赞。

  13. 常規(guī)的定義 const 常量的方法 (編譯時(shí)初始化) 是這樣子的:

    const int num = 214;
    

    在這種定義方式下,編譯器將在編譯時(shí) 在這個(gè)文件中找到在這句代碼后所有用到 num 變量的地方墓拜,然后把 num 替換成 214 (就像宏定義那樣)港柜。 因此如果想要讓不同文件共享這個(gè) const 常量,那么在每個(gè)文件中,都要有

    const int num = 214;
    

    這句定義 (不然就沒(méi)法替換啦)夏醉。然而這樣子的話爽锥,違反了前面說(shuō)過(guò)的每個(gè)變量只能被定義一次 這個(gè)限定。因此在默認(rèn)狀態(tài)下畔柔,const 常量被設(shè)置成僅在所處的文件內(nèi)部有效氯夷,而文件外部就無(wú)法讀取。如果想在每個(gè)文件里都能用到同樣的 const 常量靶擦,那么要在每個(gè)文件內(nèi)部均定義同名的對(duì)象腮考,但這個(gè)時(shí)候其實(shí)他們是不同的獨(dú)立的對(duì)象⌒叮或者踩蔚,可以在該 const 常量聲明和定義的時(shí)候均添加 extern 關(guān)鍵字。然后在不同文件內(nèi)用 extern 描述該常量桩盲,即可做到只定義一次而能夠多文件間共享寂纪。

  14. 指向常量的引用僅對(duì)該引用可參與的操作進(jìn)行限定,指不能通過(guò)對(duì)被引用對(duì)象的引用來(lái)修改被引用對(duì)象的值赌结。舉個(gè)例子:

    const int a = 3;
    const int &b = a;
    

    第二句的 const 的含義是不能通過(guò)修改 b 來(lái)修改 a 的值捞蛋。由于在確定了引用綁定關(guān)系之后,引用不能易主柬姚,所以 b 是不能再引用別的對(duì)象的拟杉,同時(shí) b 還不能修改 a 的值,所以 b 在整個(gè)生命周期能做的事情只有讀取 a 的值量承。

  15. 對(duì)某一個(gè)常量的引用實(shí)質(zhì)上是對(duì)這個(gè)常量起的別名搬设,因此一般來(lái)說(shuō) 它們類型相同 (也是有例外的),因此都要用 const 來(lái)限定撕捍。企圖用 int 來(lái)引用一個(gè) const int 會(huì)發(fā)生編譯時(shí)錯(cuò)誤拿穴,因?yàn)榫幾g器發(fā)現(xiàn)這個(gè)引用本身是 int 類型,那么編譯器會(huì)認(rèn)為寫代碼的人在之后可能會(huì)對(duì)這個(gè) int 類型的引用作出修改忧风,而這是被禁止的默色,所以編譯器要求對(duì) const 對(duì)象的引用也要用 const 限定。但是另一種情況下狮腿,一個(gè) const int 對(duì)象是可以引用一個(gè) int 對(duì)象的腿宰,因?yàn)?const 限定的是引用關(guān)系本身,你不能通過(guò)這個(gè)引用來(lái)改變被引用的變量的值缘厢,但是被引用的變量可以使用其他方式進(jìn)行改變 (例如通過(guò)直接調(diào)用這個(gè)變量的標(biāo)識(shí)符顯式的改變這個(gè)變量)吃度。在這種情況下,你要確保被引用的非常量 (也就是上面栗子中的那個(gè) int) 可以轉(zhuǎn)換成引用的類型 (即 const int)贴硫。舉個(gè)栗子:

    int i = 24;
    double pi = 3.14;
    

    在這時(shí)

    const int &r1 = i;
    

    是可以的椿每,因?yàn)?24 是一個(gè)字面值常量,

    const int &r2 = i - 3;
    

    也是可以的,因?yàn)?24 - 3 得到的也是一個(gè)字面值常量间护,

    const int &r3 = pi;
    

    還是可以的删壮,這個(gè)時(shí)候編譯器會(huì)先把 pi 變成一個(gè)

    const int temp = 3
    

    然后用 r3 去引用這個(gè) temp,這個(gè)時(shí)候 r3 綁定了一個(gè)臨時(shí)量兑牡。反正你不可以通過(guò) r3 來(lái)改變 temp 的值,所以 temp 就一直在那里税灌,一直都是 3均函,r3 的值也一直都是 3。但是這樣子是不行的:

    const int &r4 = "4";
    // Reference to type 'const int' could not bind 
    // to an lvalue of type 'const char[2]
    

    因?yàn)橐粋€(gè) string 不能轉(zhuǎn)換成一個(gè) const int菱涤。

  16. 和指向常量的引用一樣苞也,指向常量的指針也只對(duì)通過(guò)指針對(duì)被指對(duì)象進(jìn)行的操作 進(jìn)行限制。因此粘秆,被引用的對(duì)象可以在其他地方通過(guò)顯式調(diào)用標(biāo)識(shí)符來(lái)修改如迟。但是指向常量的指針本身不一定是常量,例如

    const int a = 3;
    const int *p = &a;
    //Implicit conversion from 'double' to 'int' changes value from 3.14 to 3
    
  17. 中的 p 目前指向的是 a攻走,接下來(lái)可以通過(guò)

    const int b = 4;
    p = &b;
    

    來(lái)改變 p 指向的對(duì)象殷勘。

  18. 指針是一個(gè)對(duì)象,所以也可以限定一個(gè)指針為一個(gè)常量昔搂,這個(gè)時(shí)候指針本身是不能改變的玲销,也就是說(shuō)指針?biāo)鶅?chǔ)存的地址是不能改變的,也就是說(shuō)這個(gè)指針一輩子只能指向那一個(gè)對(duì)象了摘符。這個(gè)時(shí)候 const 的位置有所改變贤斜,從 const int *p 變成 int *const pconstp 最近逛裤,因此首先 p 是個(gè)常量瘩绒,然后他還是個(gè)指針。此時(shí)被指向的那個(gè)對(duì)象不僅可以是常量带族,同時(shí)也可以為變量锁荔。

  19. 指針本身是一個(gè)常量,并不意味著不可以借助指針來(lái)修改被指向的變量炉菲,只要被指向的對(duì)象是個(gè)變量堕战,那就可以通過(guò)它的指針來(lái)修改它的值,不管這個(gè)指針本身是不是常量拍霜。

    所謂頂層 const 和底層 const嘱丢,頂層代表對(duì)象本身是 const,底層代表對(duì)象所引用祠饺、指向的對(duì)象是 const越驻。所有的引用都是底層 const。見(jiàn)下面的例子:

    int i = 0;
    int *const pi = &i;           // pi 是頂層,因?yàn)?pi 不能改變
    const int ci = 0;             // ci 是頂層缀旁,因?yàn)?ci 不能改變
    const int *p0 = &i;           // p0 是底層记劈,因?yàn)?p0 可以改變
    const int *p1 = &ci;          // p1 是底層,因?yàn)?p1 可以改變
    const int *const p2 = &ci;    // int 右的 const 是頂層并巍,int 左 的 const 是底層 
    const int &r0 = i;            // r0 是底層目木,用于聲明引用的 const 都是底層
    const int &r1 = ci;           // r1 是底層,用于聲明引用的 const 都是底層
    

    頂層還是底層請(qǐng)看注釋懊渡。當(dāng)執(zhí)行對(duì)象的拷貝動(dòng)作時(shí)刽射,底層的存在感高于頂層。對(duì)于指針的拷貝剃执,頂層不能接受一切拷貝誓禁,底層可以接受一切拷貝,變量可以接受頂層但是不可以接受底層肾档。對(duì)于引用摹恰,不能把 int & 綁定到 const int 上,但是可以把 const int & 綁定到 int 上怒见。

  20. 舉一個(gè)例子:

    const int r1 = 30;
    const int r2 = r1 - 3;
    

    這么寫的確沒(méi)問(wèn)題俗慈,但是還有一種更加推薦的 C++11 提出的寫法,是

    constexpr int r1 = 30;
    constexpr int r2 = r1 - 3;
    

    這么寫的主要原因是像 30速种、r1姜盈、r1 - 3 這些值不會(huì)改變,并且在編譯時(shí)就能得到計(jì)算結(jié)果的簡(jiǎn)單表達(dá)式 被稱作常量表達(dá)式配阵,在實(shí)際應(yīng)用中馏颂,幾乎不可能分辨一個(gè)初始值是不是常量表達(dá)式,因此 C++11 規(guī)定允許將變量聲明為 constexpr 類型以便由編譯器來(lái)驗(yàn)證變量的值是不是一個(gè)常量表達(dá)式棋傍。如果你在寫代碼時(shí)認(rèn)定一個(gè)變量是一個(gè)常量表達(dá)式救拉,那么你就直接用 constexpr 限定它。你也可以定義一種 constexpr 函數(shù)瘫拣,這種函數(shù)應(yīng)該足夠簡(jiǎn)單以使得編譯器在編譯時(shí)就可以計(jì)算其結(jié)果亿絮。這樣你就可以用 constexpr 函數(shù)去初始化 constexpr 變量。

  21. 因?yàn)槟阈枰尵幾g器在編譯時(shí)就可以計(jì)算出結(jié)果麸拄,所以聲明為 constexpr 的時(shí)候所用到的類型要足夠簡(jiǎn)單派昧,我們把這些簡(jiǎn)單的、顯而易見(jiàn)的拢切、容易得到的類型成為字面值類型蒂萎,其中包含算數(shù)類型 (內(nèi)置類型中的 boolchar淮椰、short五慈、int纳寂、longlong long泻拦、float毙芜、doublelong double)争拐、引用和指針等類型腋粥。自定義的類、IO 庫(kù)架曹、string 類則不屬于字面值類型灯抛,也就不能被定義成 constexpr。事實(shí)上音瓷,constexpr 函數(shù)的內(nèi)容僅可以有一條 return 語(yǔ)句,而且 return 的類型一定是字面值類型夹抗,形參的類型也都得是字面值類型绳慎。

  22. constexpr 把它所定義的對(duì)象置為了頂層 const,所以

    const int *p = nullptr;
    

    constexpr int* p = nullptr;
    

    有著天壤之別漠烧,前者是指 p 是一個(gè)指向整形常量的指針杏愤,后者是指 p 是一個(gè)指向整形的常量指針。

  23. 在使用 typedef 或者 using 語(yǔ)句的時(shí)候要注意已脓,如果你新定義的類型別名指代的是符合類型或者常量珊楼,那么在一個(gè)聲明語(yǔ)句中使用新類型別名的時(shí)候,如果加上 const 修飾符度液,那么語(yǔ)義會(huì)發(fā)生變化厕宗。例如:

    typedef char *pstring;
    const pstring cstr = 0;
    const pstring *ps;
    

    當(dāng)理解第二句的 const 的作用的時(shí)候,pstring 千萬(wàn)不能直接替換成 char *堕担。這個(gè)時(shí)候要把 pstring 當(dāng)成普通的 int 來(lái)理解已慢,這個(gè) const 修飾 pstring 使得 cstr 是一個(gè)常量。因此第二句的含義是:聲明一個(gè)常量霹购,他是個(gè)指針佑惠,他指向一個(gè) char 類型的對(duì)象,并把它定義為空指針齐疙。因此第三句話的含義也顯而易見(jiàn)了:聲明一個(gè)指針膜楷,它自己并不是常量 (因?yàn)?const 在星號(hào)的左邊),但是它指向了一個(gè)常量贞奋,他指向的常量的具體類型是 pstring赌厅,也就是一個(gè)指向一個(gè) char 對(duì)象的常量指針。第三句話有點(diǎn)繞忆矛,簡(jiǎn)單說(shuō)就是 ps 是一個(gè)指向指向 char 的常量指針 的變量指針察蹲。

  24. 如果在 auto 語(yǔ)句中連著聲明定義多個(gè)變量请垛,那么這些變量要是同一個(gè)類型。

  25. auto 語(yǔ)句中洽议,如果用一個(gè)引用來(lái)初始化一個(gè)變量宗收,那么這個(gè)變量的類型和被引用的對(duì)象的一樣:

    int i = 0, &r = i;
    auto a = r;
    

    這里的 a 的類型是 int

  26. auto 一般會(huì)忽略掉頂層 const亚兄,但是會(huì)保留底層 const混稽。如果你希望 auto 可以推斷出頂層 const,那么你要明確寫出 const 限定符:

    const int ci = i, &cr = ci;// ci  是頂層审胚,cr 是底層
    auto b = ci;               // b 不是常量匈勋,是一個(gè) int
    auto c = cr;               // c 不是常量,是一個(gè) int
    auto d = &i;               // d 不是常量膳叨,是一個(gè) int *
    auto d = &i;               // d 不是常量洽洁,是一個(gè) const int *
    
    const auto f = ci;         // f 是一個(gè) const int
    const auto g = &ci;        // g 是一個(gè) const int *const
    
    //由于引用本身就是底層 const,所以會(huì)被保留下來(lái)
    auto &h = ci;              // h 是一個(gè) const int &
    auto &j = 29;              // 編譯錯(cuò)誤:不能給非常量引用綁定字面值
    const auto &k = 29;        // 編譯通過(guò):寫出了 const 才能綁定字面值
    
    decltype() 可以分析表達(dá)式的類型并且返回它菲嘴。例如:
    ```C++
    decltype(f()) = x;     // x 的類型與函數(shù) f() 的返回類型相同
    const int ci = 9, &ri = ci;
    int i = 1, *pi = &i;
    decltype(ci) x = 0;    // x 是 const int
    decltype(ri) s = x;    // s 是 const int &饿自,只傳標(biāo)識(shí)符,那么就返回引用類型
    decltype(ri+0) t = s;  // s 是 const int龄坪,表達(dá)式會(huì)消除掉引用
    decltype(i) y = x;     // y 是 int
    decltype(i+3) z = x;   // z 是 int
    decltype((i)) w = x;   
        // w 是 int &昭雌,當(dāng)變量外面套著一層括號(hào)的時(shí)候,將被視作表達(dá)式健田,返回引用
    decltype(pi) p = &i;   // p 是 int *
    decltype(*pi) r = i;   // r 是 int &烛卧,解引用操作返回引用類型
    

    總結(jié)一下:對(duì)于引用,直接傳入 decltype 會(huì)返回引用類型妓局,普通變量外面套一層括號(hào)傳進(jìn)去也會(huì)返回引用類型总放,引用放在表達(dá)式里面?zhèn)魅?decltype 會(huì)返回被引用對(duì)象的類型。

  27. decltype 可以保留頂層 const 和引用類型好爬,但是 auto 不可以间聊。

  28. 預(yù)處理器是在編譯之前執(zhí)行的一段程序,可以部分的改變程序內(nèi)容抵拘,包括例如 NULL哎榴、assert()#include僵蛛、#ifdef尚蝌、#ifndef#pragma這些東西充尉。當(dāng)預(yù)處理器看到 #include 這個(gè)標(biāo)記的時(shí)候飘言,就會(huì)把指定的頭文件的內(nèi)容代替這句 #include 語(yǔ)句。 而像 ifdef驼侠、endif 這些則叫做頭文件保護(hù)符姿鸿,define 用于定義預(yù)處理變量谆吴,ifdefifndef 用于檢查哪個(gè)預(yù)處理變量是否已經(jīng)定義苛预,一旦結(jié)果為真句狼,則執(zhí)行后續(xù)操作直到遇到 #endif 位置。預(yù)處理變量包括頭文件保護(hù)符無(wú)視 C++ 中的作用域的規(guī)則热某,并且在整個(gè)工程文件中必須唯一腻菇。習(xí)慣性的把所有頭文件用頭文件保護(hù)符包含住是值得推薦的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末昔馋,一起剝皮案震驚了整個(gè)濱河市筹吐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秘遏,老刑警劉巖丘薛,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異邦危,居然都是意外死亡榔袋,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門铡俐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人妥粟,你說(shuō)我怎么就攤上這事审丘。” “怎么了勾给?”我有些...
    開(kāi)封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵滩报,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我播急,道長(zhǎng)脓钾,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任桩警,我火速辦了婚禮可训,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捶枢。我一直安慰自己握截,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布烂叔。 她就那樣靜靜地躺著谨胞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蒜鸡。 梳的紋絲不亂的頭發(fā)上胯努,一...
    開(kāi)封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天牢裳,我揣著相機(jī)與錄音,去河邊找鬼叶沛。 笑死蒲讯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恬汁。 我是一名探鬼主播伶椿,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼氓侧!你這毒婦竟也來(lái)了脊另?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤约巷,失蹤者是張志新(化名)和其女友劉穎偎痛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體独郎,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踩麦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氓癌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谓谦。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贪婉,靈堂內(nèi)的尸體忽然破棺而出反粥,到底是詐尸還是另有隱情,我是刑警寧澤疲迂,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布才顿,位于F島的核電站,受9級(jí)特大地震影響尤蒿,放射性物質(zhì)發(fā)生泄漏郑气。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一腰池、第九天 我趴在偏房一處隱蔽的房頂上張望尾组。 院中可真熱鬧,春花似錦示弓、人聲如沸演怎。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)爷耀。三九已至,卻和暖如春拍皮,著一層夾襖步出監(jiān)牢的瞬間歹叮,已是汗流浹背跑杭。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咆耿,地道東北人德谅。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像萨螺,于是被迫代替她去往敵國(guó)和親窄做。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • #1.基本內(nèi)置類型1.1 算術(shù)類型1.2 類型轉(zhuǎn)換1.3 字面值常量 #2.變量2.1 變量定義2.2 變量定義和...
    MrDecoder閱讀 507評(píng)論 0 2
  • 2.1 基本內(nèi)置類型 2.1.1 算數(shù)類型 空類型(void):無(wú)值無(wú)操作慰技,不能定義void類型變量 字符類型:c...
    咸魚翻身ing閱讀 238評(píng)論 0 0
  • 基本內(nèi)置類型 算術(shù)類型字符整型布爾值浮點(diǎn)數(shù) 空類型(void) 算術(shù)類型 帶符號(hào)類型和無(wú)符號(hào)類型int吻商、short...
    2625K閱讀 3,183評(píng)論 0 1
  • 初始化與賦值初始化的含義是創(chuàng)建變量的時(shí)候賦予其一個(gè)初始值掏颊,賦值的含義是把對(duì)象的當(dāng)前值擦除,而以一個(gè)新值來(lái)替代艾帐。列表...
    KevinCool閱讀 250評(píng)論 0 0
  • Dear, 2018年5月4日乌叶,在得知自己被心儀單位差掉的時(shí)候,再一次感受無(wú)法把握的無(wú)奈感柒爸,其實(shí)真的還是挺難過(guò)的...
    靜默行走閱讀 259評(píng)論 0 0