亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

詳解C++語言中的加法運算符與賦值運算符的用法

2020-05-23 14:10:44
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C++語言中的加法運算符與賦值運算符的用法,是C++入門學習中的基礎知識,需要的朋友可以參考下
 

加法運算符:+ 和 -
語法

expression + expression expression – expression

備注
相加運算符為:

  • 加 (+)
  • 減 (–)

這些二進制運算符具有從左至右的關聯性。

相加運算符采用算術或指針類型的操作數。加法 (+) 運算符的結果是操作數之和。減法 (–) 運算符的結果是操作數之差。如果一個操作數是指針或兩個操作數都是指針,則它們必須是指向對象的指針,而不是指向函數的指針。如果兩個操作數都是指針,則結果沒有意義,除非它們是指向同一數組中的對象的指針。
相加運算符采用 arithmetic、integral 和 scalar 類型的操作數。下表定義了這些操作數。
用于相加運算符的類型

S.N. 構造函數 & 描述
arithmetic 整型和浮點類型統稱為“算術”類型。
integral 所有大?。╨ong、short)和枚舉數的 char 和 int 類型為“整數”類型。
scalar 標量操作數是算術類型或指針類型的操作數。

這些運算符的合法組合為:

 

  • 算術 + 算術
  • 標量 + 整數
  • 整數 + 標量
  • 算術 – 算術
  • 標量 – 標量

請注意,加法和減法不是等效運算。

// expre_Additive_Operators.cpp// compile with: /EHsc#include <iostream>#define SIZE 5using namespace std;int main() {  int i = 5, j = 10;  int n[SIZE] = { 0, 1, 2, 3, 4 };  cout << "5 + 10 = " << i + j << endl     << "5 - 10 = " << i - j << endl;  // use pointer arithmetic on array  cout << "n[3] = " << *( n + 3 ) << endl;}

指針加法
在加法運算中,如果其中一個操作數是指向對象數組的指針,則另一個操作數必須是整型。結果為與原始指針類型相同的指針和指向另一個數組元素的指針。以下代碼片段闡述了此概念:
short IntArray[10]; // Objects of type short occupy 2 bytes
short *pIntArray = IntArray;

for( int i = 0; i < 10; ++i ){  *pIntArray = i;  cout << *pIntArray << "/n";  pIntArray = pIntArray + 1;}

雖然將整數值 1 添加到 pIntArray,但這并不表示“將 1 添加到該地址”,而是指“調整指針使其指向數組中的下一個對象”,而該對象恰好是在 2 字節(或者 sizeof( int ))之外。
注意
在 C++ 程序中很少找到 pIntArray = pIntArray + 1 形式的代碼;若要實現遞增,以下形式更可取:pIntArray++ 或 pIntArray += 1。

指針減法
如果兩個操作數都是指針,則減法運算的結果就是兩個操作數之差(在數組元素中)。減法表達式產生類型 ptrdiff_t(在標準包含文件 STDDEF.H 中定義)的帶符號的整數結果。
其中一個操作數可以是整型,條件是該操作數是第二操作數。減法的結果的類型與原始指針的類型相同。減法的值是指向第 (n – i) 個數組元素的指針,其中 n 是由原始指針指向的元素,而 i 是第二操作數的整數值。

賦值運算符

語法

    expression assignment-operator expression assignment-operator : one of  =  *=  /=  %=  +=  –=  <<=  >>=  &=  ^=  |=

備注
賦值運算符將值存儲在左操作數指定的對象中。有兩種賦值操作:簡單賦值,其中第二個操作數的值存儲在第一個操作數指定的對象中;復合賦值,其中先執行算術、移位或位運算,然后再存儲結果。下表中除 = 運算符之外的所有其他賦值運算符都是復合賦值運算符。
賦值運算符

 

運算符 含義
= 整型和浮點類型統稱為“算術”類型。
*= 所有大小(long、short)和枚舉數的 char 和 int 類型為“整數”類型。
/= 標量操作數是算術類型或指針類型的操作數。
%= 整型和浮點類型統稱為“算術”類型。
+= 所有大?。╨ong、short)和枚舉數的 char 和 int 類型為“整數”類型。
–= 標量操作數是算術類型或指針類型的操作數。
<<= 將第一個操作數的值按第二個操作數的值指定的位數左移;將結果存儲在第一個操作數指定的對象中。
>>= 將第一個操作數的值按第二個操作數的值指定的位數右移;將結果存儲在第一個操作數指定的對象中。
&= 獲取第一個和第二個操作數的按位“與”;將結果存儲在第一個操作數指定的對象中。
^= 獲取第一個和第二個操作數的按位“異或”;將結果存儲在第一個操作數指定的對象中。
|= 獲取第一個和第二個操作數的按位“與或”;將結果存儲在第一個操作數指定的對象中。

 

運算符關鍵字
三個復合賦值運算符具有文本等效項。它們是:

運算符 等效
&= and_eq
|= or_eq
^= xor_eq

在您的程序中有兩種訪問這些運算符關鍵字的方法:包括標頭文件 iso646.h 或使用 /Za(禁用語言擴展)編譯器選項進行編譯。

 

// expre_Assignment_Operators.cpp// compile with: /EHsc// Demonstrate assignment operators#include <iostream>using namespace std;int main() {  int a = 3, b = 6, c = 10, d = 0xAAAA, e = 0x5555;  a += b;   // a is 9  b %= a;   // b is 6  c >>= 1;   // c is 5  d |= e;   // Bitwise--d is 0xFFFF  cout << "a = 3, b = 6, c = 10, d = 0xAAAA, e = 0x5555" << endl     << "a += b yields " << a << endl     << "b %= a yields " << b << endl     << "c >>= 1 yields " << c << endl     << "d |= e yields " << hex << d << endl;}

簡單賦值
簡單賦值運算符 (=) 將使第二個操作數的值存儲在第一個操作數指定的對象中。如果兩個對象都是算術類型,則在存儲值之前,正確的操作數將轉換為左側的類型。
常量和可變類型的對象可賦給可變類型的左值或者既不是常量類型也不是可變類型的左值。
對類類型(結構、聯合和類類型)的對象的賦值由名為 operator= 的函數執行。此運算符函數值的默認行為是執行按位復制;但是,可使用重載運算符修改此行為。(有關詳細信息,請參閱重載運算符。)
任何從給定基類明確派生的類的對象均可賦給基類的對象。反之則不然,因為有一個隱式轉換,它能從派生類轉換到基類,但不能從基類轉換到派生類。例如:

// expre_SimpleAssignment.cpp// compile with: /EHsc#include <iostream>using namespace std;class ABase{public:  ABase() { cout << "constructing ABase/n"; }};class ADerived : public ABase{public:  ADerived() { cout << "constructing ADerived/n"; }};int main(){  ABase aBase;  ADerived aDerived;  aBase = aDerived; // OK  aDerived = aBase; // C2679}

對引用類型的賦值的行為方式就像對引用所指向的對象進行賦值一樣。
對于類類型對象,賦值與初始化不同。若要演示不同賦值和初始化的工作方式,請考慮以下代碼

UserType1 A;UserType2 B = A;

上面的代碼顯示了一個初始值設定項;它調用了采用 UserType2 類型的參數的 UserType1 的構造函數。給定以下代碼

UserType1 A;UserType2 B;B = A;

賦值語句

B = A; 

