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

266 lines
18 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>&#34920;&#36798;&#24335;</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_expressions skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#34920;&#36798;&#24335;</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>&#34920;&#36798;&#24335;&#26159;<i>&#36816;&#31639;&#31526;</i>&#21450;&#20854;<i>&#25805;&#20316;&#25968;</i>&#30340;&#24207;&#21015;&#65292;&#23427;&#25351;&#23450;&#19968;&#20010;&#36816;&#31639;&#12290;</p>
<p>&#34920;&#36798;&#24335;&#27714;&#20540;&#21487;&#20197;&#20135;&#29983;&#32467;&#26524;&#65288;&#20363;&#22914;&#27714;&#20540; <span class="t-c"><span class="mw-geshi c source-c"><span class="nu0">2</span><span class="sy2">+</span><span class="nu0">2</span></span></span> &#20135;&#29983;&#32467;&#26524; <span class="t-c"><span class="mw-geshi c source-c"><span class="nu0">4</span></span></span> &#65292;&#21487;&#33021;&#20135;&#29983;&#21103;&#25928;&#24212;&#65288;&#20363;&#22914;&#27714;&#20540; <span class="t-c"><span class="mw-geshi c source-c"><a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;%d&quot;</span>,<span class="nu0">4</span><span class="br0">)</span></span></span> &#20250;&#23558;&#23383;&#31526; <span class="t-c"><span class="mw-geshi c source-c"><span class="st0">&#39;4&#39;</span></span></span> &#36865;&#21040;&#26631;&#20934;&#36755;&#20986;&#27969;&#65289;&#65292;&#24182;&#21487;&#20197;&#25351;&#20195;&#23545;&#35937;&#25110;&#20989;&#25968;&#12290;</p>
<h4><span class="mw-headline" id=".E7.BB.BC.E8.BF.B0">&#32508;&#36848;</span></h4>
<ul>
<li><a href="c-language-value_category.html">&#20540;&#31867;&#21035;</a>&#65288;&#24038;&#20540;&#12289;&#38750;&#24038;&#20540;&#23545;&#35937;&#12289;&#20989;&#25968;&#25351;&#20195;&#22120;&#65289;&#23558;&#34920;&#36798;&#24335;&#20197;&#20854;&#20540;&#20998;&#31867;</li>
<li>&#21442;&#25968;&#21644;&#23376;&#34920;&#36798;&#24335;&#30340;<a href="c-language-eval_order.html">&#27714;&#20540;&#39034;&#24207;</a>&#25351;&#23450;&#20250;&#24471;&#21040;&#20309;&#31181;&#20013;&#38388;&#32467;&#26524;</li>
</ul>
<h3><span class="mw-headline" id=".E8.BF.90.E7.AE.97.E7.AC.A6">&#36816;&#31639;&#31526;</span></h3>
<table class="wikitable">
<tr style="text-align:center">
<th colspan="7">&#24120;&#29992;&#36816;&#31639;&#31526;</th>
</tr>
<tr style="text-align:center">
<td><a href="c-language-operator_assignment.html">&#36171;&#20540;</a></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>
<ul>
<li><a href="c-language-operator_precedence.html">&#36816;&#31639;&#31526;&#20248;&#20808;&#32423;</a>&#23450;&#20041;&#36816;&#31639;&#31526;&#32465;&#23450;&#21040;&#20854;&#21442;&#25968;&#30340;&#39034;&#24207;</li>
<li><a href="c-language-operator_alternative.html">&#26367;&#29992;&#34920;&#31034;</a>&#26159;&#19968;&#20123;&#36816;&#31639;&#31526;&#30340;&#26367;&#29992;&#20889;&#27861;</li>
</ul>
<h4><span class="mw-headline" id=".E8.BD.AC.E6.8D.A2">&#36716;&#25442;</span></h4>
<ul>
<li><a href="c-language-conversion.html">&#38544;&#24335;&#36716;&#25442;</a>&#22312;&#25805;&#20316;&#25968;&#31867;&#22411;&#19981;&#31526;&#21512;&#36816;&#31639;&#31526;&#26399;&#24453;&#26102;&#21457;&#29983;&#12290;</li>
<li><a href="c-language-cast.html">&#36716;&#22411;</a>&#21487;&#29992;&#20110;&#26174;&#31034;&#23558;&#20540;&#30340;&#31867;&#22411;&#20174;&#19968;&#20010;&#36716;&#21040;&#21478;&#19968;&#20010;&#12290;</li>
</ul>
<h4><span class="mw-headline" id=".E5.85.B6.E4.BB.96">&#20854;&#20182;</span></h4>
<ul>
<li><a href="c-language-constant_expression.html">&#24120;&#37327;&#34920;&#36798;&#24335;</a>&#21487;&#20197;&#22312;&#32534;&#35793;&#26102;&#27714;&#20540;&#65292;&#24182;&#29992;&#20110;&#32534;&#35793;&#26102;&#35821;&#22659;&#65288;<span class="t-rev-inl t-since-c99"><span>&#38750; VLA</span> <span><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></span></span>&#25968;&#32452;&#22823;&#23567;&#12289;&#38745;&#24577;&#21021;&#22987;&#21270;&#22120;&#31561;&#65289;</li>
</ul>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<ul>
<li><a href="c-language-generic.html">&#27867;&#22411;&#36873;&#25321;</a>&#21487;&#20197;&#26681;&#25454;&#21442;&#25968;&#31867;&#22411;&#35843;&#29992;&#19981;&#21516;&#30340;&#34920;&#36798;&#24335;</li>
</ul>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<table class="t-rev-begin">
<tr class="t-rev t-since-c99">
<td>
<ul>
<li>&#28014;&#28857;&#34920;&#36798;&#24335;&#21487;&#33021;&#20250;&#24341;&#21457;&#28014;&#28857;&#24322;&#24120;&#65292;&#24182;&#25253;&#21578; <a href="c-numeric-math-math_errhandling.html"><tt>math_errhandling</tt></a> &#20013;&#25351;&#23450;&#30340;&#38169;&#35823;</li>
<li>&#26631;&#20934; <a href="c-preprocessor-impl.html">#pragma</a> &#65306; <code>FENV_ACCESS</code> &#12289; <code>FP_CONTRACT</code> &#21450; <code>CX_LIMITED_RANGE</code> &#36824;&#26377;<a href="c-types-limits-FLT_EVAL_METHOD.html">&#28014;&#28857;&#27714;&#20540;&#31934;&#24230;</a>&#21644;<a href="c-numeric-fenv-FE_round.html">&#33293;&#20837;&#26041;&#21521;</a>&#25511;&#21046;&#28014;&#28857;&#34920;&#36798;&#24335;&#27714;&#20540;&#26041;&#24335;&#12290;</li>
</ul>
</td>
<td><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.88.9D.E7.AD.89.E8.A1.A8.E8.BE.BE.E5.BC.8F">&#21021;&#31561;&#34920;&#36798;&#24335;</span></h3>
<p>&#36816;&#31639;&#31526;&#30340;&#25805;&#20316;&#25968;&#21487;&#20026;&#20854;&#20182;&#34920;&#36798;&#24335;&#65292;&#25110;<i>&#21021;&#31561;&#34920;&#36798;&#24335;</i>&#65288;&#20363;&#22914; <span class="t-c"><span class="mw-geshi c source-c"><span class="nu0">1</span><span class="sy2">+</span><span class="nu0">2</span><span class="sy2">*</span><span class="nu0">3</span></span></span> &#20013;&#65292;&#36816;&#31639;&#31526; + &#30340;&#25805;&#20316;&#25968;&#26159;&#23376;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi c source-c"><span class="nu0">2</span><span class="sy2">*</span><span class="nu0">3</span></span></span> &#21644;&#21021;&#31561;&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi c source-c"><span class="nu0">1</span></span></span> &#65289;&#12290;</p>
<p>&#21021;&#31561;&#34920;&#36798;&#24335;&#21487;&#20197;&#26159;&#19979;&#21015;&#20043;&#19968;&#65306;</p>
<div class="t-li1"><span class="t-li">1)</span> &#24120;&#37327;&#21450;&#23383;&#38754;&#37327;&#65288;&#20363;&#22914; <span class="t-c"><span class="mw-geshi c source-c"><span class="nu0">2</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi c source-c"><span class="st0">&quot;Hello, world&quot;</span></span></span> &#65289;</div>
<div class="t-li1"><span class="t-li">2)</span> &#36866;&#21512;&#30340;&#24050;&#22768;&#26126;<a href="c-language-identifier.html">&#26631;&#35782;&#31526;</a>&#65288;&#20363;&#22914; <span class="t-c"><span class="mw-geshi c source-c">n</span></span> &#25110; <span class="t-c"><span class="mw-geshi c source-c"><a href="c-io-fprintf.html"><span class="kw851">printf</span></a></span></span> &#65289;</div>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<div class="t-li1"><span class="t-li">3)</span> <a href="c-language-generic.html">&#27867;&#22411;&#36873;&#25321;</a></div>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<p>&#20219;&#20309;&#22312;&#25324;&#21495;&#20013;&#30340;&#34920;&#36798;&#24335;&#20134;&#34987;&#20998;&#31867;&#20026;&#22522;&#30784;&#34920;&#36798;&#24335;&#65306;&#36825;&#20445;&#35777;&#25324;&#21495;&#25317;&#26377;&#39640;&#20110;&#20219;&#20309;&#36816;&#31639;&#31526;&#30340;&#20248;&#20808;&#32423;&#12290;</p>
<h4><span class="mw-headline" id=".E5.B8.B8.E9.87.8F.E5.8F.8A.E5.AD.97.E9.9D.A2.E9.87.8F">&#24120;&#37327;&#21450;&#23383;&#38754;&#37327;</span></h4>
<p>&#26576;&#20123;&#31867;&#22411;&#30340;&#24120;&#37327;&#20540;&#21487;&#29992;&#31216;&#20026;&#23383;&#38754;&#37327;&#65288;&#23545;&#20110;&#24038;&#20540;&#34920;&#36798;&#24335;&#65289;&#21644;&#24120;&#37327;&#65288;&#23545;&#20110;&#21491;&#20540;&#34920;&#36798;&#24335;&#65289;&#30340;&#29305;&#27530;&#34920;&#36798;&#24335;&#23884;&#20837;&#21040; C &#31243;&#24207;&#28304;&#20195;&#30721;&#20013;&#65292;&#12290;</p>
<ul>
<li><a href="c-language-integer_constant.html">&#25972;&#25968;&#24120;&#37327;</a>&#26159;&#21313;&#36827;&#21046;&#12289;&#20843;&#36827;&#21046;&#25110;&#21313;&#20845;&#36827;&#21046;&#30340;&#25972;&#25968;&#31867;&#22411;&#25968;&#23383;&#12290;</li>
<li><a href="c-language-character_constant.html">&#23383;&#31526;&#24120;&#37327;</a>&#26159; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">int</span></span></span> &#31867;&#22411;&#65292;&#36866;&#20110;&#36716;&#25442;&#21040;&#23383;&#31526;&#31867;&#22411;<span class="t-rev-inl t-since-c11"><span>&#12289; <span class="t-c"><span class="mw-geshi c source-c">char16_t</span></span> &#12289; <span class="t-c"><span class="mw-geshi c source-c">char32_t</span></span></span> <span><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></span></span>&#25110; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">wchar_t</span></span></span> &#31867;&#22411;&#30340;&#21333;&#20010;&#23383;&#31526;&#12290;</li>
<li><a href="c-language-floating_constant.html">&#28014;&#28857;&#24120;&#37327;</a>&#26159; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">float</span></span></span> &#12289; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">double</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">long</span> <span class="kw4">double</span></span></span> &#31867;&#22411;&#20540;&#12290;</li>
<li><a href="c-language-string_literal.html">&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;</a>&#26159;&#31867;&#22411;&#20026; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">char</span><span class="br0">[</span><span class="br0">]</span></span></span> <span class="t-rev-inl t-since-c11"><span>&#12289; <span class="t-c"><span class="mw-geshi c source-c">char16_t<span class="br0">[</span><span class="br0">]</span></span></span> &#12289; <span class="t-c"><span class="mw-geshi c source-c">char32_t<span class="br0">[</span><span class="br0">]</span></span></span></span> <span><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></span></span>&#25110; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">wchar_t</span><span class="br0">[</span><span class="br0">]</span></span></span> &#30340;&#19968;&#31995;&#21015;&#23383;&#31526;&#65292;&#34920;&#31034;&#31354;&#32456;&#27490;&#23383;&#31526;&#20018;&#12290;</li>
</ul>
<table class="t-rev-begin">
<tr class="t-rev t-since-c99">
<td>
<ul>
<li><a href="c-language-compound_literal.html">&#22797;&#21512;&#23383;&#38754;&#37327;</a>&#26159;&#30452;&#25509;&#23884;&#20837;&#31243;&#24207;&#20195;&#30721;&#30340;&#32467;&#26500;&#20307;&#12289;&#32852;&#21512;&#20307;&#25110;&#25968;&#32452;&#31867;&#22411;&#30340;&#20540;&#12290;</li>
</ul>
</td>
<td><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E4.B8.8D.E6.B1.82.E5.80.BC.E8.A1.A8.E8.BE.BE.E5.BC.8F">&#19981;&#27714;&#20540;&#34920;&#36798;&#24335;</span></h3>
<p><a href="c-language-sizeof.html"><code>sizeof</code> &#36816;&#31639;&#31526;</a>&#30340;&#25805;&#20316;&#25968;&#26159;&#19981;&#27714;&#20540;&#30340;&#34920;&#36798;&#24335;<span class="t-rev-inl t-since-c99"><span>&#65288;&#38500;&#38750;&#23427;&#20204;&#26159; VLA &#65289;</span> <span><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></span></span>&#12290;&#25925;&#32780; <span class="t-c"><span class="mw-geshi c source-c"><a href="c-types-size_t.html"><span class="kw100">size_t</span></a> n <span class="sy1">=</span> <span class="kw4">sizeof</span><span class="br0">(</span><a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;%d&quot;</span>, <span class="nu0">4</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span></span></span> &#19981;&#20250;&#36827;&#34892;&#25511;&#21046;&#21488;&#36755;&#20986;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<p><a href="c-language-_Alignof.html"><code>_Alignof</code> &#36816;&#31639;&#31526;</a>&#30340;&#25805;&#20316;&#25968;&#12289;<a href="c-language-generic.html">&#27867;&#22411;&#36873;&#25321;</a>&#30340;&#25511;&#21046;&#34920;&#36798;&#24335;&#21450;&#20316;&#20026; <code>_Alignof</code> &#30340;&#25805;&#20316;&#25968;&#30340; VLA &#30340;&#22823;&#23567;&#34920;&#36798;&#24335;&#20134;&#20026;&#19981;&#27714;&#20540;&#30340;&#34920;&#36798;&#24335;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.BC.95.E7.94.A8">&#24341;&#29992;</span></h3>
<div class="t-ref-std-17">
<ul>
<li>C17 &#26631;&#20934;&#65288;ISO/IEC 9899:2018&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.5 Expressions (p: 55-75)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.6 Constant expressions (p: 76-77)</li>
</ul>
</dd>
</dl>
</div>
<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 Expressions (p: 76-105)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.6 Constant expressions (p: 106-107)</li>
</ul>
</dd>
</dl>
</div>
<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 Expressions (p: 67-94)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.6 Constant expressions (p: 95-96)</li>
</ul>
</dd>
</dl>
</div>
<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 EXPRESSIONS</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>3.4 CONSTANT EXPRESSIONS</li>
</ul>
</dd>
</dl>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin"></table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>