-
1.整數可以被賦予實數。 實數不能分配給整數變數。 在不損失準確性的情況下盡可能保持分配相容性。
2. 字串是字元'\0'為了結束。 當 *p 遇到第乙個時'\0'(其 ASCII 值為 0),則為 false。 此時,while(*p) 跳出迴圈。
-
首先確定 a>b 是否為真。
a=1,b=2,ab 為 false,值為 0。
只要乙個表示式的值為0,則操作結果為0,後續表示式不再繼續。 因此,不再執行以下 ++c,c 的值仍為 3。
選擇第二個。
-
c. a=7+b,b++,a+7
當沒有 [;結束。
賦值本身沒有問題,可以理解為a = (7+b,b++,a+7)是括號內的逗號表示式,結果按順序計算,取最後乙個值。 也就是說,a = a+7。
d. a=7+b,c=a+7;
結果測試沒有問題。
e a=7+b++=a+7;
第乙個賦值運算子是從右到左,例如 a = b = c;這句話首先將 c 的值分配給 b,然後將 b 的值分配給 a。 (但是,強烈建議不要進行此分配)。
這裡 7+b+++中的 7+b++=a+7 不能作為左值使用,即不能賦值,會有問題。
-
第一句話 a+=(a+=3)+(a+=4)。
先執行兩個括號,a 變成 7,然後 () 等價於 7(這就是它的執行方式),變成 a+=7+7---a=7+7+7=21
第234句與第一句相同。
在第五句話中,兩個括號被執行,a 變成 8,() 等價於 8(這就是它的執行方式),變成 a+=8+8++-a=8+8+8 和 ++=25
-
下面我詳細講乙個,a+=(a+=3)+(a+=4),先看(a+=3)+(a+=4),a=0,在(a+=3)之後,a=3,這個公式是3,再看a+=4,運算後a=7,這個公式是7,就是a+=3+7,所以a=10+7,所以a=17。 其餘的都是相同的方法。
我想你明白了,對吧?
-
檢查三個知識點:
1.逗號表示式的值是逗號右邊的值,例如a=(b,c),那麼a=c本身可以用作右值。
3.括號更改為 0 0(忽略此)。
a=(b=(c=2,d=3))關鍵在於逗號部分,根據知識點1,b=3知識點2 a=3
-
c=2, d=3) 逗號取最後乙個,返回 3,依此類推,a = 3
-
像 x=y 這樣的表示式稱為賦值表示式,它有兩個主要用途:
返回乙個值,通常為左值,該值稱為將 x 賦值給 y 的表示式的值,稱為表示式的 ***。
重寫 operator= 運算子以盡可能多地反映這兩個函式。 如果僅在重寫的函式中執行賦值操作,並且不返回任何值,則僅反映角色 2,而不反映角色 1。 這樣,被覆蓋的運算子將無法用作子表示式,例如,連續賦值 x=y=z 將是不可能的。
-
1.具有 CONST 的函式只能由 CONSULT checkedptr 物件呼叫,因為 CHECKEDPTR 物件是 const,因此返回的 t 引用只能是 const。 所以從表面上看,還有兩個常量,但實際上它只是常量函式和非常量函式的區別。
2. checkedptr ret(*this);是通過呼叫 Copy 建構函式建立 CheckedPTR RET 型別的物件。 它的引數是對當前物件的 this 指標的取消引用。
3.定義運算子的目的是以便您可以用與基本指標相同的語法編寫運算子。 例如,如果您有乙個 checkedpttr 物件 a,則可以編寫 *a 來獲取它指向的元素。
4.這個類是用來製作乙個陣列的,但是C++自帶的陣列沒有邊界檢查,這個類可以幫助你做一些安全檢查。 所有運算子過載都經過精心設計,以便您可以像操作指標一樣操作 checkedpttr 物件。
指標可以加減,類的物件也可以。
5.這只是C++的一小部分,我不知道有哪本書會專門討論這個問題。 但是任何C++預言的基礎都會被說出來。 你需要關注的關鍵詞是物件導向的,使用 const,運算子過載。
int a,b;
a=5; b=2;*第一行* b 被指定為 2b=a; *第二行* 計算等號的右邊,即把 a 的值 5 賦給 b,此時 b 等於 5,a 的值不變或 5 >>>More