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

367 lines
28 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-c_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="c.html">c</a>&lrm; | <a href="c-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;&#21450;&#22797;&#21512;&#36171;&#20540;&#36816;&#31639;&#31526;&#26159;&#20108;&#20803;&#36816;&#31639;&#31526;&#65292;&#23427;&#20204;&#29992;&#22312;&#20854;&#21491;&#20391;&#30340;&#20540;&#20462;&#25913;&#22312;&#20854;&#24038;&#20391;&#30340;&#21464;&#37327;&#12290;</p>
<table class="wikitable" style="font-size:85%;">
<tr style="text-align:center">
<th>&#36816;&#31639;&#31526;</th>
<th>&#36816;&#31639;&#31526;&#21517;</th>
<th>&#31034;&#20363;</th>
<th>&#25551;&#36848;</th>
<th>&#31561;&#20215;</th>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy1">=</span></span></span></td>
<td>&#22522;&#26412;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>b</b></td>
<td style="background: #ececec; color: grey; vertical-align: middle; text-align: center;" class="table-na"><small>N/A</small></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">+</span><span class="sy1">=</span></span></span></td>
<td>&#21152;&#27861;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy2">+</span><span class="sy1">=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>a</b> &#19982; <b>b</b> &#30340;&#21644;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy2">+</span> b</span></span></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">-</span><span class="sy1">=</span></span></span></td>
<td>&#20943;&#27861;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy2">-</span><span class="sy1">=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110;&#20174; <b>a</b> &#20943; <b>b</b> &#30340;&#24046;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy2">-</span> b</span></span></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">*</span><span class="sy1">=</span></span></span></td>
<td>&#20056;&#27861;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy2">*</span><span class="sy1">=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>a</b> &#19982; <b>b</b> &#30340;&#31215;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy2">*</span> b</span></span></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">/</span><span class="sy1">=</span></span></span></td>
<td>&#38500;&#27861;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy2">/</span><span class="sy1">=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>a</b> &#38500;&#20197; <b>b</b>&#30340;&#21830;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy2">/</span> b</span></span></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">%</span><span class="sy1">=</span></span></span></td>
<td>&#27169;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy2">%</span><span class="sy1">=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>a</b> &#38500;&#20197; <b>b</b> &#30340;&#20313;&#25968;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy2">%</span> b</span></span></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy3">&amp;</span><span class="sy1">=</span></span></span></td>
<td>&#36880;&#20301;&#19982;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy3">&amp;</span><span class="sy1">=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>a</b> &#19982; <b>b</b> &#30340;&#36880;&#20301;&#25110;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy3">&amp;</span> b</span></span></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy3">|</span><span class="sy1">=</span></span></span></td>
<td>&#36880;&#20301;&#25110;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy3">|</span><span class="sy1">=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>a</b> &#19982; <b>b</b> &#30340;&#36880;&#20301;&#19982;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy3">|</span> b</span></span></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy3">^</span><span class="sy1">=</span></span></span></td>
<td>&#36880;&#20301;&#24322;&#25110;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy3">^</span><span class="sy1">=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>a</b> &#19982; <b>b</b> &#30340;&#36880;&#20301;&#24322;&#25110;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy3">^</span> b</span></span></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy1">&lt;&lt;=</span></span></span></td>
<td>&#36880;&#20301;&#24038;&#31227;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">&lt;&lt;=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>a</b> &#24038;&#31227; <b>b</b> &#20301;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy1">&lt;&lt;</span> b</span></span></td>
</tr>
<tr style="text-align:center">
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="sy1">&gt;&gt;=</span></span></span></td>
<td>&#36880;&#20301;&#21491;&#31227;&#36171;&#20540;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">&gt;&gt;=</span> b</span></span></td>
<td><b>a</b> &#21464;&#24471;&#31561;&#20110; <b>a</b> &#21491;&#31227; <b>b</b> &#20301;</td>
<td><span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> a <span class="sy1">&gt;&gt;</span> b</span></span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E7.AE.80.E5.8D.95.E8.B5.8B.E5.80.BC">&#31616;&#21333;&#36171;&#20540;</span></h3>
<p>&#31616;&#21333;&#36171;&#20540;&#36816;&#31639;&#31526;&#34920;&#36798;&#24335;&#25317;&#26377;&#24418;&#24335;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td class="t-sdsc-nopad"><span class="t-spar">lhs</span> <code><b>=</b></code> <span class="t-spar">rhs</span></td>
<td class="t-sdsc-nopad"></td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<p>&#20854;&#20013;</p>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">lhs</span></td>
<td>-</td>
<td>&#20219;&#20309;&#23436;&#25972;&#23545;&#35937;&#31867;&#22411;&#30340;<a href="c-language-value_category.html">&#21487;&#20462;&#25913;&#24038;&#20540;</a>&#34920;&#36798;&#24335;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">rhs</span></td>
<td>-</td>
<td>&#20219;&#20309;<a href="c-language-conversion.html">&#21487;&#38544;&#24335;&#36716;&#25442;</a>&#25104; <span class="t-spar">lhs</span> &#25110;&#19982; <span class="t-spar">lhs</span> <a href="c-language-types.html#.E5.85.BC.E5.AE.B9.E7.B1.BB.E5.9E.8B">&#20860;&#23481;</a>&#31867;&#22411;&#30340;&#34920;&#36798;&#24335;</td>
</tr>
</table>
<p>&#36171;&#20540;&#36827;&#34892;&#20174; <span class="t-spar">rhs</span> &#30340;&#20540;&#21040; <span class="t-spar">lhs</span> &#31867;&#22411;&#30340;<a href="c-language-conversion.html">&#38544;&#24335;&#36716;&#25442;</a>&#65292;&#28982;&#21518;&#29992; <span class="t-spar">rhs</span> &#36716;&#25442;&#21518;&#30340;&#20540;&#26367;&#25442; <span class="t-spar">lhs</span> &#25152;&#25351;&#20195;&#23545;&#35937;&#20013;&#30340;&#20540;&#12290;</p>
<p>&#36171;&#20540;&#20134;&#36820;&#22238;&#23384;&#20648;&#20110; <code>lhs</code> &#20013;&#30340;&#30456;&#21516;&#20540;&#65288;&#25925;&#22914; <span class="t-c"><span class="mw-geshi c source-c">a <span class="sy1">=</span> b <span class="sy1">=</span> c</span></span> &#30340;&#34920;&#36798;&#24335;&#26159;&#21487;&#34892;&#30340;&#65289;&#12290;&#36171;&#20540;&#36816;&#31639;&#31526;&#30340;<a href="c-language-value_category.html">&#20540;&#31867;&#21035;</a>&#26159;&#38750;&#24038;&#20540;&#65288;&#25925;&#22914; <span class="t-c"><span class="mw-geshi c source-c"><span class="br0">(</span>a<span class="sy1">=</span>b<span class="br0">)</span><span class="sy1">=</span>c</span></span> &#30340;&#34920;&#36798;&#24335;&#38750;&#27861;&#65289;&#12290;</p>
<p><span class="t-spar">rhs</span> &#19982; <span class="t-spar">lhs</span> &#24517;&#39035;&#28385;&#36275;&#19979;&#21015;&#26465;&#20214;&#20043;&#19968;&#65306;</p>
<ul>
<li><span class="t-spar">lhs</span> &#19982; <span class="t-spar">rhs</span> &#25317;&#26377;<a href="c-language-types.html#.E5.85.BC.E5.AE.B9.E7.B1.BB.E5.9E.8B">&#20860;&#23481;</a>&#30340; <a href="c-language-struct.html">struct</a> &#25110; <a href="c-language-union.html">union</a> &#31867;&#22411;&#65292;&#25110;&hellip;&hellip;</li>
<li><span class="t-spar">rhs</span> &#24517;&#39035;<a href="c-language-conversion.html">&#21487;&#38544;&#24335;&#36716;&#25442;</a>&#25104; <span class="t-spar">lhs</span> &#65292;&#36825;&#34920;&#31034;</li>
</ul>
<dl>
<dd>
<ul>
<li><span class="t-spar">lhs</span> &#19982; <span class="t-spar">rhs</span> &#22343;&#25317;&#26377;<a href="c-language-arithmetic_types.html">&#31639;&#26415;&#31867;&#22411;</a>&#65292;&#27492;&#24773;&#20917;&#19979; <span class="t-spar">lhs</span> &#21487;&#20026;<a href="c-language-volatile.html">volatile</a> &#38480;&#23450;&#25110;<a href="c-language-atomic.html">&#21407;&#23376;&#30340;</a></li>
<li><span class="t-spar">lhs</span> &#19982; <span class="t-spar">rhs</span> &#22343;&#25317;&#26377;&#25351;&#21521;<a href="c-language-types.html#.E5.85.BC.E5.AE.B9.E7.B1.BB.E5.9E.8B">&#20860;&#23481;</a>&#31867;&#22411;&#30340;<a href="c-language-pointer.html">&#25351;&#38024;</a>&#31867;&#22411;&#65292;&#25110;&#20854;&#20013;&#19968;&#20010;&#25351;&#38024;&#26159;&#25351;&#21521; void &#30340;&#25351;&#38024;&#65292;&#32780;<a href="c-language-conversion.html">&#36716;&#25442;</a>&#19981;&#20026;&#34987;&#25351;&#21521;&#31867;&#22411;&#28155;&#21152;&#38480;&#23450;&#31526;&#12290; <span class="t-spar">lhs</span> &#21487;&#20197;&#20026; <a href="c-language-volatile.html">volatile</a> &#25110; <a href="c-language-restrict.html">restrict</a> &#38480;&#23450;&#65292;&#25110;<a href="c-language-atomic.html">&#21407;&#23376;&#30340;</a>&#12290;</li>
<li><span class="t-spar">lhs</span> &#26159;&#25351;&#38024;&#65288;&#21487;&#20197;&#26377;&#38480;&#23450;&#25110;&#26159;&#21407;&#23376;&#30340;&#65289;&#65292;&#32780; <span class="t-spar">rhs</span> &#26159;&#31354;&#25351;&#38024;&#24120;&#37327;&#65292;&#22914; <span class="t-lc"><a href="c-types-NULL.html">NULL</a></span> &#12290;</li>
<li><span class="t-spar">lhs</span> &#25317;&#26377;&#31867;&#22411; <span class="t-lc">_Bool</span>&#65288;&#21487;&#20197;&#26377;&#38480;&#23450;&#25110;&#26159;&#21407;&#23376;&#30340;&#65289;&#32780; <span class="t-spar">rhs</span> &#26159;&#25351;&#38024; &#12290;</li>
</ul>
</dd>
</dl>
<h4><span class="mw-headline" id=".E6.B3.A8.E6.84.8F">&#27880;&#24847;</span></h4>
<p>&#33509; <span class="t-spar">rhs</span> &#19982; <span class="t-spar">lhs</span> &#22312;&#20869;&#23384;&#20013;&#37325;&#21472;&#65288;&#20363;&#22914;&#23427;&#20204;&#26159;&#21516;&#19968;&#32852;&#21512;&#20307;&#30340;&#25104;&#21592;&#65289;&#65292;&#21017;&#34892;&#20026;&#26410;&#23450;&#20041;&#65292;&#38500;&#38750;&#37325;&#21472;&#26159;&#20934;&#30830;&#30340;&#19988;&#20004;&#32773;&#31867;&#22411;<a href="c-language-type.html#.E5.85.BC.E5.AE.B9.E7.B1.BB.E5.9E.8B" class="mw-redirect">&#20860;&#23481;</a>&#12290;</p>
<p>&#23613;&#31649;&#25968;&#32452;&#19981;&#21487;&#36171;&#20540;&#65292;&#20294;&#21253;&#35065;&#22312;&#32467;&#26500;&#20307;&#20869;&#30340;&#25968;&#32452;&#21487;&#20197;&#36171;&#20540;&#32473;&#21478;&#19968;&#20010;&#30456;&#21516;&#65288;&#25110;&#20860;&#23481;&#65289;&#30340;&#32467;&#26500;&#20307;&#31867;&#22411;&#12290;</p>
<p>&#26356;&#26032; <span class="t-spar">lhs</span> &#30340;&#21103;&#25928;&#24212;<a href="c-language-eval_order.html">&#21518;&#24207;&#20110;</a>&#20540;&#35745;&#31639;&#65292;&#20294; <span class="t-spar">lhs</span> &#21644; <span class="t-spar">rhs</span> &#33258;&#24049;&#21644;&#36816;&#31639;&#25968;&#30340;&#27714;&#20540;&#19981;&#26159;&#65292;&#19982;&#36890;&#24120;&#19968;&#26679;&#65292;&#23427;&#20204;&#30456;&#23545;&#20110;&#24444;&#27492;&#26159;&#19981;&#23450;&#24207;&#30340;&#65288;&#25925;&#22914; <span class="t-c"><span class="mw-geshi c source-c">i<span class="sy1">=</span><span class="sy2">++</span>i</span></span> &#30340;&#34920;&#36798;&#24335;&#26159;&#26410;&#23450;&#20041;&#30340;&#65289;</p>
<p>&#36171;&#20540;&#20250;&#21093;&#38500;&#28014;&#28857;&#34920;&#36798;&#24335;&#30340;&#39069;&#22806;&#33539;&#22260;&#21644;&#31934;&#24230;&#65288;&#35265; <span class="t-lc"><a href="c-types-limits-FLT_EVAL_METHOD.html">FLT_EVAL_METHOD</a></span> &#65289;&#12290;</p>
<p>C++ &#20013;&#65292;&#36171;&#20540;&#36816;&#31639;&#31526;&#26159;&#24038;&#20540;&#34920;&#36798;&#24335;&#65292;&#32780; C &#20013;&#19981;&#26159;</p>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="co2">#include &lt;stdio.h&gt;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">const</span> <span class="kw4">char</span> <span class="sy2">**</span>cpp<span class="sy4">;</span>
<span class="kw4">char</span> <span class="sy2">*</span>p<span class="sy4">;</span>
<span class="kw4">const</span> <span class="kw4">char</span> c <span class="sy1">=</span> <span class="st0">&#39;A&#39;</span><span class="sy4">;</span>
<span class="co1">// cpp = &amp;p; // &#38169;&#35823;&#65306; char** &#19981;&#33021;&#36716;&#25442;&#20026; const char**</span>
<span class="sy2">*</span>cpp <span class="sy1">=</span> <span class="sy3">&amp;</span>c<span class="sy4">;</span> <span class="co1">// OK &#65306; char* &#33021;&#36716;&#25442;&#20026; const char*</span>
<span class="sy2">*</span>p <span class="sy1">=</span> <span class="nu0">0</span><span class="sy4">;</span> <span class="co1">// OK &#65306;&#31354;&#25351;&#38024;&#24120;&#37327;&#33021;&#36716;&#25442;&#20026;&#20219;&#20309;&#25351;&#38024;</span>
<span class="kw4">int</span> arr1<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">1</span>,<span class="nu0">2</span><span class="br0">}</span>, arr2<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">3</span>, <span class="nu0">4</span><span class="br0">}</span><span class="sy4">;</span>
<span class="co1">// arr1 = arr2; // &#38169;&#35823;&#65306;&#19981;&#33021;&#36890;&#36807;&#25968;&#32452;&#36171;&#20540;</span>
<span class="kw1">struct</span> s <span class="br0">{</span>
<span class="kw4">int</span> arr<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#21253;&#35013;&#20110;&#32467;&#26500;&#20307;&#20013;&#30340;&#25968;&#32452;</span>
<span class="br0">}</span> sam1 <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">5</span>, <span class="nu0">6</span><span class="br0">}</span>, sam2 <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">7</span>, <span class="nu0">8</span><span class="br0">}</span><span class="sy4">;</span>
sam1 <span class="sy1">=</span> sam2<span class="sy4">;</span> <span class="co1">// OK &#65306;&#33021;&#36171;&#20540;&#21253;&#35013;&#20110;&#32467;&#26500;&#20307;&#20013;&#30340;&#25968;&#32452;</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;%d %d <span class="es1">\n</span>&quot;</span>,sam1.<span class="me1">arr</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>,sam1.<span class="me1">arr</span><span class="br0">[</span><span class="nu0">1</span><span class="br0">]</span><span class="br0">)</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">7 8</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E5.A4.8D.E5.90.88.E8.B5.8B.E5.80.BC">&#22797;&#21512;&#36171;&#20540;</span></h3>
<p>&#22797;&#21512;&#36171;&#20540;&#36816;&#31639;&#31526;&#34920;&#36798;&#24335;&#25317;&#26377;&#24418;&#24335;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td class="t-sdsc-nopad"><span class="t-spar">lhs</span> <span class="t-spar">op</span> <span class="t-spar">rhs</span></td>
<td class="t-sdsc-nopad"></td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<p>&#20854;&#20013;</p>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">op</span></td>
<td>-</td>
<td>one of <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">*</span><span class="sy1">=</span></span></span>, <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">/</span><span class="sy1">=</span></span></span> <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">%</span><span class="sy1">=</span></span></span>, <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">+</span><span class="sy1">=</span></span></span> <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">-</span><span class="sy1">=</span></span></span>, <span class="t-c"><span class="mw-geshi c source-c"><span class="sy1">&lt;&lt;=</span></span></span>, <span class="t-c"><span class="mw-geshi c source-c"><span class="sy1">&gt;&gt;=</span></span></span>, <span class="t-c"><span class="mw-geshi c source-c"><span class="sy3">&amp;</span><span class="sy1">=</span></span></span>, <span class="t-c"><span class="mw-geshi c source-c"><span class="sy3">^</span><span class="sy1">=</span></span></span>, <span class="t-c"><span class="mw-geshi c source-c"><span class="sy3">|</span><span class="sy1">=</span></span></span></td>
</tr>
<tr class="t-par">
<td><span class="t-spar">lhs</span>, <span class="t-spar">rhs</span></td>
<td>-</td>
<td>&#25317;&#26377;<a href="c-language-arithmetic_types.html">&#31639;&#26415;&#31867;&#22411;</a>&#30340;&#34920;&#36798;&#24335;&#65288;&#20854;&#20013; <span class="t-spar">lhs</span> &#21487;&#20197;&#26377;&#38480;&#23450;&#25110;&#26159;&#21407;&#23376;&#30340;&#65289;&#65292;&#38500;&#38750; <span class="t-spar">op</span> &#26159; <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">+</span><span class="sy1">=</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi c source-c"><span class="sy2">-</span><span class="sy1">=</span></span></span> &#65292;&#27492;&#24773;&#20917;&#20801;&#35768;&#25509;&#21463;&#25317;&#26377;&#19982; + &#21644; - &#30456;&#21516;&#38480;&#21046;&#30340;&#25351;&#38024;&#31867;&#22411;</td>
</tr>
</table>
<p>&#34920;&#36798;&#24335; <span class="t-spar">lhs</span> <span class="t-spar">@=</span> <span class="t-spar">rhs</span> &#19982; <span class="t-spar">lhs</span> <code><b>=</b></code> <span class="t-spar">lhs</span> <span class="t-spar">@</span> <code><b>(</b></code> <span class="t-spar">rhs</span> <code><b>)</b></code> &#20934;&#30830;&#30456;&#21516;&#65292;&#38500;&#20102;&#21482;&#27714;&#20540;&#19968;&#27425; <span class="t-spar">lhs</span> &#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<p>&#33509; <span class="t-spar">lhs</span> &#25317;&#26377;<a href="c-language-atomic.html">&#21407;&#23376;</a>&#31867;&#22411;&#65292;&#21017;&#36816;&#31639;&#34920;&#29616;&#20026;&#21333;&#20010;&#24102;&#20869;&#23384;&#39034;&#24207; <span class="t-lc"><a href="c-atomic-memory_order.html">memory_order_seq_cst</a></span> &#30340;&#21407;&#23376;&#35835;&#20462;&#25913;&#20889;&#25805;&#20316;</p>
<p>&#23545;&#20110;&#25972;&#25968;&#21407;&#23376;&#31867;&#22411;&#65292;&#22797;&#21512;&#36171;&#20540;&#36816;&#31639; <span class="t-c"><span class="mw-geshi c source-c">@<span class="sy1">=</span></span></span> &#31561;&#20215;&#20110;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1">T1<span class="sy2">*</span> addr <span class="sy1">=</span> <span class="sy3">&amp;</span>lhs<span class="sy4">;</span>
T2 val <span class="sy1">=</span> rhs<span class="sy4">;</span>
T1 old <span class="sy1">=</span> <span class="sy2">*</span>addr<span class="sy4">;</span>
T1 new<span class="sy4">;</span>
<span class="kw1">do</span> <span class="br0">{</span> new <span class="sy1">=</span> old @ val <span class="br0">}</span> <span class="kw1">while</span> <span class="br0">(</span><span class="sy3">!</span><a href="c-atomic-atomic_compare_exchange.html"><span class="kw945">atomic_compare_exchange_strong</span></a><span class="br0">(</span>addr, <span class="sy3">&amp;</span>old, new<span class="br0">)</span><span class="sy4">;</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<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.BC.95.E7.94.A8">&#24341;&#29992;</span></h3>
<div class="t-ref-std-11">
<ul>
<li>C11 &#26631;&#20934;&#65288;ISO/IEC 9899:2011&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.5.16 Assignment operators (p: 101-104)</li>
</ul>
</dd>
</dl>
<div class="t-ref-std-c99">
<ul>
<li>C99 &#26631;&#20934;&#65288;ISO/IEC 9899:1999&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.5.16 Assignment operators (p: 91-93)</li>
</ul>
</dd>
</dl>
<div class="t-ref-std-c89">
<ul>
<li>C89/C90 &#26631;&#20934;&#65288;ISO/IEC 9899:1990&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>3.3.16 Assignment operators</li>
</ul>
</dd>
</dl>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<p><a href="c-language-operator_precedence.html">&#36816;&#31639;&#31526;&#20248;&#20808;&#32423;</a></p>
<table class="wikitable">
<tr style="text-align:center">
<th colspan="7">&#24120;&#29992;&#36816;&#31639;&#31526;</th>
</tr>
<tr style="text-align:center">
<td><strong class="selflink">&#36171;&#20540;</strong></td>
<td><a href="c-language-operator_incdec.html">&#33258;&#22686;<br />
&#33258;&#20943;</a></td>
<td><a href="c-language-operator_arithmetic.html">&#31639;&#26415;</a></td>
<td><a href="c-language-operator_logical.html">&#36923;&#36753;</a></td>
<td><a href="c-language-operator_comparison.html">&#27604;&#36739;</a></td>
<td><a href="c-language-operator_member_access.html">&#25104;&#21592;<br />
&#35775;&#38382;</a></td>
<td><a href="c-language-operator_other.html">&#20854;&#20182;</a></td>
</tr>
<tr style="text-align:center">
<td>
<p><span class="t-c"><span class="mw-geshi c source-c">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 c source-c"><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 c source-c"><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 c source-c"><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 c source-c">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</span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi c source-c">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></span></span></p>
</td>
<td>
<p><span class="t-c"><span class="mw-geshi c source-c">a<span class="br0">(</span>...<span class="br0">)</span><br />
a, b<br />
<span class="br0">(</span>type<span class="br0">)</span> a<br />
<span class="sy4">?</span> <span class="sy4">:</span><br />
<span class="kw4">sizeof</span><br />
_Alignof</span></span> <span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></p>
</td>
</tr>
</table>
<table class="t-dsc-begin"></table>
</div>
</div>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>