W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
大多數(shù)我們?cè)谄渌愋蜕鲜褂玫牟僮鞣鐢?shù)學(xué)運(yùn)算符( +, %等)以及比較運(yùn)算符(==,>等),都不適用于結(jié)構(gòu)體。事實(shí)上,可以為這種新類型定義這些操作符的含義,不過(guò)在這本書中我們不會(huì)這么做。
另一方面,賦值運(yùn)算符確實(shí)適用于結(jié)構(gòu)。它可以用在兩種方式上:初始化結(jié)構(gòu)的實(shí)例變量或把實(shí)例變量從一個(gè)結(jié)構(gòu)復(fù)制到另一個(gè)結(jié)構(gòu)。一個(gè)初始化結(jié)構(gòu)看起來(lái)像這樣:
Point blank = { 3.0, 4.0 };
大括號(hào)里的值被依次賦給結(jié)構(gòu)的實(shí)例變量。在這種情況下,x得到了一個(gè)值,y得到第二個(gè)值。
不幸的是,這個(gè)語(yǔ)法僅僅只能用在初始化中,而不能在賦值語(yǔ)句中。因此以下就是非法的。
Point blank;
blank = { 3.0, 4.0 }; // 錯(cuò)誤!!
你可能想知道為什么如此完美合理的語(yǔ)句會(huì)是非法的;我不確定,但是我認(rèn)為問(wèn)題應(yīng)該是編譯器無(wú)法知道右邊應(yīng)該是什么類型。如果你添加一個(gè)類型定義:
Point blank;
blank = (Point){ 3.0, 4.0 };
這就可以了。
把一個(gè)結(jié)構(gòu)賦給另一個(gè)結(jié)構(gòu)是合法的。例如:
Point p1 = { 3.0, 4.0 };
Point p2 = p1;
cout << p2.x << ", " << p2.y << endl;
這個(gè)程序的輸出是3, 4。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: