最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年01月14日 16:27:19   投稿:goldensun  
這篇文章主要介紹了C++中二進制求補運算符與下標運算符的用法,是C++入門學習中的基礎知識,需要的朋友可以參考下

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

~ cast-expression

備注
二進制反碼運算符 (~)(有時稱為“按位反碼”運算符)將生成其操作數(shù)的按位二進制反碼。即,操作數(shù)中為 1 的每個位在結果中為 0。相反,操作數(shù)中為 0 的每個位在結果中為 1。二進制反碼運算符的操作數(shù)必須為整型。
~ 的運算符關鍵字
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 的二進制反碼。
將對整型操作數(shù)執(zhí)行整型提升,并且結果類型將是操作數(shù)將提升到的類型。

下標運算符:[]

 postfix-expression [ expression ]

備注
后跟下標運算符 [ ] 的后綴表達式(也可為主表達式)指定數(shù)組索引。
通常,postfix-expression 表示的值是一個指針值(如數(shù)組標識符),expression 是一個整數(shù)值(包括枚舉類型)。 但是,從語法上來說,只需要一個表達式是指針類型,另一個表達式是整型。 因此整數(shù)值可以位于 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 字節(jié)。 相反,該地址將進行縮放以生成數(shù)組 e2 中的下一個對象。 例如:

double aDbl[2];

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

expression1 [expression2] [expression3]...

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

// expre_Subscript_Operator.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
#define MAX_ROWS 2
#define MAX_COLS 2

int 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;
}

正下標和負下標
數(shù)組的第一個元素是元素 0。 C++ 數(shù)組的范圍是從 array[0] 到 array[size – 1]。 但是,C++ 支持正負下標。 負下標必須在數(shù)組邊界內;否則結果不可預知。 以下代碼顯示了正數(shù)組和負數(shù)組下標:

#include <iostream>
using namespace std;

int main() {
  int intArray[1024];
  for (int i = 0, j = 0; i < 1024; i++)
  {
    intArray[i] = j++;
  }

  cout << intArray[512] << endl;// 512
  
  int *midArray = &intArray[512]; // pointer to the middle of the array

  cout << midArray[-256] << endl;  // 256

  cout << intArray[-256] << endl; // unpredictable
}

上一行中的負下標可能產生運行時錯誤,因為它在內存中指向比數(shù)組的原點低 256 個字節(jié)的地址。 指針 midArray 會初始化為 intArray 的中點;因此可以對其使用正數(shù)組和負數(shù)組索引。 數(shù)組下標錯誤不會產生編譯時錯誤,但它們會產生不可預知的結果。
下標運算符是可交換的。 因此,只要沒有重載下標運算符(請參閱重載運算符 ),表達式 array[index] 和 array[array] 就一定等效。 第一種形式是最常見的編碼做法,但它們都有效。

相關文章

  • c/c++中的左值右值詳解

    c/c++中的左值右值詳解

    這篇文章主要介紹了c/c++中的左值右值,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • C++使用正則表達式的詳細教程

    C++使用正則表達式的詳細教程

    正則表達式是一個非常強大的工具,主要用于字符串匹配,下面這篇文章主要給大家介紹了關于C++使用正則表達式的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • C語言實現(xiàn)的循環(huán)單鏈表功能示例

    C語言實現(xiàn)的循環(huán)單鏈表功能示例

    這篇文章主要介紹了C語言實現(xiàn)的循環(huán)單鏈表功能,結合實例形式分析了基于C語言實現(xiàn)的循環(huán)單鏈表定義、創(chuàng)建、添加、刪除、打印、排序等相關操作技巧,需要的朋友可以參考下
    2018-04-04
  • C語言 坐標移動詳解及實例代碼

    C語言 坐標移動詳解及實例代碼

    這篇文章主要介紹了C語言 坐標移動詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-01-01
  • C語言中無符號數(shù)和有符號數(shù)之間的運算

    C語言中無符號數(shù)和有符號數(shù)之間的運算

    C語言中有符號數(shù)和無符號數(shù)進行運算默認會將有符號數(shù)看成無符號數(shù)進行運算,其中算術運算默認返回無符號數(shù),邏輯運算當然是返回0或1了。下面通過一個例子給大家分享C語言中無符號數(shù)和有符號數(shù)之間的運算,一起看看吧
    2017-09-09
  • C語言鏈接屬性的實踐應用

    C語言鏈接屬性的實踐應用

    C語言中鏈接屬性決定如何處理在不同文件中出現(xiàn)的標示符,下面這篇文章主要給大家介紹了關于C語言鏈接屬性的實踐應用,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • C語言實現(xiàn)簡單班級成績管理系統(tǒng)

    C語言實現(xiàn)簡單班級成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單班級成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • OpenCV實現(xiàn)幀差法檢測運動目標

    OpenCV實現(xiàn)幀差法檢測運動目標

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)幀差法檢測運動目標,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • OPENMP?SECTIONS?CONSTRUCT原理示例解析

    OPENMP?SECTIONS?CONSTRUCT原理示例解析

    這篇文章主要為大家介紹了OPENMP?SECTIONS?CONSTRUCT原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • C++ opencv實現(xiàn)車道線識別

    C++ opencv實現(xiàn)車道線識別

    這篇文章主要為大家詳細介紹了C++ opencv實現(xiàn)車道線識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02

最新評論

玉田县| 措勤县| 大安市| 辽阳县| 黄冈市| 安国市| 酒泉市| 鲁山县| 宁陵县| 襄汾县| 柳河县| 汪清县| 清丰县| 磐石市| 马边| 淮安市| 怀宁县| 阳山县| 浠水县| 宣恩县| 吉安县| 澎湖县| 武功县| 尚志市| 苍梧县| 丰顺县| 宜兰县| 和静县| 定西市| 枝江市| 芜湖市| 崇信县| 虎林市| 新余市| 温宿县| 白朗县| 邵武市| 息烽县| 兴和县| 修水县| 邻水|