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

408 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>&#25968;&#32452;&#22768;&#26126;</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_array skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#25968;&#32452;&#22768;&#26126;</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>&#25968;&#32452;&#26159;&#30001;&#36830;&#32493;&#26080;&#31354;&#38553;&#20998;&#37197;&#30340;&#65292;&#25317;&#26377;&#29305;&#23450;<i>&#20803;&#32032;&#31867;&#22411;</i>&#30340;&#23545;&#35937;&#26500;&#25104;&#30340;&#12290;&#36825;&#20123;&#23545;&#35937;&#30340;&#25968;&#30446;&#25968;&#37327;&#65288;&#25968;&#32452;&#22823;&#23567;&#65289;&#22312;&#25968;&#32452;&#29983;&#23384;&#26399;&#38388;&#20915;&#19981;&#25913;&#21464;&#12290;</p>
<h3><span class="mw-headline" id=".E8.AF.AD.E6.B3.95">&#35821;&#27861;</span></h3>
<p>&#22312;&#25968;&#32452;&#22768;&#26126;&#30340;<a href="c-language-declarations.html">&#22768;&#26126;&#25991;&#27861;</a>&#20013;&#65292;<i>&#31867;&#22411;&#25351;&#23450;</i>&#24207;&#21015;&#25351;&#26126;<i>&#20803;&#32032;&#31867;&#22411;</i>&#65288;&#24517;&#39035;&#26159;&#19968;&#20010;&#23436;&#25972;&#23545;&#35937;&#31867;&#22411;&#65289;&#65292;&#32780;<i>&#22768;&#26126;&#22120;</i>&#25317;&#26377;&#24418;&#24335;&#65306;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>[</b></code> <code><b>static</b></code><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#34920;&#36798;&#24335;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>]</b></code> <span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</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><code><b>[</b></code> <span class="t-spar">&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>static</b></code><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#34920;&#36798;&#24335;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>]</b></code> <span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span></td>
<td>(2)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>[</b></code> <span class="t-spar">&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>*</b></code> <code><b>]</b></code> <span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span></td>
<td>(3)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<div class="t-li1"><span class="t-li">1,2)</span> &#29983;&#25104;&#36890;&#24120;&#25968;&#32452;&#35821;&#27861;</div>
<div class="t-li1"><span class="t-li">3)</span> &#22768;&#26126;&#26410;&#25351;&#23450;&#22823;&#23567;&#30340; VLA &#65288;&#21482;&#33021;&#20986;&#29616;&#20110;&#20989;&#25968;&#21407;&#22411;&#20316;&#29992;&#22495;&#65289; &#20854;&#20013;</div>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">&#34920;&#36798;&#24335;</span></td>
<td>-</td>
<td>&#20219;&#20309;&#26080;<a href="c-language-operator_other.html#.E9.80.97.E5.8F.B7.E8.BF.90.E7.AE.97.E7.AC.A6">&#36887;&#21495;&#36816;&#31639;&#31526;</a>&#30340;&#34920;&#36798;&#24335;&#65292;&#34920;&#26126;&#25968;&#32452;&#20013;&#30340;&#20803;&#32032;&#25968;&#37327;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#38480;&#23450;&#31526;</span></td>
<td>-</td>
<td>&#20219;&#24847; <a href="c-language-const.html"><code>const</code></a> &#12289; <a href="c-language-restrict.html"><code>restrict</code></a> &#25110; <a href="c-language-volatile.html"><code>volatile</code></a> &#38480;&#23450;&#31526;&#30340;&#28151;&#21512;&#65292;&#21482;&#20801;&#35768;&#20986;&#29616;&#20110;&#20989;&#25968;&#21442;&#25968;&#21015;&#34920;&#20013;&#65307;&#23427;&#20204;&#23545;&#25968;&#32452;&#21442;&#25968;&#25152;&#36716;&#25442;&#24471;&#21040;&#30340;&#25351;&#38024;&#31867;&#22411;&#36171;&#20104;&#38480;&#23450;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span></td>
<td>-</td>
<td><span class="t-mark-rev t-since-c23">(C23)</span>&#21487;&#36873;&#30340;<a href="c-language-attributes.html">&#23646;&#24615;</a>&#21015;&#34920;&#65292;&#24212;&#29992;&#21040;&#34987;&#22768;&#26126;&#30340;&#25968;&#32452;</td>
</tr>
</table>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">float</span> fa<span class="br0">[</span><span class="nu0">11</span><span class="br0">]</span>, <span class="sy2">*</span>afp<span class="br0">[</span><span class="nu0">17</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// fa &#26159; 11 &#20010; float &#32452;&#25104;&#30340;&#25968;&#32452;</span>
<span class="co1">// afp &#26159; 17 &#20010;&#25351;&#21521; float &#30340;&#25351;&#38024;&#32452;&#25104;&#30340;&#25968;&#32452;</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<p>&#26377;&#20960;&#31181;&#25968;&#32452;&#31867;&#22411;&#21464;&#20307;&#65306;&#24050;&#30693;&#24120;&#37327;&#22823;&#23567;&#30340;&#25968;&#32452;&#12289;&#21464;&#38271;&#24230;&#25968;&#32452;&#65292;&#20197;&#21450;&#26410;&#30693;&#22823;&#23567;&#25968;&#32452;&#12290;</p>
<h4><span class="mw-headline" id=".E5.B7.B2.E7.9F.A5.E5.B8.B8.E9.87.8F.E5.A4.A7.E5.B0.8F.E6.95.B0.E7.BB.84">&#24050;&#30693;&#24120;&#37327;&#22823;&#23567;&#25968;&#32452;</span></h4>
<p>&#33509;&#25968;&#32452;&#22768;&#26126;&#22120;&#20013;&#30340; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#20026;<a href="c-language-constant_expression.html#.E6.95.B4.E6.95.B0.E5.B8.B8.E9.87.8F.E8.A1.A8.E8.BE.BE.E5.BC.8F">&#25972;&#25968;&#24120;&#37327;&#34920;&#36798;&#24335;</a>&#65292;&#25317;&#26377;&#22823;&#20110;&#38646;&#30340;&#20540;<span class="t-rev-inl t-since-c99"><span>&#65292;&#19988;&#20803;&#32032;&#31867;&#22411;&#26159;&#19968;&#31181;&#25317;&#26377;&#24050;&#30693;&#24120;&#37327;&#22823;&#23567;&#30340;&#31867;&#22411;&#65288;&#21363;&#20803;&#32032;&#19981;&#26159; VLA &#65289;</span> <span><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></span></span>&#65292;&#21017;&#22768;&#26126;&#22120;&#22768;&#26126;&#24050;&#30693;&#24120;&#37327;&#22823;&#23567;&#30340;&#25968;&#32452;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> n<span class="br0">[</span><span class="nu0">10</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#25972;&#25968;&#24120;&#37327;&#26159;&#24120;&#37327;&#34920;&#36798;&#24335;</span>
<span class="kw4">char</span> o<span class="br0">[</span><span class="kw4">sizeof</span><span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// sizeof &#26159;&#24120;&#37327;&#34920;&#36798;&#24335;</span>
<span class="kw2">enum</span> <span class="br0">{</span> MAX_SZ<span class="sy1">=</span><span class="nu0">100</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> n<span class="br0">[</span>MAX_SZ<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#26522;&#20030;&#24120;&#37327;&#26159;&#24120;&#37327;&#34920;&#36798;&#24335;</span></pre></div>
</div>
<p>&#24050;&#30693;&#24120;&#37327;&#22823;&#23567;&#30340;&#25968;&#32452;&#21487;&#20197;&#29992;<a href="c-language-array_initialization.html">&#25968;&#32452;&#21021;&#22987;&#21270;&#22120;</a>&#25552;&#20379;&#23427;&#20204;&#30340;&#21021;&#22987;&#20540;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> a<span class="br0">[</span><span class="nu0">5</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="nu0">3</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#22768;&#26126; int[5] &#21021;&#22987;&#21270;&#20026; 1,2,3,0,0</span>
<span class="kw4">char</span> str<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="st0">&quot;abc&quot;</span><span class="sy4">;</span> <span class="co1">// &#22768;&#26126; char[4] &#21021;&#22987;&#21270;&#20026; &#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;\0&#39;</span></pre></div>
</div>
<table class="t-rev-begin">
<tr class="t-rev t-since-c99">
<td>
<p>&#22312;&#20989;&#25968;&#21442;&#25968;&#21015;&#34920;&#20013;&#65292;&#38468;&#21152;&#24615;&#35821;&#27861;&#20803;&#32032;&#20801;&#35768;&#20986;&#29616;&#20110;&#25968;&#32452;&#22768;&#26126;&#22120;&#20869;&#65306;&#20851;&#38190;&#35789; <code><b>static</b></code> &#21450; <span class="t-spar">&#38480;&#23450;&#31526;</span> &#65292;&#23427;&#20204;&#21487;&#20197;&#20197;&#20219;&#24847;&#39034;&#24207;&#20808;&#20110;&#22823;&#23567;&#34920;&#36798;&#24335;&#20986;&#29616;&#65288;&#23427;&#20204;&#29978;&#33267;&#21487;&#20197;&#22312;&#22823;&#23567;&#34920;&#36798;&#24335;&#34987;&#24573;&#30053;&#26102;&#20986;&#29616;&#65289;&#12290;</p>
<p>&#22312;&#27599;&#20010;&#21040;&#25968;&#32452;&#21442;&#25968;&#31867;&#22411;&#22312; <code><b>[</b></code> &#21644; <code><b>]</b></code> &#20351;&#29992;&#20851;&#38190;&#35789; <code><b>static</b></code> &#30340;&#20989;&#25968;&#30340;<a href="c-language-operator_other.html#.E5.87.BD.E6.95.B0.E8.B0.83.E7.94.A8">&#20989;&#25968;&#35843;&#29992;</a>&#20013;&#65292;&#23454;&#38469;&#21442;&#25968;&#30340;&#20540;&#24517;&#39035;&#26159;&#19968;&#20010;&#25351;&#21521;&#25968;&#32452;&#39318;&#22320;&#22336;&#30340;&#21512;&#27861;&#25351;&#38024;&#65292;&#35813;&#25968;&#32452;&#20803;&#32032;&#25968;&#30446;&#33267;&#23569;&#20026; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#30340;&#32467;&#26524;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">void</span> fadd<span class="br0">(</span><span class="kw4">double</span> a<span class="br0">[</span><span class="kw4">static</span> <span class="nu0">10</span><span class="br0">]</span>, <span class="kw4">const</span> <span class="kw4">double</span> b<span class="br0">[</span><span class="kw4">static</span> <span class="nu0">10</span><span class="br0">]</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw1">for</span> <span class="br0">(</span><span class="kw4">int</span> i <span class="sy1">=</span> <span class="nu0">0</span><span class="sy4">;</span> i <span class="sy1">&lt;</span> <span class="nu0">10</span><span class="sy4">;</span> i<span class="sy2">++</span><span class="br0">)</span> <span class="br0">{</span>
<span class="kw1">if</span> <span class="br0">(</span>a<span class="br0">[</span>i<span class="br0">]</span> <span class="sy1">&lt;</span> <span class="nu16">0.0</span><span class="br0">)</span> <span class="kw1">return</span><span class="sy4">;</span>
a<span class="br0">[</span>i<span class="br0">]</span> <span class="sy2">+</span><span class="sy1">=</span> b<span class="br0">[</span>i<span class="br0">]</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span>
<span class="co1">// &#23545; fadd &#30340;&#35843;&#29992;&#21487;&#33021;&#36827;&#34892;&#32534;&#35793;&#26102;&#36793;&#30028;&#26816;&#26597;</span>
<span class="co1">// &#24182;&#19988;&#20801;&#35768;&#35832;&#22914;&#39044;&#35835;&#21462; 10 &#20010; double &#30340;&#20248;&#21270; </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">double</span> a<span class="br0">[</span><span class="nu0">10</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">0</span><span class="br0">}</span>, b<span class="br0">[</span><span class="nu0">20</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">0</span><span class="br0">}</span><span class="sy4">;</span>
fadd<span class="br0">(</span>a, b<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK</span>
<span class="kw4">double</span> x<span class="br0">[</span><span class="nu0">5</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">0</span><span class="br0">}</span><span class="sy4">;</span>
fadd<span class="br0">(</span>x, b<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#26410;&#23450;&#20041;&#34892;&#20026;&#65306;&#25968;&#32452;&#21442;&#25968;&#22826;&#23567;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#33509;&#23384;&#22312; <span class="t-spar">&#38480;&#23450;&#31526;</span> &#65292;&#21017;&#23427;&#20204;&#23545;&#25968;&#32452;&#21442;&#25968;&#31867;&#22411;&#25152;&#36716;&#25442;&#24471;&#30340;&#25351;&#38024;&#31867;&#22411;&#36171;&#20104;&#38480;&#23450;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">const</span> <span class="kw4">int</span> a<span class="br0">[</span><span class="nu0">20</span><span class="br0">]</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="co1">// &#27492;&#20989;&#25968;&#20013;&#65292; a &#25317;&#26377;&#31867;&#22411; const int* &#65288;&#25351;&#21521; const int &#30340;&#25351;&#38024;&#65289;</span>
<span class="br0">}</span>
<span class="kw4">int</span> g<span class="br0">(</span><span class="kw4">const</span> <span class="kw4">int</span> a<span class="br0">[</span><span class="kw4">const</span> <span class="nu0">20</span><span class="br0">]</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="co1">// &#27492;&#20989;&#25968;&#20013;&#65292; a &#25317;&#26377;&#31867;&#22411; const int* const &#65288;&#25351;&#21521; const int &#30340; const &#25351;&#38024;&#65289;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36825;&#36890;&#24120;&#29992;&#20110; <a href="c-language-restrict.html"><code>restrict</code></a> &#31867;&#22411;&#38480;&#23450;&#31526;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">void</span> fadd<span class="br0">(</span><span class="kw4">double</span> a<span class="br0">[</span><span class="kw4">static</span> <span class="kw4">restrict</span> <span class="nu0">10</span><span class="br0">]</span>,
<span class="kw4">const</span> <span class="kw4">double</span> b<span class="br0">[</span><span class="kw4">static</span> <span class="kw4">restrict</span> <span class="nu0">10</span><span class="br0">]</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw1">for</span> <span class="br0">(</span><span class="kw4">int</span> i <span class="sy1">=</span> <span class="nu0">0</span><span class="sy4">;</span> i <span class="sy1">&lt;</span> <span class="nu0">10</span><span class="sy4">;</span> i<span class="sy2">++</span><span class="br0">)</span> <span class="br0">{</span> <span class="co1">// &#24490;&#29615;&#21487;&#34987;&#25171;&#24320;&#25110;&#37325;&#25490;</span>
<span class="kw1">if</span> <span class="br0">(</span>a<span class="br0">[</span>i<span class="br0">]</span> <span class="sy1">&lt;</span> <span class="nu16">0.0</span><span class="br0">)</span> <span class="kw1">break</span><span class="sy4">;</span>
a<span class="br0">[</span>i<span class="br0">]</span> <span class="sy2">+</span><span class="sy1">=</span> b<span class="br0">[</span>i<span class="br0">]</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E9.9D.9E.E5.B8.B8.E9.87.8F.E9.95.BF.E5.BA.A6.E6.95.B0.E7.BB.84">&#38750;&#24120;&#37327;&#38271;&#24230;&#25968;&#32452;</span></h4>
<p>&#33509; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#19981;&#26159;<a href="c-language-constant_expression.html#.E6.95.B4.E6.95.B0.E5.B8.B8.E9.87.8F.E8.A1.A8.E8.BE.BE.E5.BC.8F">&#25972;&#25968;&#24120;&#37327;&#34920;&#36798;&#24335;</a>&#65292;&#21017;&#25968;&#32452;&#22768;&#26126;&#22120;&#22768;&#26126;&#19968;&#20010;&#38750;&#24120;&#37327;&#22823;&#23567;&#30340;&#25968;&#32452;&#65288; VLA &#65289;&#12290;</p>
<p>&#27599;&#27425;&#25511;&#21046;&#27969;&#32463;&#36807;&#35813;&#22768;&#26126;&#26102;&#65292;&#20250;&#27714;&#20540; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#65288;&#32780;&#19988;&#23427;&#24517;&#39035;&#27599;&#27425;&#27714;&#20540;&#20026;&#22823;&#20110;&#38646;&#30340;&#20540;&#65289;&#65292;&#28982;&#21518;&#20998;&#37197;&#25968;&#32452;&#65288;&#23545;&#24212;&#22320;&#65292; VLA &#30340;<a href="c-language-lifetime.html">&#29983;&#23384;&#26399;</a>&#22312;&#20854;&#22768;&#26126;&#31163;&#24320;&#20316;&#29992;&#22495;&#26102;&#32467;&#26463;&#65289;&#12290; VLA &#23454;&#20363;&#30340;&#22823;&#23567;&#19981;&#20250;&#22312;&#20854;&#29983;&#23384;&#26399;&#25913;&#21464;&#65292;&#20294;&#22312;&#21478;&#19968;&#27425;&#32463;&#36807;&#21516;&#19968;&#20195;&#30721;&#26102;&#65292;&#23427;&#21487;&#33021;&#34987;&#20998;&#37197;&#19981;&#21516;&#22823;&#23567;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="br0">{</span>
<span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span>
label<span class="sy4">:;</span>
<span class="kw4">int</span> a<span class="br0">[</span>n<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#37325;&#20998;&#37197; 10 &#27425;&#65292;&#27599;&#27425;&#25317;&#26377;&#19981;&#21516;&#22823;&#23567;</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;The array has %zu elements<span class="es1">\n</span>&quot;</span>, <span class="kw4">sizeof</span> a <span class="sy2">/</span> <span class="kw4">sizeof</span> <span class="sy2">*</span>a<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">if</span> <span class="br0">(</span>n<span class="sy2">++</span> <span class="sy1">&lt;</span> <span class="nu0">10</span><span class="br0">)</span> <span class="kw1">goto</span> label<span class="sy4">;</span> <span class="co1">// &#31163;&#24320;&#20316;&#29992;&#22495;&#30340; VLA &#32467;&#26463;&#20854;&#29983;&#23384;&#26399;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#33509;&#22823;&#23567;&#26159; <code><b>*</b></code> &#65292;&#21017;&#22768;&#26126;&#26159;&#23545;&#20110;&#26410;&#25351;&#23450;&#22823;&#23567;&#30340; VLA &#30340;&#12290;&#36825;&#31181;&#22768;&#26126;&#21482;&#33021;&#20986;&#29616;&#20110;&#20989;&#25968;&#21407;&#22411;&#20316;&#29992;&#22495;&#65292;&#24182;&#22768;&#26126;&#19968;&#20010;&#23436;&#25972;&#31867;&#22411;&#30340;&#25968;&#32452;&#12290;&#20854;&#23454;&#65292;&#25152;&#26377;&#20989;&#25968;&#21407;&#22411;&#20316;&#29992;&#22495;&#20013;&#30340; VLA &#22768;&#26126;&#22120;&#37117;&#34987;&#22788;&#29702;&#25104;&#22914;&#21516;&#29992; <code><b>*</b></code> &#26367;&#25442; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">void</span> foo<span class="br0">(</span><a href="c-types-size_t.html"><span class="kw100">size_t</span></a> x, <span class="kw4">int</span> a<span class="br0">[</span><span class="sy2">*</span><span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">void</span> foo<span class="br0">(</span><a href="c-types-size_t.html"><span class="kw100">size_t</span></a> x, <span class="kw4">int</span> a<span class="br0">[</span>x<span class="br0">]</span><span class="br0">)</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;%zu<span class="es1">\n</span>&quot;</span>, <span class="kw4">sizeof</span> a<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#22823;&#23567;&#21516;sizeof(int*)</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#38750;&#24120;&#37327;&#38271;&#24230;&#25968;&#32452;&#19982;&#20174;&#23427;&#20204;&#27966;&#29983;&#30340;&#31867;&#22411;&#65288;&#25351;&#21521;&#23427;&#20204;&#30340;&#25351;&#38024;&#65292;&#31561;&#31561;&#65289;&#34987;&#36890;&#31216;&#20026;&ldquo;&#21487;&#21464;&#20462;&#25913;&#31867;&#22411;&rdquo;&#65288; VM &#65289;&#12290;&#20219;&#20309;&#21487;&#21464;&#20462;&#25913;&#31867;&#22411;&#30340;&#23545;&#35937;&#21482;&#33021;&#22768;&#26126;&#20110;&#22359;&#20316;&#29992;&#22495;&#25110;&#20989;&#25968;&#21407;&#22411;&#20316;&#29992;&#22495;&#20013;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw2">extern</span> <span class="kw4">int</span> n<span class="sy4">;</span>
<span class="kw4">int</span> A<span class="br0">[</span>n<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#25991;&#20214;&#20316;&#29992;&#22495; VLA</span>
<span class="kw2">extern</span> <span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>p2<span class="br0">)</span><span class="br0">[</span>n<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#25991;&#20214;&#20316;&#29992;&#22495; VM</span>
<span class="kw4">int</span> B<span class="br0">[</span><span class="nu0">100</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#25991;&#20214;&#20316;&#29992;&#22495;&#30340;&#24050;&#30693;&#24120;&#37327;&#22823;&#23567;&#25968;&#32452;</span>
<span class="kw4">void</span> fvla<span class="br0">(</span><span class="kw4">int</span> m, <span class="kw4">int</span> C<span class="br0">[</span>m<span class="br0">]</span><span class="br0">[</span>m<span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#21407;&#22411;&#20316;&#29992;&#22495; VLA</span></pre></div>
</div>
<p>VLA &#24517;&#39035;&#25317;&#26377;&#33258;&#21160;&#25110;&#20998;&#37197;&#23384;&#20648;&#26399;&#12290;&#25351;&#21521; VLA &#30340;&#25351;&#38024;&#65292;&#20294;&#19981;&#26159; VLA &#33258;&#36523;&#20134;&#21487;&#25317;&#26377;&#38745;&#24577;&#23384;&#20648;&#26399;&#12290; VM &#31867;&#22411;&#19981;&#33021;&#25317;&#26377;&#38142;&#25509;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">void</span> fvla<span class="br0">(</span><span class="kw4">int</span> m, <span class="kw4">int</span> C<span class="br0">[</span>m<span class="br0">]</span><span class="br0">[</span>m<span class="br0">]</span><span class="br0">)</span> <span class="co1">// OK &#65306;&#22359;&#20316;&#29992;&#22495;/&#33258;&#21160;&#23384;&#20648;&#26399;&#21040; VLA &#30340;&#25351;&#38024;</span>
<span class="br0">{</span>
<span class="kw1">typedef</span> <span class="kw4">int</span> VLA<span class="br0">[</span>m<span class="br0">]</span><span class="br0">[</span>m<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// OK &#65306;&#22359;&#20316;&#29992;&#22495; VLA</span>
<span class="kw4">int</span> D<span class="br0">[</span>m<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// OK &#65306;&#22359;&#20316;&#29992;&#22495;/&#33258;&#21160;&#23384;&#20648;&#26399; VLA</span>
<span class="co1">// static int E[m]; // &#38169;&#35823;&#65306;&#38745;&#24577;&#23384;&#20648;&#26399; VLA</span>
<span class="co1">// extern int F[m]; // &#38169;&#35823;&#65306;&#25317;&#26377;&#38142;&#25509;&#30340; VLA</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>s<span class="br0">)</span><span class="br0">[</span>m<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#22359;&#20316;&#29992;&#22495;/&#33258;&#21160;&#23384;&#20648;&#26399; VM</span>
<span class="co1">// extern int (*r)[m]; // &#38169;&#35823;&#65306;&#25317;&#26377;&#38142;&#25509;&#30340; VM</span>
<span class="kw4">static</span> <span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>q<span class="br0">)</span><span class="br0">[</span>m<span class="br0">]</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>B<span class="sy4">;</span> <span class="co1">// &#38169;&#35823; &#65306;&#38745;&#24577;&#23384;&#20648;&#26399;&#25351;&#38024;&#38656;&#35201;&#38745;&#24577;&#23384;&#20648;&#26399;&#30340;B&#26469;&#21021;&#22987;&#21270;&#65292;</span>
<span class="co1">// &#20294;&#26080;&#27861;&#23450;&#20041;static int B[m];</span>
<span class="kw4">static</span> <span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>p<span class="br0">)</span><span class="br0">[</span>m<span class="br0">]</span> <span class="sy1">=</span> <a href="c-types-NULL.html"><span class="kw103">NULL</span></a><span class="sy4">;</span>
p <span class="sy1">=</span> <span class="sy3">&amp;</span>B<span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#21487;&#21464;&#20462;&#25913;&#30340;&#31867;&#22411;&#19981;&#33021;&#26159;&#32467;&#26500;&#20307;&#25110;&#32852;&#21512;&#20307;&#30340;&#25104;&#21592;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw1">struct</span> tag <span class="br0">{</span>
<span class="kw4">int</span> z<span class="br0">[</span>n<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306; VLA &#32467;&#26500;&#20307;&#25104;&#21592;</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>y<span class="br0">)</span><span class="br0">[</span>n<span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306; VM &#32467;&#26500;&#20307;&#25104;&#21592;</span>
<span class="br0">}</span><span class="sy4">;</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></td>
</tr>
<tr class="t-rev t-since-c11">
<td>
<p>&#33509;&#32534;&#35793;&#22120;&#23450;&#20041;&#23439;&#24120;&#37327; <span class="t-c"><span class="mw-geshi c source-c">__STDC_NO_VLA__</span></span> &#20026;&#25972;&#25968;&#24120;&#37327; <span class="t-c"><span class="mw-geshi c source-c"><span class="nu0">1</span></span></span> &#65292;&#21017;&#19981;&#25552;&#20379; VLA &#25110; VM &#12290;</p>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id=".E6.9C.AA.E7.9F.A5.E5.A4.A7.E5.B0.8F.E6.95.B0.E7.BB.84">&#26410;&#30693;&#22823;&#23567;&#25968;&#32452;</span></h4>
<p>&#33509;&#24573;&#30053;&#25968;&#32452;&#22768;&#26126;&#22120;&#20013;&#30340; <span class="t-spar">&#34920;&#36798;&#24335;</span>&#65292;&#21017;&#23427;&#22768;&#26126;&#19968;&#20010;&#26410;&#30693;&#22823;&#23567;&#25968;&#32452;&#12290;&#38500;&#20102;&#20989;&#25968;&#21442;&#25968;&#21015;&#34920;&#20013;&#30340;&#24773;&#20917;&#65288;&#36825;&#31181;&#25968;&#32452;&#34987;&#36716;&#25442;&#25104;&#25351;&#38024;&#65289;&#65292;&#32780;&#19988;&#24403;<a href="c-language-array_initialization.html">&#21021;&#22987;&#21270;&#22120;</a>&#21487;&#29992;&#26102;&#65292;&#36825;&#31181;&#31867;&#22411;&#26159;&#19968;&#20010;<a href="c-language-types.html#.E4.B8.8D.E5.AE.8C.E6.95.B4.E7.B1.BB.E5.9E.8B">&#19981;&#23436;&#25972;&#31867;&#22411;</a><span class="t-rev-inl t-since-c99"><span>&#65288;&#27880;&#24847;&#25317;&#26377;&#26410;&#25351;&#23450;&#22823;&#23567;&#30340;VLA&#65292;&#20197; <code><b>*</b></code> &#20195;&#26367;&#22823;&#23567;&#22768;&#26126;&#26102;&#65292;&#23427;&#26159;&#23436;&#25972;&#31867;&#22411;&#65289;</span> <span><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></span></span>&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw2">extern</span> <span class="kw4">int</span> x<span class="br0">[</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// x &#30340;&#31867;&#22411;&#26159;&ldquo;&#36793;&#30028;&#26410;&#30693;&#30340; int &#25968;&#32452;&rdquo;</span>
<span class="kw4">int</span> a<span class="br0">[</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="nu0">3</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// a &#30340;&#31867;&#22411;&#26159;&ldquo; 3 &#20010; int &#30340;&#25968;&#32452;&rdquo;</span></pre></div>
</div>
<table class="t-rev-begin">
<tr class="t-rev t-since-c99">
<td>
<p>&#22312; <a href="c-language-struct.html">struct</a> &#23450;&#20041;&#20013;&#65292;&#26410;&#30693;&#22823;&#23567;&#25968;&#32452;&#24517;&#39035;&#20986;&#29616;&#20316;&#26368;&#21518;&#19968;&#20010;&#20803;&#32032;&#65288;&#21482;&#35201;&#26377;&#19968;&#20010;&#20855;&#21517;&#25104;&#21592;&#65289;&#65292;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#36825;&#26159;&#31216;&#20026;<i>&#26580;&#24615;&#25968;&#32452;&#25104;&#21592;</i>&#30340;&#29305;&#27530;&#24773;&#24418;&#12290;&#32454;&#33410;&#35265; <a href="c-language-struct.html">struct</a> &#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw1">struct</span> s <span class="br0">{</span> <span class="kw4">int</span> n<span class="sy4">;</span> <span class="kw4">double</span> d<span class="br0">[</span><span class="br0">]</span><span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// s.d &#26159;&#26580;&#24615;&#25968;&#32452;&#25104;&#21592;</span>
<span class="kw1">struct</span> s <span class="sy2">*</span>s1 <span class="sy1">=</span> <a href="c-memory-malloc.html"><span class="kw403">malloc</span></a><span class="br0">(</span><span class="kw4">sizeof</span> <span class="br0">(</span><span class="kw1">struct</span> s<span class="br0">)</span> <span class="sy2">+</span> <span class="br0">(</span><span class="kw4">sizeof</span> <span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span> <span class="sy2">*</span> <span class="nu0">8</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#22914;&#21516; d &#26159; d[8]</span></pre></div>
</div>
<p><br /></p>
</td>
<td><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id=".E9.99.90.E5.AE.9A.E7.AC.A6">&#38480;&#23450;&#31526;</span></h4>
<table class="t-rev-begin">
<tr class="t-rev t-until-c23">
<td>
<p>&#33509;&#25968;&#32452;&#31867;&#22411;&#22768;&#26126;&#25317;&#26377; <a href="c-language-const.html"><code>const</code></a> &#12289; <a href="c-language-volatile.html"><code>volatile</code></a> <span class="t-rev-inl t-since-c99"><span>&#12289;&#25110; <a href="c-language-restrict.html"><code>restrict</code></a></span> <span><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></span></span> &#38480;&#23450;&#31526;&#65288;&#21487;&#20197;&#36890;&#36807;&#20351;&#29992; <a href="c-language-typedef.html"><code>typedef</code></a> &#65289;&#65292;&#21017;&#25968;&#32452;&#31867;&#22411;&#26080;&#38480;&#23450;&#65292;&#20294;&#20854;&#20803;&#32032;&#31867;&#22411;&#26377;&#38480;&#23450;&#65306;</p>
</td>
<td><span class="t-mark-rev t-until-c23">(C23 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-c23">
<td>
<p>&#22987;&#32456;&#35748;&#20026;&#25968;&#32452;&#31867;&#22411;&#19982;&#20854;&#20803;&#32032;&#31867;&#22411;&#26377;&#31561;&#21516;&#30340;&#38480;&#23450;&#65292;&#38500;&#20102;&#22987;&#32456;&#19981;&#35748;&#20026;&#25968;&#32452;&#31867;&#22411;&#26377; <a href="c-language-atomic.html"><code>_Atomic</code></a> &#38480;&#23450;&#65306;</p>
</td>
<td><span class="t-mark-rev t-since-c23">(C23 &#36215;)</span></td>
</tr>
</table>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw1">typedef</span> <span class="kw4">int</span> A<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="sy4">;</span>
<span class="kw4">const</span> A a <span class="sy1">=</span> <span class="br0">{</span><span class="br0">{</span><span class="nu0">4</span>, <span class="nu0">5</span>, <span class="nu0">6</span><span class="br0">}</span>, <span class="br0">{</span><span class="nu0">7</span>, <span class="nu0">8</span>, <span class="nu0">9</span><span class="br0">}</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// const int &#30340;&#25968;&#32452;&#30340;&#25968;&#32452;</span>
<span class="kw4">int</span><span class="sy2">*</span> pi <span class="sy1">=</span> a<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306; a[0] &#25317;&#26377;&#31867;&#22411; const int*</span>
<span class="kw4">void</span> <span class="sy2">*</span>unqual_ptr <span class="sy1">=</span> a<span class="sy4">;</span> <span class="co1">// C23 &#21069; OK &#65307; C23 &#36215;&#38169;&#35823;</span>
<span class="co1">// &#27880;&#65306; clang &#21363;&#20351;&#22312; C89-C17 &#27169;&#24335;&#20063;&#24212;&#29992; C++/C23 &#20013;&#30340;&#35268;&#21017;</span></pre></div>
</div>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<p>&#19981;&#20801;&#35768;&#24212;&#29992; <a href="c-language-atomic.html"><code>_Atomic</code></a> &#21040;&#25968;&#32452;&#31867;&#22411;&#65292;&#23613;&#31649;&#20801;&#35768;&#21407;&#23376;&#31867;&#22411;&#30340;&#25968;&#32452;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw1">typedef</span> <span class="kw4">int</span> A<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="sy4">;</span>
<span class="co1">// _Atomic A a0 = {0}; // &#38169;&#35823;</span>
<span class="co1">// _Atomic(A) a1 = {0}; // &#38169;&#35823;</span>
_Atomic <span class="kw4">int</span> a2<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">0</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// OK</span>
_Atomic<span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> a3<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">0</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// OK</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<h4><span class="mw-headline" id=".E8.B5.8B.E5.80.BC">&#36171;&#20540;</span></h4>
<p>&#25968;&#32452;&#31867;&#22411;&#30340;&#23545;&#35937;&#19981;&#26159;<a href="c-language-value_category.html">&#21487;&#20462;&#25913;&#24038;&#20540;</a>&#65292;&#23613;&#31649;&#23427;&#20204;&#21487;&#20197;&#21462;&#22320;&#22336;&#65292;&#23427;&#20204;&#19981;&#33021;&#20986;&#29616;&#20110;&#36171;&#20540;&#36816;&#31639;&#31526;&#30340;&#24038;&#20391;&#12290;&#19981;&#36807;&#65292;&#25317;&#26377;&#25968;&#32452;&#25104;&#21592;&#30340;&#32467;&#26500;&#20307;&#26159;&#21487;&#20462;&#25913;&#24038;&#20540;&#65292;&#24182;&#21487;&#20197;&#36171;&#20540;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> a<span class="br0">[</span><span class="nu0">3</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="nu0">3</span><span class="br0">}</span>, b<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">4</span>,<span class="nu0">5</span>,<span class="nu0">6</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>p<span class="br0">)</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>a<span class="sy4">;</span> <span class="co1">// OK &#65292;&#21487;&#20197;&#21462;&#22320;&#22336;</span>
<span class="co1">// a = b; // &#38169;&#35823;&#65292;a &#26159;&#25968;&#32452;</span>
<span class="kw1">struct</span> <span class="br0">{</span> <span class="kw4">int</span> c<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="sy4">;</span> <span class="br0">}</span> s1, s2 <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">3</span>,<span class="nu0">4</span>,<span class="nu0">5</span><span class="br0">}</span><span class="sy4">;</span>
s1 <span class="sy1">=</span> s2<span class="sy4">;</span> <span class="co1">// OK &#65306;&#21487;&#20197;&#36171;&#20540;&#25317;&#26377;&#25968;&#32452;&#25104;&#21592;&#30340;&#32467;&#26500;&#20307;</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E6.95.B0.E7.BB.84.E5.88.B0.E6.8C.87.E9.92.88.E8.BD.AC.E6.8D.A2">&#25968;&#32452;&#21040;&#25351;&#38024;&#36716;&#25442;</span></h4>
<p>&#20219;&#20309;&#25968;&#32452;&#31867;&#22411;&#30340;<a href="c-language-value_category.html">&#24038;&#20540;&#34920;&#36798;&#24335;</a>&#65292;&#24403;&#29992;&#20110;&#24322;&#20110;</p>
<ul>
<li>&#20316;&#20026;<a href="c-language-operator_member_access.html">&#21462;&#22320;&#22336;&#36816;&#31639;&#31526;</a>&#30340;&#25805;&#20316;&#25968;</li>
<li>&#20316;&#20026; <a href="c-language-sizeof.html"><code>sizeof</code></a> &#30340;&#25805;&#20316;&#25968;</li>
<li>&#20316;&#20026;&#29992;&#20110;<a href="c-language-array_initialization.html">&#25968;&#32452;&#21021;&#22987;&#21270;</a>&#30340;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;</li>
</ul>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<ul>
<li>&#20316;&#20026; <a href="c-language-_Alignof.html"><code>_Alignof</code></a> &#30340;&#25805;&#20316;&#25968;</li>
</ul>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<p>&#30340;&#35821;&#22659;&#26102;&#65292;&#20250;&#32463;&#21382;&#21040;&#25351;&#21521;&#20854;&#39318;&#20803;&#32032;&#25351;&#38024;&#30340;<a href="c-language-conversion.html">&#38544;&#24335;&#36716;&#25442;</a>&#12290;&#32467;&#26524;&#20026;&#38750;&#24038;&#20540;&#12290;</p>
<p>&#33509;&#22768;&#26126;&#25968;&#32452;&#20026; <a href="c-language-storage_duration.html"><code>register</code></a> &#65292;&#21017;&#23581;&#35797;&#36825;&#20040;&#20570;&#30340;&#31243;&#24207;&#30340;&#34892;&#20026;&#26410;&#23450;&#20041;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> a<span class="br0">[</span><span class="nu0">3</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="nu0">3</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span><span class="sy2">*</span> p <span class="sy1">=</span> a<span class="sy4">;</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;%zu<span class="es1">\n</span>&quot;</span>, <span class="kw4">sizeof</span> a<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360;&#25968;&#32452;&#22823;&#23567;</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;%zu<span class="es1">\n</span>&quot;</span>, <span class="kw4">sizeof</span> p<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360;&#25351;&#38024;&#22823;&#23567;</span></pre></div>
</div>
<p>&#24403;&#25968;&#32452;&#31867;&#22411;&#29992;&#20110;&#20989;&#25968;&#21442;&#25968;&#21015;&#34920;&#26159;&#65292;&#23427;&#20250;&#36716;&#25442;&#25104;&#23545;&#24212;&#30340;&#25351;&#38024;&#31867;&#22411;&#65306; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span> a<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="br0">)</span></span></span> &#21644;<span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span><span class="sy2">*</span> a<span class="br0">)</span></span></span> &#22768;&#26126;&#21516;&#19968;&#20010;&#20989;&#25968;&#12290;&#22240;&#20026;&#20989;&#25968;&#23454;&#38469;&#21442;&#25968;&#31867;&#22411;&#20026;&#25351;&#38024;&#31867;&#22411;&#65292;&#20351;&#29992;&#25968;&#32452;&#21442;&#25968;&#30340;&#20989;&#25968;&#35843;&#29992;&#20250;&#36827;&#34892;&#19968;&#20010;&#25968;&#32452;&#21040;&#25351;&#38024;&#36716;&#25442;&#65307;&#21442;&#25968;&#25968;&#32452;&#30340;&#22823;&#23567;&#19981;&#20026;&#34987;&#35843;&#29992;&#20989;&#25968;&#21487;&#24471;&#65292;&#32780;&#24517;&#39035;&#26174;&#24335;&#20256;&#36882;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">int</span> a<span class="br0">[</span><span class="br0">]</span>, <span class="kw4">int</span> sz<span class="br0">)</span> <span class="co1">// &#23454;&#38469;&#19978;&#22768;&#26126; void f(int* a, int sz)</span>
<span class="br0">{</span>
<span class="kw1">for</span><span class="br0">(</span><span class="kw4">int</span> i <span class="sy1">=</span> <span class="nu0">0</span><span class="sy4">;</span> i <span class="sy1">&lt;</span> sz<span class="sy4">;</span> <span class="sy2">++</span>i<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<span class="es1">\n</span>&quot;</span>, a<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</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">int</span> a<span class="br0">[</span><span class="nu0">10</span><span class="br0">]</span><span class="sy4">;</span>
f<span class="br0">(</span>a, <span class="nu0">10</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#36716;&#25442;&#25104; int* &#65292;&#20256;&#36882;&#25351;&#38024;</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E5.A4.9A.E7.BB.B4.E6.95.B0.E7.BB.84">&#22810;&#32500;&#25968;&#32452;</span></h4>
<p>&#24403;&#25968;&#32452;&#30340;&#20803;&#32032;&#26159;&#21478;&#19968;&#20010;&#25968;&#32452;&#26102;&#65292;&#25105;&#20204;&#31216;&#25968;&#32452;&#26159;&#22810;&#32500;&#30340;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="co1">// 2 &#20010;&#20803;&#32032;&#20026; 3 &#20010; int &#30340;&#25968;&#32452;&#30340;&#25968;&#32452;</span>
<span class="kw4">int</span> a<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span><span class="br0">{</span><span class="nu0">1</span>,<span class="nu0">2</span>,<span class="nu0">3</span><span class="br0">}</span>, <span class="co1">// &#21487;&#35270;&#20316;&#34892;&#20027;&#23548;&#25490;&#21015;&#30340;</span>
<span class="br0">{</span><span class="nu0">4</span>,<span class="nu0">5</span>,<span class="nu0">6</span><span class="br0">}</span><span class="br0">}</span><span class="sy4">;</span> <span class="co1">// 2x3 &#30697;&#38453;</span></pre></div>
</div>
<p>&#27880;&#24847;&#24403;&#24212;&#29992;&#25968;&#32452;&#21040;&#25351;&#38024;&#36716;&#25442;&#26159;&#65292;&#22810;&#32500;&#25968;&#32452;&#34987;&#36716;&#25442;&#25104;&#25351;&#21521;&#20854;&#39318;&#20803;&#32032;&#30340;&#25351;&#38024;&#65292;&#20363;&#22914;&#25351;&#38024;&#21040;&#39318;&#34892;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> a<span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// 2x3 &#30697;&#38453;</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>p1<span class="br0">)</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> a<span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#39318;&#20010; 3 &#20010;&#20803;&#32032;&#34892;&#30340;&#25351;&#38024;</span>
<span class="kw4">int</span> b<span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="sy4">;</span> <span class="co1">// 3x3x3 &#31435;&#26041;&#20307;</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>p2<span class="br0">)</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> a<span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#39318;&#20010; 3x3 &#24179;&#38754;&#30340;&#25351;&#38024;</span></pre></div>
</div>
<table class="t-rev-begin">
<tr class="t-rev t-since-c99">
<td>
<p><span class="t-rev-inl t-since-c11"><span>&#33509;&#25903;&#25345; VLA &#65292;&#21017;</span> <span><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></span></span>&#22810;&#32500;&#25968;&#32452;&#21487;&#20197;&#22312;&#27599;&#19968;&#32500;&#24230;&#21487;&#21464;&#20462;&#25913;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">10</span><span class="sy4">;</span>
<span class="kw4">int</span> a<span class="br0">[</span>n<span class="br0">]</span><span class="br0">[</span><span class="nu0">2</span><span class="sy2">*</span>n<span class="br0">]</span><span class="sy4">;</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<p>&#19981;&#20801;&#35768;&#38646;&#38271;&#24230;&#25968;&#32452;&#65292;&#21363;&#20351;&#19968;&#20123;&#32534;&#35793;&#22120;&#20316;&#20026;&#25193;&#23637;&#25552;&#20379;&#23427;&#20204;&#65288;&#20856;&#22411;&#20363;&#23376;&#26159; C99 &#21069;&#30340;<a href="c-language-struct.html">&#26580;&#24615;&#25968;&#32452;&#25104;&#21592;</a>&#23454;&#29616;&#65289;&#12290;</p>
<p>&#33509; VLA &#30340;&#22823;&#23567; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#25317;&#26377;&#21103;&#20316;&#29992;&#65292;&#21017;&#20445;&#35777;&#20250;&#27491;&#30830;&#20135;&#29983;&#21103;&#20316;&#29992;&#65292;&#38500;&#38750;&#23427;&#20204;&#26159; <code>sizeof</code> &#34920;&#36798;&#24335;&#30340;&#19968;&#37096;&#20998;&#65292;&#32780;&#32467;&#26524;&#19981;&#20381;&#36182;&#21103;&#25928;&#24212;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">5</span><span class="sy4">;</span>
<a href="c-types-size_t.html"><span class="kw100">size_t</span></a> sz <span class="sy1">=</span> <span class="kw4">sizeof</span><span class="br0">(</span><span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span><span class="br0">)</span><span class="br0">[</span>n<span class="sy2">++</span><span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// n &#21487;&#20197;&#33258;&#22686;&#20063;&#21487;&#20197;&#19981;&#33258;&#22686;</span></pre></div>
</div>
<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.7.6.2 Array declarators (p: 94-96)</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.7.6.2 Array declarators (p: 130-132)</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.7.5.2 Array declarators (p: 116-118)</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.5.4.2 Array declarators</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>