可能具有以下效果之一:
將為 UserType2 調用函數 operator=,前提是 operator= 提供 UserType1 參數。
如果存在顯式轉換函數 UserType1::operator UserType2,則調用該函數。
調用采用 UserType2::UserType2 參數并復制結果的構造函數 UserType1,前提是存在此類構造函數。
復合賦值
顯示在的表中的復合賦值運算符以 e1 op= e2 的形式指定,其中 e1 是非常量類型的可修改左值,而 e2 是以下項之一:
算術類型
指針(如果 op 為 + 或 –)
e1 op= e2 形式的行為方式與 e1 = e1 op e2 的相同,但 e1 只計算一次。
對枚舉類型的復合賦值將生成錯誤消息。如果左操作數屬于指針類型,則右操作數必須屬于指針類型或必須是計算結果為 0 的常量表達式。如果左操作數屬于整數類型,則右操作數不能屬于指針類型。
賦值運算符的結果
賦值后,賦值運算符將返回由左操作數指定的對象的值。獲得的類型是左操作數的類型。賦值表達式的結果始終為左值。這些運算符具有從右向左的關聯性。左操作數必須為可修改的左值。
在 ANSI C 中,賦值表達式的結果不是左值。因此,合法的 C++ 表達式 (a += b) += c 在 C 中是非法的。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠躁天天躁日日躁欧美| 97在线看免费观看视频在线观看| 懂色av影视一区二区三区| 麻豆精品精华液| 国产欧美一区二区三区四区| 日本久久久久久| 国产精品视频资源| 成人免费在线视频网址| 日韩视频免费在线观看| 日日骚av一区| 26uuu亚洲伊人春色| 国产一区二区av| 中日韩美女免费视频网址在线观看| 国产精品久久久久久影视| 亚洲图片欧美日产| 成人中文字幕+乱码+中文字幕| 国产精品久久久久99| 国产91ⅴ在线精品免费观看| 色一情一乱一区二区| 97视频在线观看免费高清完整版在线观看| 国产精品久久久久7777婷婷| 欧美成人午夜影院| 国产亚洲精品综合一区91| 欧美激情欧美激情| 久久成人18免费网站| 亚洲精品一区中文字幕乱码| 欧美特黄级在线| 亚洲精品免费一区二区三区| 久久亚洲精品成人| 九色精品美女在线| 美日韩精品免费视频| 乱亲女秽乱长久久久| 98精品国产自产在线观看| 亚洲男人天天操| 欧美午夜激情小视频| 亚洲一区二区久久| 欧美一区第一页| 亚洲精品电影网站| 欧美亚洲在线观看| 亚洲综合第一页| 2019中文在线观看| 在线日韩日本国产亚洲| 亚洲图片在线综合| 久久精品国产久精国产思思| 57pao成人永久免费视频| 欧美洲成人男女午夜视频| 亚洲午夜av久久乱码| 91在线观看免费观看| 久久精品视频亚洲| 97精品久久久中文字幕免费| 最近2019免费中文字幕视频三| 国产在线精品自拍| 欧日韩在线观看| 亚洲最大在线视频| 精品香蕉在线观看视频一| 亚洲成年人在线| 久久人91精品久久久久久不卡| 日韩欧美高清视频| 国产99在线|中文| 国产精品久久久91| 日韩成人久久久| 精品久久久在线观看| 中文字幕一区二区三区电影| 91午夜理伦私人影院| 国产精品欧美激情| 国产精品日韩专区| 久久久久一本一区二区青青蜜月| 日本高清不卡的在线| 亚洲国产99精品国自产| 91久久久久久久久| 国产裸体写真av一区二区| 亚洲成av人片在线观看香蕉| 欧美性资源免费| 97国产精品人人爽人人做| 欧美午夜精品伦理| 色综合影院在线| 欧美一区二区三区免费观看| 亚洲欧美激情在线视频| 色青青草原桃花久久综合| 91在线视频免费| 97av视频在线| 中文字幕亚洲在线| 久久久久久久久久国产精品| 欧美在线www| 91精品在线看| 国产成人免费av电影| 久久偷看各类女兵18女厕嘘嘘| 在线看福利67194| 日韩精品在线播放| 国产91色在线| 日韩经典第一页| 亚洲天堂av在线免费| 久久久www成人免费精品张筱雨| 91久久精品美女| 欧美成人免费大片| 91在线观看免费| 亚洲网站在线观看| 疯狂做受xxxx高潮欧美日本| 91豆花精品一区| 亚洲va久久久噜噜噜久久天堂| 欧美一级淫片丝袜脚交| 国产亚洲免费的视频看| 欧美一区二区三区免费观看| 色婷婷综合成人| 欧美午夜宅男影院在线观看| 日韩视频在线观看免费| 国产精品免费福利| 亚洲国产婷婷香蕉久久久久久| 久久中文字幕在线| 欧美自拍视频在线观看| 国产精品久久久久久久久免费看| 精品自拍视频在线观看| 欧美最顶级丰满的aⅴ艳星| 亚洲免费高清视频| 亚洲激情视频在线观看| 久久99亚洲精品| 中文精品99久久国产香蕉| 粉嫩老牛aⅴ一区二区三区| 欧美亚洲激情视频| 91久久综合亚洲鲁鲁五月天| 美女av一区二区三区| 亚洲免费电影一区| 日韩av最新在线| 日韩网站免费观看高清| 日韩欧美国产激情| 日韩在线视频免费观看| 欧美日韩亚洲精品一区二区三区| 日韩经典中文字幕在线观看| 亚洲精品中文字幕女同| 欧美激情手机在线视频| 亚洲一区www| 91麻豆国产语对白在线观看| 亚洲欧美日韩精品久久亚洲区| 欧美极品少妇xxxxⅹ喷水| 欧美日韩国产成人在线观看| 欧美成人午夜视频| 国产精品一久久香蕉国产线看观看| 欧美国产亚洲精品久久久8v| 久久久久国色av免费观看性色| 久久视频这里只有精品| 亚洲视频自拍偷拍| 日本精品视频网站| 午夜精品久久久久久99热软件| 97视频com| 国产精品久久久久久久av大片| 欧美成人免费全部观看天天性色| 欧美黑人一区二区三区| 成人av在线网址| 国模私拍视频一区| 中文字幕国内精品| 狠狠色狠狠色综合日日五| 国产精品ⅴa在线观看h| 精品国产福利视频| 国产精品一区二区久久国产| 国产91成人在在线播放| 欧美最猛黑人xxxx黑人猛叫黄| 成人国产精品色哟哟| 久久久久久com| 色香阁99久久精品久久久| 国产精品aaaa| 91视频国产精品| 国产视频自拍一区| 欧美日韩国产成人在线观看| 国产精品三级久久久久久电影|