国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

詳解C++中二進制求補運算符與下標運算符的用法

2020-01-26 14:46:30
字體:
來源:轉載
供稿:網友

二進制求補運算符:~ 
語法

~ cast-expression

備注
二進制反碼運算符 (~)(有時稱為“按位反碼”運算符)將生成其操作數的按位二進制反碼。即,操作數中為 1 的每個位在結果中為 0。相反,操作數中為 0 的每個位在結果中為 1。二進制反碼運算符的操作數必須為整型。
~ 的運算符關鍵字
compl 運算符是 ~ 的文本等效項。訪問程序中的 compl 運算符有兩種方式:包括頭文件 iso646.h,或使用 /Za 進行編譯。

// expre_One_Complement_Operator.cpp// compile with: /EHsc#include <iostream>using namespace std;int main () {  unsigned short y = 0xFFFF;  cout << hex << y << endl;  y = ~y;  // Take one's complement  cout << hex << y << endl;}

在此示例中,分配給 y 的新值是無符號值 0xFFFF 或 0x0000 的二進制反碼。
將對整型操作數執行整型提升,并且結果類型將是操作數將提升到的類型。

下標運算符:[]

 postfix-expression [ expression ]

備注
后跟下標運算符 [ ] 的后綴表達式(也可為主表達式)指定數組索引。
通常,postfix-expression 表示的值是一個指針值(如數組標識符),expression 是一個整數值(包括枚舉類型)。 但是,從語法上來說,只需要一個表達式是指針類型,另一個表達式是整型。 因此整數值可以位于 postfix-expression 位置,指針值可以位于 expression 的方括號中或下標位置。 考慮以下代碼片斷:

  int nArray[5] = { 0, 1, 2, 3, 4 };  cout << nArray[2] << endl;      // prints "2"  cout << 2[nArray] << endl;      // prints "2"

在前面的示例中,表達式 nArray[2] 與 2[nArray] 相同。 原因是下標表達式 e1[ e2 ] 的結果由以下所示給定:

*( ( e2 ) + (e1) )

該表達式生成的地址不是 e1 地址中的 e2 字節。 相反,該地址將進行縮放以生成數組 e2 中的下一個對象。 例如:

double aDbl[2];

aDb[0] 和 aDb[1] 的地址相距 8 字節 - double 類型的對象的大小。 根據對象類型進行的縮放將由 C++ 語言自動完成,并在其中討論了指針類型的操作數的加減法的相加運算符中定義。
下標表達式還可以有多個下標,如下所示:

expression1 [expression2] [expression3]...

下標表達式從左至右關聯。 首先計算最左側的下標表達式 expression1[expression2]。 通過添加 expression1 和 expression2 得到的地址構成一個指針表達式;然后 expression3 將添加到此指針表達式,從而構成一個新的指針表達式,依此類推,直到添加最后一個下標表達式。 在計算了最后的 subscripted 表達式后,將應用間接尋址運算符 (*),除非最終指針值將為數組類型尋址。
具有多個下標的表達式引用多維數組的元素。 多維數組是其元素為數組的數組。 例如,三維數組的第一個元素是一個具有兩個維度的數組。 以下示例聲明并初始化字符的簡單二維數組:

// expre_Subscript_Operator.cpp// compile with: /EHsc#include <iostream>using namespace std;#define MAX_ROWS 2#define MAX_COLS 2int main() {  char c[ MAX_ROWS ][ MAX_COLS ] = { { 'a', 'b' }, { 'c', 'd' } };  for ( int i = 0; i < MAX_ROWS; i++ )   for ( int j = 0; j < MAX_COLS; j++ )     cout << c[ i ][ j ] << endl;}

正下標和負下標
數組的第一個元素是元素 0。 C++ 數組的范圍是從 array[0] 到 array[size

主站蜘蛛池模板: 吉木乃县| 本溪| 彭阳县| 江津市| 原平市| 中宁县| 财经| 深圳市| 丹东市| 曲阜市| 马尔康县| 和林格尔县| 延吉市| 金湖县| 磴口县| 广西| 三都| 新乡市| 长春市| 文山县| 上林县| 邛崃市| 吉林省| 林周县| 绍兴县| 安庆市| 博罗县| 九龙县| 工布江达县| 丰城市| 土默特左旗| 松阳县| 庐江县| 乃东县| 汉川市| 芒康县| 贵德县| 萨迦县| 温泉县| 双柏县| 泽普县|