Files
hustoj/web/cppreference-zh/chmhelp/cpp-language-operator_assignment.html
2025-08-01 12:57:54 +08:00

596 lines
50 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>&#36171;&#20540;&#36816;&#31639;&#31526;</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_language_operator_assignment skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#36171;&#20540;&#36816;&#31639;&#31526;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-language.html">language</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>&#36171;&#20540;&#36816;&#31639;&#31526;&#20462;&#25913;&#23545;&#35937;&#30340;&#20540;&#12290;</p>
<table class="wikitable" style="font-size:85%;">
<tr>
<th rowspan="2">&#36816;&#31639;&#31526;&#21517;</th>
<th rowspan="2">&#35821;&#27861;</th>
<th rowspan="2"><a href="cpp-language-operators.html">&#21487;&#37325;&#36733;</a></th>
<th colspan="2">&#21407;&#22411;&#31034;&#20363;&#65288;&#23545;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">class</span> T</span></span>&#65289;</th>
</tr>
<tr>
<th>&#31867;&#20869;&#23450;&#20041;</th>
<th>&#31867;&#22806;&#23450;&#20041;</th>
</tr>
<tr>
<td>&#31616;&#21333;&#36171;&#20540;</td>
<td><code>a = b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td style="background: #ececec; color: grey; vertical-align: middle; text-align: center;" class="table-na"><small>N/A</small></td>
</tr>
<tr>
<td>&#21152;&#27861;&#36171;&#20540;</td>
<td><code>a += b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy2">+</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy2">+</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#20943;&#27861;&#36171;&#20540;</td>
<td><code>a -= b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy2">-</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy2">-</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#20056;&#27861;&#36171;&#20540;</td>
<td><code>a *= b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy2">*</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy2">*</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#38500;&#27861;&#36171;&#20540;</td>
<td><code>a /= b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy2">/</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy2">/</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#21462;&#27169;&#36171;&#20540;</td>
<td><code>a&nbsp;%= b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy2">%</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy2">%</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#36880;&#20301;&#19982;&#36171;&#20540;</td>
<td><code>a &amp;= b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy3">&amp;</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy3">&amp;</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#36880;&#20301;&#25110;&#36171;&#20540;</td>
<td><code>a |= b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy3">|</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy3">|</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#36880;&#20301;&#24322;&#25110;&#36171;&#20540;</td>
<td><code>a ^= b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy3">^</span><span class="sy1">=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy3">^</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#36880;&#20301;&#24038;&#31227;&#36171;&#20540;</td>
<td><code>a &lt;&lt;= b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy1">&lt;&lt;=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy1">&lt;&lt;=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>&#36880;&#20301;&#21491;&#31227;&#36171;&#20540;</td>
<td><code>a &gt;&gt;= b</code></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">&#26159;</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> T<span class="sy4">::</span><span class="me2">operator</span> <span class="sy1">&gt;&gt;=</span><span class="br0">(</span><span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator <span class="sy1">&gt;&gt;=</span><span class="br0">(</span>T<span class="sy3">&amp;</span> a, <span class="kw4">const</span> T2<span class="sy3">&amp;</span> b<span class="br0">)</span><span class="sy4">;</span></span></span></td>
</tr>
<tr>
<td>
<dl>
<dd><b>&#27880;&#24847;</b><br /></dd>
</dl>
<ul>
<li>&#25152;&#26377;&#20869;&#24314;&#36171;&#20540;&#36816;&#31639;&#31526;&#37117;&#36820;&#22238; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span>this</span></span>&#65292;&#32780;&#22823;&#22810;&#25968;<a href="cpp-language-operators.html">&#29992;&#25143;&#23450;&#20041;&#37325;&#36733;</a>&#20134;&#36820;&#22238; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span>this</span></span>&#65292;&#20174;&#32780;&#33021;&#20197;&#19982;&#20869;&#24314;&#29256;&#26412;&#30456;&#21516;&#30340;&#26041;&#24335;&#20351;&#29992;&#29992;&#25143;&#23450;&#20041;&#36816;&#31639;&#31526;&#12290;&#28982;&#32780;&#65292;&#29992;&#25143;&#23450;&#20041;&#36816;&#31639;&#31526;&#37325;&#36733;&#20013;&#65292;&#33021;&#20197;&#20219;&#20309;&#31867;&#22411;&#20026;&#36820;&#22238;&#31867;&#22411;&#65288;&#21253;&#25324; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span>&#65289;&#12290;</li>
<li><code>T2</code> &#21487;&#20026;&#21253;&#21547; <code>T</code> &#22312;&#20869;&#30340;&#20219;&#20309;&#31867;&#22411;</li>
</ul>
</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<p><i>&#22797;&#21046;&#36171;&#20540;&#36816;&#31639;&#31526;</i>&#20197; <code>b</code> &#20869;&#23481;&#30340;&#21103;&#26412;&#26367;&#25442;&#23545;&#35937; <code>a</code> &#30340;&#20869;&#23481;&#65288;&#19981;&#20462;&#25913; <code>b</code>&#65289;&#12290;&#23545;&#20110;&#31867;&#31867;&#22411;&#65292;&#36825;&#26159;&#19968;&#31181;&#29305;&#27530;&#25104;&#21592;&#20989;&#25968;&#65292;&#25551;&#36848;&#20110;<a href="cpp-language-copy_assignment.html">&#22797;&#21046;&#36171;&#20540;&#36816;&#31639;&#31526;</a>&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<p><i>&#31227;&#21160;&#36171;&#20540;&#36816;&#31639;&#31526;</i>&#20197; <code>b</code> &#30340;&#20869;&#23481;&#26367;&#25442;&#23545;&#35937; <code>a</code> &#30340;&#20869;&#23481;&#65292;&#24182;&#23613;&#21487;&#33021;&#36991;&#20813;&#22797;&#21046;&#65288;&#21487;&#20197;&#20462;&#25913; <code>b</code>&#65289;&#12290;&#23545;&#20110;&#31867;&#31867;&#22411;&#65292;&#36825;&#26159;&#19968;&#31181;&#29305;&#27530;&#25104;&#21592;&#20989;&#25968;&#65292;&#25551;&#36848;&#20110;<a href="cpp-language-move_assignment.html">&#31227;&#21160;&#36171;&#20540;&#36816;&#31639;&#31526;</a>&#12290; <span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></p>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<p>&#23545;&#20110;&#38750;&#31867;&#31867;&#22411;&#65292;&#23545;&#22797;&#21046;&#19982;&#31227;&#21160;&#36171;&#20540;&#19981;&#21152;&#20197;&#21306;&#20998;&#65292;&#22343;&#34987;&#31216;&#20316;<i>&#30452;&#25509;&#36171;&#20540;&#65288;direct assignment&#65289;</i>&#12290;</p>
<p><i>&#22797;&#21512;&#36171;&#20540;&#65288;compound assignment&#65289;</i>&#36816;&#31639;&#31526;&#20197; <code>a</code> &#30340;&#20540;&#21644; <code>b</code> &#30340;&#20540;&#38388;&#30340;&#20108;&#20803;&#36816;&#31639;&#32467;&#26524;&#26367;&#25442;&#23545;&#35937; <code>a</code> &#30340;&#20869;&#23481;&#12290;</p>
<h4><span class="mw-headline" id=".E5.86.85.E5.BB.BA.E7.9A.84.E7.9B.B4.E6.8E.A5.E8.B5.8B.E5.80.BC">&#20869;&#24314;&#30340;&#30452;&#25509;&#36171;&#20540;</span></h4>
<p>&#30452;&#25509;&#36171;&#20540;&#34920;&#36798;&#24335;&#30340;&#24418;&#24335;&#20026;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> <code><b>=</b></code> <span class="t-spar">&#21491;&#25805;&#20316;&#25968;</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> <code><b>=</b></code> <code><b>{}</b></code></td>
<td>(2)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> <code><b>=</b></code> <code><b>{</b></code> <span class="t-spar">&#21491;&#25805;&#20316;&#25968;</span> <code><b>}</b></code></td>
<td>(3)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<p>&#23545;&#20110;&#20869;&#24314;&#36816;&#31639;&#31526;&#65292;<span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> &#21487;&#25317;&#26377;&#20219;&#20309;&#38750; const &#26631;&#37327;&#31867;&#22411;&#65292;&#32780; <span class="t-spar">&#21491;&#25805;&#20316;&#25968;</span> &#24517;&#39035;&#21487;&#38544;&#24335;&#36716;&#25442;&#20026; <span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> &#30340;&#31867;&#22411;&#12290;</p>
<p>&#30452;&#25509;&#36171;&#20540;&#36816;&#31639;&#31526;&#26399;&#24453;&#20197;&#19968;&#20010;&#21487;&#20462;&#25913;&#24038;&#20540;&#20026;&#20854;&#24038;&#25805;&#20316;&#25968;&#65292;&#20197;&#19968;&#20010;&#21491;&#20540;&#34920;&#36798;&#24335;<span class="t-rev-inl t-since-cxx11"><span>&#25110;<i>&#33457;&#25324;&#21495;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;</i></span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#20026;&#20854;&#21491;&#25805;&#20316;&#25968;&#65292;&#24182;&#36820;&#22238;&#19968;&#20010;&#26631;&#35782;&#20462;&#25913;&#21518;&#30340;&#24038;&#25805;&#20316;&#25968;&#30340;&#24038;&#20540;&#12290;</p>
<p>&#23545;&#20110;&#38750;&#31867;&#31867;&#22411;&#65292;&#39318;&#20808;&#23558;&#21491;&#25805;&#20316;&#25968;<a href="cpp-language-implicit_conversion.html">&#38544;&#24335;&#36716;&#25442;</a>&#20026;&#24038;&#25805;&#20316;&#25968;&#30340;&#26080; cv &#38480;&#23450;&#30340;&#31867;&#22411;&#65292;&#28982;&#21518;&#22797;&#21046;&#20854;&#20540;&#21040;&#24038;&#25805;&#20316;&#25968;&#25152;&#26631;&#35782;&#30340;&#23545;&#35937;&#20013;&#12290;</p>
<p>&#24403;&#24038;&#25805;&#20316;&#25968;&#25317;&#26377;&#24341;&#29992;&#31867;&#22411;&#26102;&#65292;&#36171;&#20540;&#36816;&#31639;&#31526;&#20462;&#25913;&#34987;&#24341;&#29992;&#30340;&#23545;&#35937;&#12290;</p>
<p>&#33509;&#24038;&#21491;&#25805;&#20316;&#25968;&#26631;&#35782;&#30340;&#23545;&#35937;&#20043;&#38388;&#26377;&#37325;&#21472;&#65292;&#21017;&#34892;&#20026;&#26410;&#23450;&#20041;&#65288;&#38500;&#38750;&#20108;&#32773;&#20005;&#26684;&#37325;&#21472;&#19988;&#31867;&#22411;&#30456;&#21516;&#65289;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<p>&#24403;&#21491;&#36816;&#31639;&#25968;&#20026;<i>&#33457;&#25324;&#21495;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920; (brace-init-list)</i>&#26102;</p>
<ul>
<li>&#33509;&#34920;&#36798;&#24335; <code>E1</code> &#25317;&#26377;&#26631;&#37327;&#31867;&#22411;&#65292;&#21017;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1 <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span></span></span> &#31561;&#20215;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1 <span class="sy1">=</span> T<span class="br0">{</span><span class="br0">}</span></span></span>&#65292;&#20854;&#20013; <code>T</code> &#26159; <code>E1</code> &#30340;&#31867;&#22411;&#12290;</li>
<li>&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1 <span class="sy1">=</span> <span class="br0">{</span>E2<span class="br0">}</span></span></span> &#31561;&#20215;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1 <span class="sy1">=</span> T<span class="br0">{</span>E2<span class="br0">}</span></span></span>&#65292;&#20854;&#20013; <code>T</code> &#26159; <code>E1</code> &#30340;&#31867;&#22411;&#12290;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#33509;&#34920;&#36798;&#24335; <code>E1</code> &#25317;&#26377;&#31867;&#31867;&#22411;&#65292;&#21017;&#35821;&#27861; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1 <span class="sy1">=</span> <span class="br0">{</span>args...<span class="br0">}</span></span></span> &#29983;&#25104;&#20197;<i>&#33457;&#25324;&#21495;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;</i>&#20026;&#23454;&#21442;&#23545;&#36171;&#20540;&#36816;&#31639;&#31526;&#30340;&#19968;&#27425;&#35843;&#29992;&#65292;&#28982;&#21518;&#36981;&#24490;<a href="cpp-language-overload_resolution.html">&#37325;&#36733;&#20915;&#35758;</a>&#35268;&#21017;&#36873;&#21462;&#36866;&#21512;&#30340;&#36171;&#20540;&#36816;&#31639;&#31526;&#12290;&#38656;&#35201;&#27880;&#24847;&#30340;&#26159;&#65292;&#33509;&#20197;&#26576;&#20010;&#38750;&#31867;&#31867;&#22411;&#20026;&#23454;&#21442;&#30340;&#38750;&#27169;&#26495;&#36171;&#20540;&#36816;&#31639;&#31526;&#21487;&#29992;&#65292;&#21017;&#23427;&#32988;&#36807; <code>E1 = {}</code> &#20013;&#30340;&#22797;&#21046;/&#31227;&#21160;&#36171;&#20540;&#65292;&#36825;&#26159;&#22240;&#20026;&#20174; <code>{}</code> &#21040;&#38750;&#31867;&#31867;&#22411;&#23646;&#20110;<a href="cpp-language-overload_resolution.html#.E5.88.97.E8.A1.A8.E5.88.9D.E5.A7.8B.E5.8C.96.E4.B8.AD.E7.9A.84.E9.9A.90.E5.BC.8F.E8.BD.AC.E6.8D.A2.E5.BA.8F.E5.88.97">&#24658;&#31561;&#36716;&#25442;</a>&#65292;&#23427;&#20248;&#20808;&#20110;&#20174; <code>{}</code> &#21040;&#31867;&#31867;&#22411;&#30340;&#29992;&#25143;&#23450;&#20041;&#36716;&#25442;&#12290;</li>
</ul>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx20">
<td>
<p>&#20197; volatile &#38480;&#23450;&#30340;&#38750;&#31867;&#31867;&#22411;&#24038;&#20540;&#20026;&#20869;&#24314;&#30452;&#25509;&#36171;&#20540;&#36816;&#31639;&#31526;&#30340;&#24038;&#25805;&#20316;&#25968;&#34987;&#24323;&#29992;&#65292;&#38500;&#38750;&#35813;&#36171;&#20540;&#34920;&#36798;&#24335;&#20986;&#29616;&#20110;<a href="cpp-language-expressions.html#.E4.B8.8D.E6.B1.82.E5.80.BC.E8.A1.A8.E8.BE.BE.E5.BC.8F">&#19981;&#27714;&#20540;&#35821;&#22659;</a>&#25110;&#26159;<a href="cpp-language-expressions.html#.E5.BC.83.E5.80.BC.E8.A1.A8.E8.BE.BE.E5.BC.8F">&#24323;&#20540;&#34920;&#36798;&#24335;</a>&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<p><a href="cpp-language-overload_resolution.html#.E8.B0.83.E7.94.A8.E9.87.8D.E8.BD.BD.E8.BF.90.E7.AE.97.E7.AC.A6">&#38024;&#23545;&#29992;&#25143;&#23450;&#20041;&#36816;&#31639;&#31526;&#30340;&#37325;&#36733;&#20915;&#35758;</a>&#20013;&#65292;&#23545;&#20110;&#27599;&#20010;&#31867;&#22411; <code>T</code>&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#21442;&#19982;&#37325;&#36733;&#20915;&#35758;&#65306;</p>
<table class="t-dcl-begin">
<tbody>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">T<span class="sy2">*</span><span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>T<span class="sy2">*</span><span class="sy3">&amp;</span>, T<span class="sy2">*</span><span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">T<span class="sy2">*</span><span class="kw4">volatile</span> <span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>T<span class="sy2">*</span><span class="kw4">volatile</span> <span class="sy3">&amp;</span>, T<span class="sy2">*</span><span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#23545;&#20110;&#27599;&#20010;&#26522;&#20030;&#25110;&#25104;&#21592;&#25351;&#38024;&#31867;&#22411; <code>T</code>&#65288;&#21487;&#36873;&#22320;&#26377; volatile &#38480;&#23450;&#65289;&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#21442;&#19982;&#37325;&#36733;&#20915;&#35758;&#65306;</p>
<table class="t-dcl-begin">
<tbody>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">T<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>T<span class="sy3">&amp;</span>, T <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#23545;&#20110;&#27599;&#23545; A1 &#21644; A2&#65292;&#20854;&#20013; A1 &#26159;&#31639;&#26415;&#31867;&#22411;&#65288;&#21487;&#36873;&#22320;&#26377; volatile &#38480;&#23450;&#65289;&#32780; A2 &#26159;&#25552;&#21319;&#21518;&#30340;&#31639;&#26415;&#31867;&#22411;&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#21442;&#19982;&#37325;&#36733;&#20915;&#35758;&#65306;</p>
<table class="t-dcl-begin">
<tbody>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">A1<span class="sy3">&amp;</span> operator<span class="sy1">=</span><span class="br0">(</span>A1<span class="sy3">&amp;</span>, A2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;iostream&gt;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">0</span><span class="sy4">;</span> <span class="co1">// &#19981;&#26159;&#36171;&#20540;</span>
n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#30452;&#25509;&#36171;&#20540;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span><span class="sy4">;</span>
n <span class="sy1">=</span> <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#38646;&#21021;&#22987;&#21270;&#65292;&#28982;&#21518;&#36171;&#20540;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span><span class="sy4">;</span>
n <span class="sy1">=</span> <span class="st0">&#39;a&#39;</span><span class="sy4">;</span> <span class="co1">// &#25972;&#22411;&#25552;&#21319;&#65292;&#28982;&#21518;&#36171;&#20540;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span><span class="sy4">;</span>
n <span class="sy1">=</span> <span class="br0">{</span><span class="st0">&#39;b&#39;</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#26174;&#24335;&#36716;&#22411;&#65292;&#28982;&#21518;&#36171;&#20540;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span><span class="sy4">;</span>
n <span class="sy1">=</span> <span class="nu16">1.0</span><span class="sy4">;</span> <span class="co1">// &#28014;&#28857;&#36716;&#25442;&#65292;&#28982;&#21518;&#36171;&#20540;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span><span class="sy4">;</span>
<span class="co1">// n = {1.0}; // &#32534;&#35793;&#38169;&#35823;&#65288;&#31364;&#21270;&#36716;&#25442;&#65289;</span>
<span class="kw4">int</span><span class="sy3">&amp;</span> r <span class="sy1">=</span> n<span class="sy4">;</span> <span class="co1">// &#19981;&#26159;&#36171;&#20540;</span>
<span class="kw4">int</span><span class="sy2">*</span> p<span class="sy4">;</span>
r <span class="sy1">=</span> <span class="nu0">2</span><span class="sy4">;</span> <span class="co1">// &#36890;&#36807;&#24341;&#29992;&#36171;&#20540;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
p <span class="sy1">=</span> <span class="sy3">&amp;</span>n<span class="sy4">;</span> <span class="co1">// &#30452;&#25509;&#36171;&#20540;</span>
p <span class="sy1">=</span> nullptr<span class="sy4">;</span> <span class="co1">// &#31354;&#25351;&#38024;&#36716;&#25442;&#65292;&#28982;&#21518;&#36171;&#20540;</span>
<span class="kw1">struct</span> <span class="br0">{</span><span class="kw4">int</span> a<span class="sy4">;</span> <a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a> s<span class="sy4">;</span><span class="br0">}</span> obj<span class="sy4">;</span>
obj <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">1</span>, <span class="st0">&quot;abc&quot;</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#20174;&#33457;&#25324;&#21495;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;&#36171;&#20540;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> obj.<span class="me1">a</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;:&#39;</span> <span class="sy1">&lt;&lt;</span> obj.<span class="me1">s</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">1 0 97 98 1 2
1:abc</pre></div>
</div>
</div>
<h4><span class="mw-headline" id=".E5.86.85.E5.BB.BA.E7.9A.84.E5.A4.8D.E5.90.88.E8.B5.8B.E5.80.BC">&#20869;&#24314;&#30340;&#22797;&#21512;&#36171;&#20540;</span></h4>
<p>&#22797;&#21512;&#36171;&#20540;&#34920;&#36798;&#24335;&#30340;&#24418;&#24335;&#20026;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> <span class="t-spar">&#36816;&#31639;&#31526;</span> <span class="t-spar">&#21491;&#25805;&#20316;&#25968;</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> <span class="t-spar">&#36816;&#31639;&#31526;</span> <code><b>{}</b></code></td>
<td>(2)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> <span class="t-spar">&#36816;&#31639;&#31526;</span> <code><b>{</b></code> <span class="t-spar">&#21491;&#25805;&#20316;&#25968;</span> <code><b>}</b></code></td>
<td>(3)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">&#36816;&#31639;&#31526;</span></td>
<td>-</td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">*</span><span class="sy1">=</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">/</span><span class="sy1">=</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">%</span><span class="sy1">=</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">+</span><span class="sy1">=</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">-</span><span class="sy1">=</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy1">&lt;&lt;=</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy1">&gt;&gt;=</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">&amp;</span><span class="sy1">=</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">^</span><span class="sy1">=</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">|</span><span class="sy1">=</span></span></span> &#20043;&#19968;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span></td>
<td>-</td>
<td>&#23545;&#20110;&#20869;&#24314;&#36816;&#31639;&#31526;&#65292;<span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span> &#21487;&#20855;&#26377;&#20219;&#20309;&#31639;&#26415;&#31867;&#22411;&#65292;&#20294;&#33509; <span class="t-spar">&#36816;&#31639;&#31526;</span> &#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">+</span><span class="sy1">=</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">-</span><span class="sy1">=</span></span></span>&#65292;&#21017;&#20063;&#25509;&#21463;&#25351;&#38024;&#31867;&#22411;&#65292;&#24182;&#19982; + &#21644; - &#26377;&#30456;&#21516;&#38480;&#21046;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#21491;&#25805;&#20316;&#25968;</span></td>
<td>-</td>
<td>&#23545;&#20110;&#20869;&#24314;&#36816;&#31639;&#31526;&#65292;<span class="t-spar">&#21491;&#25805;&#20316;&#25968;</span> &#24517;&#39035;&#21487;&#38544;&#24335;&#36716;&#25442;&#20026; <span class="t-spar">&#24038;&#25805;&#20316;&#25968;</span></td>
</tr>
</table>
<p>&#27599;&#20010;&#20869;&#24314;&#22797;&#21512;&#36171;&#20540;&#36816;&#31639;&#31526;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1 op<span class="sy1">=</span> E2</span></span>&#65288;&#20854;&#20013; E1 &#26159;&#21487;&#20462;&#25913;&#24038;&#20540;&#34920;&#36798;&#24335;&#65292;&#32780; E2 &#26159;&#21491;&#20540;&#34920;&#36798;&#24335;<span class="t-rev-inl t-since-cxx11"><span>&#25110;<i>&#33457;&#25324;&#21495;&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;</i></span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#65289;&#30340;&#34892;&#20026;&#19982;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">E1 <span class="sy1">=</span> E1 op E2</span></span> &#30340;&#34892;&#20026;&#20005;&#26684;&#30456;&#21516;&#65292;&#20294;&#21482;&#23545;&#34920;&#36798;&#24335; <code>E1</code> &#36827;&#34892;&#19968;&#27425;&#27714;&#20540;&#65292;&#24182;&#19988;&#23545;&#20110;&#39034;&#24207;&#19981;&#30830;&#23450;&#30340;&#20989;&#25968;&#32780;&#35328;&#26159;&#19968;&#27425;&#21333;&#20010;&#25805;&#20316;&#65288;&#20363;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp">f<span class="br0">(</span>a <span class="sy2">+</span><span class="sy1">=</span> b, g<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></span></span> &#20013;&#65292;&#20174; <span class="t-c"><span class="mw-geshi cpp source-cpp">g<span class="br0">(</span><span class="br0">)</span></span></span> &#20869;&#26469;&#30475;&#65292;+= &#35201;&#20040;&#23436;&#20840;&#26410;&#24320;&#22987;&#65292;&#35201;&#20040;&#24050;&#23436;&#25104;&#65289;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx20">
<td>
<p>&#20197; volatile &#38480;&#23450;&#30340;&#38750;&#31867;&#31867;&#22411;&#24038;&#20540;&#20026;&#20869;&#24314;&#22797;&#21512;&#36171;&#20540;&#36816;&#31639;&#31526;&#30340;&#24038;&#25805;&#20316;&#25968;&#34987;&#24323;&#29992;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<p>&#22312;<a href="cpp-language-overload_resolution.html#.E8.B0.83.E7.94.A8.E9.87.8D.E8.BD.BD.E8.BF.90.E7.AE.97.E7.AC.A6">&#38024;&#23545;&#29992;&#25143;&#23450;&#20041;&#36816;&#31639;&#31526;&#30340;&#37325;&#36733;&#20915;&#35758;</a>&#20013;&#65292;&#23545;&#27599;&#23545; A1 &#21644; A2&#65292;&#20854;&#20013; A1 &#26159;&#31639;&#26415;&#31867;&#22411;&#65288;&#21487;&#36873;&#22320;&#26377; volatile &#38480;&#23450;&#65289;&#32780; A2 &#20026;&#25552;&#21319;&#21518;&#30340;&#31639;&#26415;&#31867;&#22411;&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#21442;&#19982;&#37325;&#36733;&#20915;&#35758;&#65306;</p>
<table class="t-dcl-begin">
<tbody>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">A1<span class="sy3">&amp;</span> operator<span class="sy2">*</span><span class="sy1">=</span><span class="br0">(</span>A1<span class="sy3">&amp;</span>, A2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">A1<span class="sy3">&amp;</span> operator<span class="sy2">/</span><span class="sy1">=</span><span class="br0">(</span>A1<span class="sy3">&amp;</span>, A2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">A1<span class="sy3">&amp;</span> operator<span class="sy2">+</span><span class="sy1">=</span><span class="br0">(</span>A1<span class="sy3">&amp;</span>, A2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">A1<span class="sy3">&amp;</span> operator<span class="sy2">-</span><span class="sy1">=</span><span class="br0">(</span>A1<span class="sy3">&amp;</span>, A2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#23545;&#20110;&#27599;&#23545; I1 &#19982; I2&#65292;&#20854;&#20013; I1 &#26159;&#25972;&#22411;&#31867;&#22411;&#65288;&#21487;&#36873;&#22320;&#26377; volatile &#38480;&#23450;&#65289;&#32780; I2 &#20026;&#25552;&#21319;&#21518;&#30340;&#25972;&#22411;&#31867;&#22411;&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#21442;&#19982;&#37325;&#36733;&#20915;&#35758;&#65306;</p>
<table class="t-dcl-begin">
<tbody>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">I1<span class="sy3">&amp;</span> operator<span class="sy2">%</span><span class="sy1">=</span><span class="br0">(</span>I1<span class="sy3">&amp;</span>, I2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">I1<span class="sy3">&amp;</span> operator<span class="sy1">&lt;&lt;=</span><span class="br0">(</span>I1<span class="sy3">&amp;</span>, I2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">I1<span class="sy3">&amp;</span> operator<span class="sy1">&gt;&gt;=</span><span class="br0">(</span>I1<span class="sy3">&amp;</span>, I2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">I1<span class="sy3">&amp;</span> operator<span class="sy3">&amp;</span><span class="sy1">=</span><span class="br0">(</span>I1<span class="sy3">&amp;</span>, I2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">I1<span class="sy3">&amp;</span> operator<span class="sy3">^</span><span class="sy1">=</span><span class="br0">(</span>I1<span class="sy3">&amp;</span>, I2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">I1<span class="sy3">&amp;</span> operator<span class="sy3">|</span><span class="sy1">=</span><span class="br0">(</span>I1<span class="sy3">&amp;</span>, I2<span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#23545;&#20110;&#27599;&#20010;&#21487;&#36873;&#22320;&#26377; cv &#38480;&#23450;&#30340;&#23545;&#35937;&#31867;&#22411; <code>T</code>&#65292;&#19979;&#21015;&#20989;&#25968;&#31614;&#21517;&#21442;&#19982;&#37325;&#36733;&#20915;&#35758;&#65306;</p>
<table class="t-dcl-begin">
<tbody>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">T<span class="sy2">*</span><span class="sy3">&amp;</span> operator<span class="sy2">+</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy2">*</span><span class="sy3">&amp;</span>, <a href="cpp-types-ptrdiff_t.html"><span class="kw101">std::<span class="me2">ptrdiff_t</span></span></a><span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">T<span class="sy2">*</span><span class="sy3">&amp;</span> operator<span class="sy2">-</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy2">*</span><span class="sy3">&amp;</span>, <a href="cpp-types-ptrdiff_t.html"><span class="kw101">std::<span class="me2">ptrdiff_t</span></span></a><span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">T<span class="sy2">*</span><span class="kw4">volatile</span> <span class="sy3">&amp;</span> operator<span class="sy2">+</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy2">*</span><span class="kw4">volatile</span> <span class="sy3">&amp;</span>, <a href="cpp-types-ptrdiff_t.html"><span class="kw101">std::<span class="me2">ptrdiff_t</span></span></a><span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl">
<td class="t-dcl-nopad">
<div><span class="mw-geshi cpp source-cpp">T<span class="sy2">*</span><span class="kw4">volatile</span> <span class="sy3">&amp;</span> operator<span class="sy2">-</span><span class="sy1">=</span><span class="br0">(</span>T<span class="sy2">*</span><span class="kw4">volatile</span> <span class="sy3">&amp;</span>, <a href="cpp-types-ptrdiff_t.html"><span class="kw101">std::<span class="me2">ptrdiff_t</span></span></a><span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td class="t-dcl-nopad"></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B_2">&#31034;&#20363;</span></h3>
<table class="metadata plainlinks ambox mbox-small-left ambox-notice" style="">
<tr>
<td class="mbox-empty-cell"></td>
<td class="mbox-text" style="">&#26412;&#33410;&#26410;&#23436;&#25104;<br />
&#21407;&#22240;&#65306;&#26242;&#26080;&#31034;&#20363;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<p><a href="cpp-language-operator_precedence.html">&#36816;&#31639;&#31526;&#20248;&#20808;&#32423;</a></p>
<p><a href="cpp-language-operators.html">&#36816;&#31639;&#31526;&#37325;&#36733;</a></p>
<table class="wikitable">
<tr style="text-align:center">
<th colspan="7">&#24120;&#35265;&#36816;&#31639;&#31526;</th>
</tr>
<tr style="text-align:center">
<td><strong class="selflink">&#36171;&#20540;</strong></td>
<td><a href="cpp-language-operator_incdec.html">&#33258;&#22686;<br />
&#33258;&#20943;</a></td>
<td><a href="cpp-language-operator_arithmetic.html">&#31639;&#26415;</a></td>
<td><a href="cpp-language-operator_logical.html">&#36923;&#36753;</a></td>
<td><a href="cpp-language-operator_comparison.html">&#27604;&#36739;</a></td>
<td><a href="cpp-language-operator_member_access.html">&#25104;&#21592;&#35775;&#38382;</a></td>
<td><a href="cpp-language-operator_other.html">&#20854;&#20182;</a></td>
</tr>
<tr style="text-align:center">
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp">a <span class="sy1">=</span> b<br />
a <span class="sy2">+</span><span class="sy1">=</span> b<br />
a <span class="sy2">-</span><span class="sy1">=</span> b<br />
a <span class="sy2">*</span><span class="sy1">=</span> b<br />
a <span class="sy2">/</span><span class="sy1">=</span> b<br />
a <span class="sy2">%</span><span class="sy1">=</span> b<br />
a <span class="sy3">&amp;</span><span class="sy1">=</span> b<br />
a <span class="sy3">|</span><span class="sy1">=</span> b<br />
a <span class="sy3">^</span><span class="sy1">=</span> b<br />
a <span class="sy1">&lt;&lt;=</span> b<br />
a <span class="sy1">&gt;&gt;=</span> b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">++</span>a<br />
<span class="sy2">--</span>a<br />
a<span class="sy2">++</span><br />
a<span class="sy2">--</span></span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">+</span>a<br />
<span class="sy2">-</span>a<br />
a <span class="sy2">+</span> b<br />
a <span class="sy2">-</span> b<br />
a <span class="sy2">*</span> b<br />
a <span class="sy2">/</span> b<br />
a <span class="sy2">%</span> b<br />
~a<br />
a <span class="sy3">&amp;</span> b<br />
a <span class="sy3">|</span> b<br />
a <span class="sy3">^</span> b<br />
a <span class="sy1">&lt;&lt;</span> b<br />
a <span class="sy1">&gt;&gt;</span> b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy3">!</span>a<br />
a <span class="sy3">&amp;&amp;</span> b<br />
a <span class="sy3">||</span> b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp">a <span class="sy1">==</span> b<br />
a <span class="sy3">!</span><span class="sy1">=</span> b<br />
a <span class="sy1">&lt;</span> b<br />
a <span class="sy1">&gt;</span> b<br />
a <span class="sy1">&lt;=</span> b<br />
a <span class="sy1">&gt;=</span> b<br />
a <span class="sy1">&lt;=&gt;</span> b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp">a<span class="br0">[</span>b<span class="br0">]</span><br />
<span class="sy2">*</span>a<br />
<span class="sy3">&amp;</span>a<br />
a<span class="sy2">-</span><span class="sy1">&gt;</span>b<br />
a.<span class="me1">b</span><br />
a<span class="sy2">-</span><span class="sy1">&gt;</span><span class="sy2">*</span>b<br />
a.<span class="sy2">*</span>b</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi cpp source-cpp">a<span class="br0">(</span>...<span class="br0">)</span><br />
a, b<br />
<span class="sy4">?</span> <span class="sy4">:</span></span></span></p>
</td>
</tr>
<tr>
<th colspan="7">&#29305;&#27530;&#36816;&#31639;&#31526;</th>
</tr>
<tr>
<td colspan="7">
<p><a href="cpp-language-static_cast.html"><tt>static_cast</tt></a> &#36716;&#25442;&#19968;&#20010;&#31867;&#22411;&#20026;&#21478;&#19968;&#30456;&#20851;&#31867;&#22411;<br />
<a href="cpp-language-dynamic_cast.html"><tt>dynamic_cast</tt></a> &#22312;&#32487;&#25215;&#23618;&#32423;&#20013;&#36716;&#25442;<br />
<a href="cpp-language-const_cast.html"><tt>const_cast</tt></a> &#28155;&#21152;&#25110;&#31227;&#38500; <a href="cpp-language-cv.html">cv</a> &#38480;&#23450;&#31526;<br />
<a href="cpp-language-reinterpret_cast.html"><tt>reinterpret_cast</tt></a> &#36716;&#25442;&#31867;&#22411;&#21040;&#26080;&#20851;&#31867;&#22411;<br />
<a href="cpp-language-explicit_cast.html">C &#39118;&#26684;&#36716;&#22411;</a> &#20197; <code>static_cast</code> &#12289; <code>const_cast</code> &#21450; <code>reinterpret_cast</code> &#30340;&#28151;&#21512;&#36716;&#25442;&#19968;&#20010;&#31867;&#22411;&#21040;&#21478;&#19968;&#31867;&#22411;<br />
<a href="cpp-language-new.html"><tt>new</tt></a> &#21019;&#24314;&#26377;&#21160;&#24577;&#23384;&#20648;&#26399;&#30340;&#23545;&#35937;<br />
<a href="cpp-language-delete.html"><tt>delete</tt></a> &#38144;&#27585;&#20808;&#21069;&#30001; new &#34920;&#36798;&#24335;&#21019;&#24314;&#30340;&#23545;&#35937;&#65292;&#24182;&#37322;&#25918;&#20854;&#25152;&#25317;&#26377;&#30340;&#20869;&#23384;&#21306;&#22495;<br />
<a href="cpp-language-sizeof.html"><tt>sizeof</tt></a> &#26597;&#35810;&#31867;&#22411;&#30340;&#22823;&#23567;<br />
<a href="cpp-language-sizeof....html"><tt>sizeof...</tt></a> &#26597;&#35810;<a href="cpp-language-parameter_pack.html">&#24418;&#21442;&#21253;</a>&#30340;&#22823;&#23567;<span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<a href="cpp-language-typeid.html"><tt>typeid</tt></a> &#26597;&#35810;&#31867;&#22411;&#30340;&#31867;&#22411;&#20449;&#24687;<br />
<a href="cpp-language-noexcept.html"><tt>noexcept</tt></a> &#26597;&#35810;&#34920;&#36798;&#24335;&#26159;&#21542;&#33021;&#25243;&#20986;&#24322;&#24120;<span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<a href="cpp-language-alignof.html"><tt>alignof</tt></a> &#26597;&#35810;&#31867;&#22411;&#30340;&#23545;&#40784;&#35201;&#27714;<span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></p>
</td>
</tr>
</table>
<table class="t-dsc-begin"></table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>