C++11——表達(dá)式

除法舍入規(guī)則

對于模數(shù)運(yùn)算符,如果m和n是整數(shù)且n非零谐宙,則(m / n) * n + m % n等于m掰邢。這也暗示著如果m % n非零,則它具有與m相同的符號丙唧。早期版本的語言允許m % n-(m / n)從零四舍五入的實(shí)現(xiàn)中具有與n相同的符號愈魏,但現(xiàn)在此類實(shí)現(xiàn)已經(jīng)被禁止。此外想际,除了-m溢出的情況(- m) / nm / (-n)總是等于-(m / n)培漏,m % (-n)等于m % n,并且(-m) % n等于-(m % n)胡本。更具體地:

Code:
    21 % 6;    /*  result is 3  */      21 / 6;    /*  result is 3  */
    21 % 7;    /*  result is 0  */      21 / 7;    /*  result is 3  */
   -21 % -8;   /*  result is -5 */     -21 / -8;   /*  result is 2  */
    21 % -5;   /*  result is 1  */      21 / -5;   /*  result is -4  */

使用初始化列表進(jìn)行賦值

新標(biāo)準(zhǔn)下牌柄,我們可以在賦值語句的等號右端使用已經(jīng)寫好的初始化器列表進(jìn)行賦值:

Code:
    k = {3.14};                   // error: narrowing conversion
    vector<int> vi;               // initially empty
    vi = {0,1,2,3,4,5,6,7,8,9};   // vi now has ten elements, values 0 through 9

如果賦值語句的等號左側(cè)操作數(shù)是內(nèi)置類型,則初始化器列表最多可包含一個(gè)值侧甫,而且該值不得進(jìn)行縮小轉(zhuǎn)換珊佣。
對于類類型蹋宦,這樣的賦值方式會(huì)發(fā)生什么取決于類定義時(shí)的詳細(xì)信息。以vector為例咒锻,vector模板重載了賦值運(yùn)算符冷冗,定義了自己的賦值運(yùn)算符版本,該版本中允許以初始化器列表進(jìn)行賦值運(yùn)算惑艇。該運(yùn)算符將等號左側(cè)的元素替換為右側(cè)列表中的元素蒿辙。
無論等號左側(cè)操作數(shù)的類型如何,初始化器列表都可以為空滨巴。在這種情況下思灌,編譯器生成一個(gè)臨時(shí)值,并將該值賦給左側(cè)操作數(shù)兢卵。

對類成員使用sizeof

sizeof運(yùn)算符返回表達(dá)式或類型名稱的大邢肮濉(以字節(jié)為單位)。運(yùn)算符是右向關(guān)聯(lián)的秽荤。sizeof的結(jié)果是size_t類型的常量表達(dá)式甜奄。
在新標(biāo)準(zhǔn)下,我們可以使用范圍運(yùn)算符來獲得類類型成員的大小窃款。 通常我們只能通過一個(gè)類類型的對象來訪問類的成員课兄。 使用sizeof時(shí)我們不需要提供一個(gè)類的對象,因?yàn)?code>sizeof不需要獲取類的成員就可以知道其大小晨继。
應(yīng)用sizeof的結(jié)果一定程度上取決于所涉及的類型:

  1. sizeof char或?qū)σ粋€(gè)char類型的表達(dá)式應(yīng)用sizeof結(jié)果為1烟阐。
  2. 對一個(gè)引用類型使用sizeof返回引用類型的對象的大小。
  3. 對一個(gè)指針使用sizeof返回持有該指針?biāo)枰目臻g大小紊扬。
  4. 對一個(gè)解指針對象(例:(*p))使用sizeof返回該指針指向的類型的對象的大醒亚选;該指針不必有效餐屎。
  5. 對一個(gè)數(shù)組使用sizeof將返回整個(gè)數(shù)組的大小檀葛。它等價(jià)于將元素類型的大小乘以數(shù)組中元素的數(shù)量。請注意腹缩,sizeof操作不會(huì)將數(shù)組轉(zhuǎn)換為指針屿聋。
  6. stringvector使用sizeof只返回這些類型對象的固定部分的大小(fixed size);它不返回對象元素使用的大小藏鹊。
Code:
    Sales_data data, *p;  // Sales_data is a class
    sizeof(Sales_data);   // size required to hold an object of type Sales_data
    sizeof data;   // size of data's type, i.e., sizeof(Sales_data)
    sizeof p;      // size of a pointer
    sizeof *p;     // size of the type to which p points, i.e., sizeof(Sales_data)
    sizeof data.revenue;  // size of the type of Sales_data's revenue member
    sizeof Sales_data::revenue; // alternative way to get the size of revenue

因?yàn)?code>sizeof返回整個(gè)數(shù)組的大小润讥,所以我們可以通過將數(shù)組大小除以元素類型大小來確定數(shù)組中元素的數(shù)量:

Code:
    // sizeof(ia)/sizeof(*ia) returns the number of elements in ia
    constexpr size_t sz = sizeof(ia)/sizeof(*ia);
    int arr2[sz];    // ok sizeof returns a constant expression

因?yàn)?code>sizeof返回的結(jié)果是一個(gè)常量表達(dá)式,所以我們可以使用sizeof表達(dá)式的結(jié)果來指定數(shù)組的維度盘寡。

參考文獻(xiàn)

[1] Lippman S B , Josée Lajoie, Moo B E . C++ Primer (5th Edition)[J]. 2013.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末楚殿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宴抚,更是在濱河造成了極大的恐慌勒魔,老刑警劉巖甫煞,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異冠绢,居然都是意外死亡抚吠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門弟胀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來楷力,“玉大人,你說我怎么就攤上這事孵户∠舫” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵夏哭,是天一觀的道長检柬。 經(jīng)常有香客問我,道長竖配,這世上最難降的妖魔是什么何址? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮进胯,結(jié)果婚禮上用爪,老公的妹妹穿的比我還像新娘。我一直安慰自己胁镐,他們只是感情好偎血,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盯漂,像睡著了一般颇玷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上就缆,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天亚隙,我揣著相機(jī)與錄音,去河邊找鬼违崇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诊霹,可吹牛的內(nèi)容都是我干的羞延。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼脾还,長吁一口氣:“原來是場噩夢啊……” “哼伴箩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鄙漏,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嗤谚,失蹤者是張志新(化名)和其女友劉穎棺蛛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體巩步,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旁赊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了椅野。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片终畅。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖竟闪,靈堂內(nèi)的尸體忽然破棺而出离福,到底是詐尸還是另有隱情,我是刑警寧澤炼蛤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布妖爷,位于F島的核電站,受9級特大地震影響理朋,放射性物質(zhì)發(fā)生泄漏絮识。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一暗挑、第九天 我趴在偏房一處隱蔽的房頂上張望笋除。 院中可真熱鬧,春花似錦炸裆、人聲如沸垃它。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽国拇。三九已至,卻和暖如春惯殊,著一層夾襖步出監(jiān)牢的瞬間酱吝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工土思, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留务热,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓己儒,卻偏偏與公主長得像崎岂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子闪湾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

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