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

483 lines
70 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>&#25351;&#38024;&#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-cpp_language_pointer skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#25351;&#38024;&#22768;&#26126;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-language.html">language</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>&#22768;&#26126;&#25351;&#38024;&#25110;&#25351;&#21521;&#25104;&#21592;&#25351;&#38024;&#31867;&#22411;&#30340;&#21464;&#37327;&#12290;</p>
<h3><span class="mw-headline" id=".E8.AF.AD.E6.B3.95">&#35821;&#27861;</span></h3>
<p>&#25351;&#38024;&#30340;&#22768;&#26126;&#26159;&#31616;&#21333;&#22768;&#26126;&#65292;&#20854;<a href="cpp-language-declarations.html">&#22768;&#26126;&#31526;</a>&#25317;&#26377;&#19979;&#21015;&#24418;&#24335;</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> <span class="t-spar">&#23646;&#24615;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">cv&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22768;&#26126;&#31526;</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#23884;&#22871;&#21517;&#35828;&#26126;&#31526;</span> <code><b>*</b></code> <span class="t-spar">&#23646;&#24615;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">cv&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22768;&#26126;&#31526;</span></td>
<td>(2)</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)</span> <b>&#25351;&#38024;&#22768;&#26126;&#31526;</b>&#65306;&#22768;&#26126; <span class="t-c"><span class="mw-geshi cpp source-cpp">S<span class="sy2">*</span> D<span class="sy4">;</span></span></span> &#23558; <code>D</code> &#22768;&#26126;&#20026;&#25351;&#21521; <span class="t-spar">&#23884;&#22871;&#21517;&#35828;&#26126;&#31526;</span> <code>S</code> &#25152;&#30830;&#23450;&#31867;&#22411;&#30340;&#25351;&#38024;&#12290;</div>
<div class="t-li1"><span class="t-li">2)</span> <b>&#25104;&#21592;&#25351;&#38024;&#22768;&#26126;&#31526;</b>&#65306;&#22768;&#26126; <span class="t-c"><span class="mw-geshi cpp source-cpp">S C<span class="sy4">::</span><span class="sy2">*</span> D<span class="sy4">;</span></span></span> &#23558; <code>D</code> &#22768;&#26126;&#20026;&#25351;&#21521; <code>C</code> &#30340; <span class="t-spar">&#23884;&#22871;&#21517;&#35828;&#26126;&#31526;</span> <code>S</code> &#25152;&#30830;&#23450;&#31867;&#22411;&#30340;&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#30340;&#25351;&#38024;&#12290;</div>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">&#23884;&#22871;&#21517;&#35828;&#26126;&#31526;</span></td>
<td>-</td>
<td><a href="cpp-language-identifiers.html#.E6.9C.89.E9.99.90.E5.AE.9A.E7.9A.84.E6.A0.87.E8.AF.86.E7.AC.A6">&#21517;&#23383;&#21644;&#20316;&#29992;&#22495;&#35299;&#26512;&#36816;&#31639;&#31526; <code><b>::</b></code> &#30340;&#24207;&#21015;</a></td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#23646;&#24615;</span></td>
<td>-</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span> &#21487;&#36873;&#30340;<a href="cpp-language-attributes.html">&#23646;&#24615;</a>&#21015;&#34920;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">cv&#38480;&#23450;&#31526;</span></td>
<td>-</td>
<td>&#24212;&#29992;&#21040;&#34987;&#22768;&#26126;&#25351;&#38024;&#30340; const/volatile &#38480;&#23450;&#65288;&#32780;&#24182;&#38750;&#34987;&#25351;&#21521;&#31867;&#22411;&#65292;&#20854;&#38480;&#23450;&#26159; <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> &#30340;&#19968;&#37096;&#20998;&#65289;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#22768;&#26126;&#31526;</span></td>
<td>-</td>
<td>&#38500;&#24341;&#29992;&#22768;&#26126;&#31526;&#20043;&#22806;&#30340;&#20219;&#24847;<a href="cpp-language-declarations.html">&#22768;&#26126;&#31526;</a>&#65288;&#26080;&#25351;&#21521;&#24341;&#29992;&#30340;&#25351;&#38024;&#65289;&#12290;&#23427;&#21487;&#20197;&#26159;&#21478;&#19968;&#25351;&#38024;&#22768;&#26126;&#31526;&#65288;&#20801;&#35768;&#25351;&#21521;&#25351;&#38024;&#30340;&#25351;&#38024;&#65289;</td>
</tr>
</table>
<p>&#19981;&#23384;&#22312;&#25351;&#21521;<a href="cpp-language-reference.html">&#24341;&#29992;</a>&#30340;&#25351;&#38024;&#21644;&#25351;&#21521;<a href="cpp-language-bit_field.html">&#20301;&#22495;</a>&#30340;&#25351;&#38024;&#12290; &#24403;&#27809;&#26377;&#35814;&#36848;&#22320;&#25552;&#21450;&ldquo;&#25351;&#38024;&rdquo;&#26102;&#65292;&#36890;&#24120;&#19981;&#21253;&#21547;&#25351;&#21521;&#65288;&#38750;&#38745;&#24577;&#65289;&#25104;&#21592;&#30340;&#25351;&#38024;&#12290;</p>
<h3><span class="mw-headline" id=".E6.8C.87.E9.92.88">&#25351;&#38024;</span></h3>
<p>&#25351;&#38024;&#31867;&#22411;&#30340;&#20540;&#26159;&#19979;&#21015;&#20043;&#19968;&#65306;</p>
<ul>
<li><i>&#25351;&#21521;&#23545;&#35937;&#25110;&#20989;&#25968;&#30340;&#25351;&#38024;</i>&#65288;&#27492;&#26102;&#25105;&#20204;&#35828;&#35813;&#25351;&#38024;<i>&#25351;&#21521;</i>&#20989;&#25968;&#25110;&#23545;&#35937;&#65289;&#65292;&#25110;</li>
<li><i>&#23545;&#35937;&#26411;&#23614;&#21518;&#25351;&#38024;</i>&#65292;&#25110;</li>
<li>&#35813;&#31867;&#22411;&#30340;<i><a href="cpp-language-pointer.html#.E7.A9.BA.E6.8C.87.E9.92.88">&#31354;&#25351;&#38024;&#20540;</a></i>&#65292;&#25110;</li>
<li><i>&#26080;&#25928;&#25351;&#38024;&#20540;</i>&#12290;</li>
</ul>
<p>&#25351;&#21521;&#23545;&#35937;&#30340;&#25351;&#38024;<i>&#34920;&#31034;</i>&#35813;&#23545;&#35937;&#25152;&#21344;&#29992;&#30340;&#20869;&#23384;&#30340;&#39318;&#23383;&#33410;&#30340;&#22320;&#22336;&#12290;&#23545;&#35937;&#30340;&#26411;&#23614;&#21518;&#25351;&#38024;<i>&#34920;&#31034;</i>&#65292;&#20869;&#23384;&#20013;&#35813;&#23545;&#35937;&#25152;&#21344;&#29992;&#30340;&#23384;&#20648;&#20043;&#21518;&#30340;&#39318;&#20010;&#23383;&#33410;&#30340;&#22320;&#22336;&#12290;</p>
<p>&#27880;&#24847;&#65292;&#20004;&#20010;&#34920;&#31034;&#21516;&#19968;&#22320;&#22336;&#30340;&#25351;&#38024;&#20063;&#21487;&#33021;&#25317;&#26377;&#19981;&#21516;&#30340;&#20540;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> C <span class="br0">{</span>
<span class="kw4">int</span> x, y<span class="sy4">;</span>
<span class="br0">}</span> c<span class="sy4">;</span>
<span class="kw4">int</span><span class="sy2">*</span> px <span class="sy1">=</span> <span class="sy3">&amp;</span>c.<span class="me1">x</span><span class="sy4">;</span> <span class="co1">// px &#30340;&#20540;&#20026;&ldquo;&#25351;&#21521; c.x &#30340;&#25351;&#38024;&rdquo;</span>
<span class="kw4">int</span><span class="sy2">*</span> pxe<span class="sy1">=</span> px <span class="sy2">+</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// pxe &#30340;&#20540;&#20026;&ldquo; c.x &#30340;&#23614;&#21518;&#25351;&#38024;&rdquo;</span>
<span class="kw4">int</span><span class="sy2">*</span> py <span class="sy1">=</span> <span class="sy3">&amp;</span>c.<span class="me1">y</span><span class="sy4">;</span> <span class="co1">// py &#30340;&#20540;&#20026;&ldquo;&#25351;&#21521; c.y &#30340;&#25351;&#38024;&rdquo;</span>
<a href="cpp-error-assert.html"><span class="kw774">assert</span></a><span class="br0">(</span>pxe <span class="sy1">==</span> py<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// == &#27979;&#35797;&#20004;&#20010;&#25351;&#38024;&#26159;&#21542;&#34920;&#31034;&#30456;&#21516;&#22320;&#22336;</span>
<span class="co1">// &#21487;&#33021;&#25110;&#21487;&#33021;&#19981;&#24341;&#21457;&#26029;&#35328;</span>
<span class="sy2">*</span>pxe <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#21363;&#20351;&#26410;&#24341;&#21457;&#26029;&#35328;&#20063;&#26159;&#26410;&#23450;&#20041;&#34892;&#20026;</span></pre></div>
</div>
<p>&#36890;&#36807;&#26080;&#25928;&#25351;&#38024;&#20540;&#38388;&#25509;&#23547;&#22336;&#65292;&#21644;&#23558;&#26080;&#25928;&#25351;&#38024;&#20540;&#20256;&#36882;&#32473;&#35299;&#20998;&#37197;&#20989;&#25968;&#22343;&#25317;&#26377;&#26410;&#23450;&#20041;&#34892;&#20026;&#12290;&#26080;&#25928;&#25351;&#38024;&#20540;&#30340;&#20219;&#20309;&#20854;&#20182;&#29992;&#27861;&#25317;&#26377;&#30001;&#23454;&#29616;&#23450;&#20041;&#30340;&#34892;&#20026;&#12290;&#37096;&#20998;&#23454;&#29616;&#20250;&#23558;&#22797;&#21046;&#26080;&#25928;&#25351;&#38024;&#20540;&#30340;&#34892;&#20026;&#23450;&#20041;&#20026;&#36896;&#25104;&#30001;&#31995;&#32479;&#29983;&#25104;&#30340;&#36816;&#34892;&#26102;&#38169;&#35823;&#12290;</p>
<h4><span class="mw-headline" id=".E5.AF.B9.E8.B1.A1.E6.8C.87.E9.92.88">&#23545;&#35937;&#25351;&#38024;</span></h4>
<p>&#23545;&#35937;&#25351;&#38024;&#33021;&#20197;&#24212;&#29992;&#20110;&#20219;&#20309;&#23545;&#35937;&#31867;&#22411;&#65288;&#21253;&#21547;&#21478;&#19968;&#25351;&#38024;&#31867;&#22411;&#65289;&#30340;&#34920;&#36798;&#24335;&#30340;<a href="cpp-language-operator_member_access.html">&#21462;&#22336;&#36816;&#31639;&#31526;</a>&#30340;&#36820;&#22238;&#20540;&#21021;&#22987;&#21270;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> n<span class="sy4">;</span>
<span class="kw4">int</span><span class="sy2">*</span> np <span class="sy1">=</span> <span class="sy3">&amp;</span>n<span class="sy4">;</span> <span class="co1">// &#25351;&#21521; int &#30340;&#25351;&#38024;</span>
<span class="kw4">int</span><span class="sy2">*</span> <span class="kw4">const</span><span class="sy2">*</span> npp <span class="sy1">=</span> <span class="sy3">&amp;</span>np<span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#12304;&#25351;&#21521;&#38750; const int &#30340; const &#25351;&#38024;&#12305;&#30340;&#38750; const &#25351;&#38024;</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="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span>ap<span class="br0">)</span><span class="br0">[</span><span class="nu0">2</span><span class="br0">]</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>a<span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#21547;&#26377; int &#30340;&#25968;&#32452;&#30340;&#25351;&#38024;</span>
<span class="kw1">struct</span> S <span class="br0">{</span> <span class="kw4">int</span> n<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
S s <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">1</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span><span class="sy2">*</span> sp <span class="sy1">=</span> <span class="sy3">&amp;</span>s.<span class="me1">n</span><span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#20316;&#20026; s &#30340;&#25104;&#21592;&#30340; int &#30340;&#25351;&#38024;</span></pre></div>
</div>
<p>&#23545;&#35937;&#25351;&#38024;&#21487;&#20316;&#20026;&#20869;&#24314;&#38388;&#25509;&#23547;&#22336;&#36816;&#31639;&#31526;&#65288;&#19968;&#20803; <code>operator*</code>&#65289;&#30340;&#25805;&#20316;&#25968;&#65292;&#24182;&#36820;&#22238;&#25351;&#20195;&#34987;&#25351;&#21521;&#23545;&#35937;&#30340;<a href="cpp-language-value_category.html">&#24038;&#20540;&#34920;&#36798;&#24335;</a>&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> n<span class="sy4">;</span>
<span class="kw4">int</span><span class="sy2">*</span> p <span class="sy1">=</span> <span class="sy3">&amp;</span>n<span class="sy4">;</span> <span class="co1">// &#25351;&#21521; n &#30340;&#25351;&#38024;</span>
<span class="kw4">int</span><span class="sy3">&amp;</span> r <span class="sy1">=</span> <span class="sy2">*</span>p<span class="sy4">;</span> <span class="co1">// &#32465;&#23450;&#21040;&#25351;&#20195; n &#30340;&#24038;&#20540;&#34920;&#36798;&#24335;&#30340;&#24341;&#29992;</span>
r <span class="sy1">=</span> <span class="nu0">7</span><span class="sy4">;</span> <span class="co1">// &#22312; n &#23384;&#20648; int 7</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="sy2">*</span>p<span class="sy4">;</span> <span class="co1">// &#24038;&#20540;&#21040;&#21491;&#20540;&#38544;&#24335;&#36716;&#25442;&#20174; n &#35835;&#21462;&#20540;</span></pre></div>
</div>
<p>&#25351;&#21521;&#31867;&#23545;&#35937;&#30340;&#25351;&#38024;&#20063;&#33021;&#20316;&#20026;&#25104;&#21592;&#35775;&#38382;&#36816;&#31639;&#31526; <a href="cpp-language-operator_member_access.html#.E5.86.85.E5.BB.BA.E7.9A.84.E6.88.90.E5.91.98.E8.AE.BF.E9.97.AE.E8.BF.90.E7.AE.97.E7.AC.A6">operator-&gt;</a> &#21644; <a href="cpp-language-operator_member_access.html#.E5.86.85.E5.BB.BA.E7.9A.84.E6.88.90.E5.91.98.E6.8C.87.E9.92.88.E8.AE.BF.E9.97.AE.E8.BF.90.E7.AE.97.E7.AC.A6">operator-&gt;*</a> &#30340;&#24038;&#20391;&#25805;&#20316;&#25968;&#12290;</p>
<p>&#30001;&#20110;&#23384;&#22312;<a href="cpp-language-implicit_conversion.html">&#25968;&#32452;&#21040;&#25351;&#38024;</a>&#30340;&#38544;&#24335;&#36716;&#25442;&#65292;&#21487;&#20197;&#20197;&#25968;&#32452;&#31867;&#22411;&#30340;&#34920;&#36798;&#24335;&#21021;&#22987;&#21270;&#25351;&#21521;&#25968;&#32452;&#39318;&#20803;&#32032;&#30340;&#25351;&#38024;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><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="kw4">int</span><span class="sy2">*</span> p1 <span class="sy1">=</span> a<span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#25968;&#32452; a &#39318;&#20803;&#32032; a[0]&#65288;&#19968;&#20010; int&#65289;&#30340;&#25351;&#38024;</span>
<span class="kw4">int</span> b<span class="br0">[</span><span class="nu0">6</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">8</span><span class="br0">]</span><span class="sy4">;</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">8</span><span class="br0">]</span> <span class="sy1">=</span> b<span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#25968;&#32452; b &#39318;&#20803;&#32032; b[0] &#30340;&#25351;&#38024;&#65292;</span>
<span class="co1">// &#34987;&#25351;&#32773;&#20026;&#21547;&#26377; 3 &#20010;&#12304;&#21547;&#26377; 8 &#20010; int &#20803;&#32032;&#30340;&#25968;&#32452;&#12305;&#20803;&#32032;&#30340;&#25968;&#32452;</span></pre></div>
</div>
<p>&#30001;&#20110;&#23384;&#22312;&#25351;&#38024;&#30340;<a href="cpp-language-implicit_conversion.html">&#27966;&#29983;&#31867;&#21040;&#22522;&#31867;</a>&#30340;&#38544;&#24335;&#36716;&#25442;&#65292;&#21487;&#20197;&#20197;&#27966;&#29983;&#31867;&#30340;&#22320;&#22336;&#21021;&#22987;&#21270;&#25351;&#21521;&#22522;&#31867;&#30340;&#25351;&#38024;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> Base <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> Derived <span class="sy4">:</span> Base <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
Derived d<span class="sy4">;</span>
Base<span class="sy2">*</span> p <span class="sy1">=</span> <span class="sy3">&amp;</span>d<span class="sy4">;</span></pre></div>
</div>
<p>&#22914;&#26524; <code>Derived</code> &#26159;<a href="cpp-language-object.html#.E5.A4.9A.E6.80.81.E5.AF.B9.E8.B1.A1">&#22810;&#24577;&#30340;</a>&#65292;&#37027;&#20040;&#36825;&#31181;&#25351;&#38024;&#21487;&#29992;&#20110;&#36827;&#34892;<a href="cpp-language-virtual.html">&#34394;&#20989;&#25968;&#35843;&#29992;</a>&#12290;</p>
<p>&#26576;&#20123;<a href="cpp-language-operator_arithmetic.html#.E5.8A.A0.E6.B3.95.E6.80.A7.E8.BF.90.E7.AE.97.E7.AC.A6">&#21152;&#27861;&#12289;&#20943;&#27861;</a>&#12289;<a href="cpp-language-operator_incdec.html">&#33258;&#22686;&#21644;&#33258;&#20943;</a>&#36816;&#31639;&#31526;&#23545;&#20110;&#25351;&#21521;&#25968;&#32452;&#20803;&#32032;&#30340;&#25351;&#38024;&#26377;&#23450;&#20041;&#65306;&#36825;&#31181;&#25351;&#38024;&#28385;&#36275;<a href="cpp-named_req-RandomAccessIterator.html"><span style="font-style:italic">&#32769;&#24335;&#38543;&#26426;&#35775;&#38382;&#36845;&#20195;&#22120;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(LegacyRandomAccessIterator)</span></a> &#35201;&#27714;&#65292;&#24182;&#20351;&#24471; C++ &#24211;<a href="cpp-algorithm.html">&#31639;&#27861;</a>&#21487;&#20197;&#29992;&#20110;&#21407;&#22987;&#25968;&#32452;&#12290;</p>
<p>&#26576;&#20123;&#24773;&#20917;&#19979;&#65292;<a href="cpp-language-operator_comparison.html#.E6.8C.87.E9.92.88.E6.AF.94.E8.BE.83.E8.BF.90.E7.AE.97.E7.AC.A6">&#27604;&#36739;&#36816;&#31639;&#31526;</a>&#23545;&#25351;&#38024;&#26377;&#23450;&#20041;&#65306;&#20004;&#20010;&#34920;&#31034;&#30456;&#21516;&#22320;&#22336;&#30340;&#25351;&#38024;&#27604;&#36739;&#30456;&#31561;&#65292;&#20004;&#20010;&#31354;&#25351;&#38024;&#20540;&#27604;&#36739;&#30456;&#31561;&#65292;&#25351;&#21521;&#21516;&#19968;&#25968;&#32452;&#20013;&#30340;&#20803;&#32032;&#30340;&#25351;&#38024;&#30340;&#27604;&#36739;&#19982;&#21508;&#20803;&#32032;&#30340;&#25968;&#32452;&#19979;&#26631;&#30340;&#27604;&#36739;&#26041;&#24335;&#30456;&#21516;&#65292;&#32780;&#25351;&#21521;&#25317;&#26377;&#30456;&#21516;<a href="cpp-language-access.html">&#25104;&#21592;&#35775;&#38382;</a>&#30340;&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592;&#30340;&#25351;&#38024;&#20197;&#21508;&#25104;&#21592;&#30340;&#22768;&#26126;&#39034;&#24207;&#36827;&#34892;&#27604;&#36739;&#12290;</p>
<p>&#22810;&#25968;&#23454;&#29616;&#20063;&#20026;&#38543;&#26426;&#26469;&#28304;&#30340;&#25351;&#38024;&#25552;&#20379;<a href="https://en.wikipedia.org/wiki/Total_order#Strict_total_order" class="extiw" title="enwiki:Total order">&#20005;&#26684;&#20840;&#24207;</a>&#65292;&#20363;&#22914;&#23558;&#23427;&#20204;&#23454;&#29616;&#20026;&#36830;&#32493;&#34394;&#25311;&#22320;&#22336;&#31354;&#38388;&#20013;&#30340;&#22320;&#22336;&#12290;&#26410;&#33021;&#20570;&#21040;&#30340;&#23454;&#29616;&#65288;&#20363;&#22914;&#65292;&#20854;&#20013;&#24182;&#38750;&#25351;&#38024;&#30340;&#25152;&#26377;&#20301;&#37117;&#26159;&#20869;&#23384;&#22320;&#22336;&#30340;&#19968;&#37096;&#20998;&#22240;&#32780;&#22312;&#27604;&#36739;&#26102;&#24517;&#39035;&#24573;&#30053;&#20043;&#65292;&#25110;&#32773;&#35201;&#27714;&#38468;&#24102;&#30340;&#35745;&#31639;&#65292;&#25110;&#32773;&#25351;&#38024;&#19982;&#25972;&#25968;&#24182;&#38750;&#19968;&#23545;&#19968;&#20851;&#31995;&#65289;&#65292;&#20026;&#25351;&#38024;&#25552;&#20379;&#20102;&#20855;&#26377;&#27492;&#39033;&#20445;&#35777;&#30340; <span class="t-lc"><a href="cpp-utility-functional-less.html">std::less</a></span> &#29305;&#21270;&#12290;&#36825;&#20351;&#24471;&#21487;&#22312;&#20851;&#32852;&#23481;&#22120;&#65288;&#22914; <span class="t-lc"><a href="cpp-container-set.html">std::set</a></span> &#25110; <span class="t-lc"><a href="cpp-container-map.html">std::map</a></span>&#65289;&#20013;&#20351;&#29992;&#25152;&#26377;&#38543;&#26426;&#26469;&#28304;&#30340;&#25351;&#38024;&#12290;</p>
<h4><span class="mw-headline" id=".E6.8C.87.E5.90.91_void_.E7.9A.84.E6.8C.87.E9.92.88">&#25351;&#21521; void &#30340;&#25351;&#38024;</span></h4>
<p>&#25351;&#21521;&#20219;&#24847;&#31867;&#22411;&#23545;&#35937;&#30340;&#25351;&#38024;&#37117;&#21487;&#20197;&#34987;<a href="cpp-language-implicit_conversion.html">&#38544;&#24335;&#36716;&#25442;&#25104;</a>&#25351;&#21521; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span></span></span> &#30340;&#25351;&#38024;&#65288;&#21487;&#26377; <a href="cpp-language-cv.html">cv &#38480;&#23450;</a>&#65289;&#65307;&#19981;&#25913;&#21464;&#20854;&#20540;&#12290;&#36870;&#21521;&#30340;&#36716;&#25442;&#35201;&#27714; <a href="cpp-language-static_cast.html">static_cast</a> &#25110;<a href="cpp-language-explicit_cast.html">&#26174;&#24335;&#36716;&#22411;</a>&#65292;&#24182;&#29983;&#25104;&#20854;&#21407;&#25351;&#38024;&#20540;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span>
<span class="kw4">int</span><span class="sy2">*</span> p1 <span class="sy1">=</span> <span class="sy3">&amp;</span>n<span class="sy4">;</span>
<span class="kw4">void</span><span class="sy2">*</span> pv <span class="sy1">=</span> p1<span class="sy4">;</span>
<span class="kw4">int</span><span class="sy2">*</span> p2 <span class="sy1">=</span> <span class="kw1">static_cast</span><span class="sy1">&lt;</span><span class="kw4">int</span><span class="sy2">*</span><span class="sy1">&gt;</span><span class="br0">(</span>pv<span class="br0">)</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="sy2">*</span>p2 <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360; 1</span></pre></div>
</div>
<p>&#22914;&#26524;&#21407;&#25351;&#38024;&#25351;&#21521;&#26576;&#22810;&#24577;&#31867;&#22411;&#23545;&#35937;&#20013;&#30340;&#22522;&#31867;&#23376;&#23545;&#35937;&#65292;&#21017;&#21487;&#29992; <a href="cpp-language-dynamic_cast.html">dynamic_cast</a> &#33719;&#24471;&#25351;&#21521;&#26368;&#32456;&#27966;&#29983;&#31867;&#22411;&#30340;&#23436;&#25972;&#23545;&#35937;&#30340; <code>void*</code>&#12290;</p>
<p>&#25351;&#21521; void &#30340;&#25351;&#38024;&#19982;&#25351;&#21521; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char</span></span></span> &#30340;&#25351;&#38024;&#25317;&#26377;&#30456;&#21516;&#30340;&#22823;&#23567;&#12289;&#34920;&#31034;&#21450;&#23545;&#40784;&#12290;</p>
<p>void &#25351;&#38024;&#34987;&#29992;&#26469;&#20256;&#36882;&#26410;&#30693;&#31867;&#22411;&#30340;&#23545;&#35937;&#65292;&#36825;&#22312; C &#25509;&#21475;&#20013;&#24120;&#35265;&#65306;<span class="t-lc"><a href="cpp-memory-c-malloc.html">std::malloc</a></span> &#36820;&#22238; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span><span class="sy2">*</span></span></span>&#65292;<span class="t-lc"><a href="cpp-algorithm-qsort.html">std::qsort</a></span> &#26399;&#24453;&#25509;&#21463;&#20004;&#20010; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> <span class="kw4">void</span><span class="sy2">*</span></span></span> &#21442;&#25968;&#30340;&#29992;&#25143;&#25552;&#20379;&#22238;&#35843;&#12290;<a rel="nofollow" class="external text" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_create.html">pthread_create</a> &#26399;&#24453;&#25509;&#21463;&#24182;&#36820;&#22238; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span><span class="sy2">*</span></span></span> &#30340;&#29992;&#25143;&#25552;&#20379;&#30340;&#22238;&#35843;&#12290;&#25152;&#26377;&#24773;&#20917;&#19979;&#65292;&#35843;&#29992;&#26041;&#36127;&#36131;&#22312;&#20351;&#29992;&#21069;&#23558;&#25351;&#38024;&#36716;&#22411;&#21040;&#27491;&#30830;&#31867;&#22411;&#12290;</p>
<h4><span class="mw-headline" id=".E5.87.BD.E6.95.B0.E6.8C.87.E9.92.88">&#20989;&#25968;&#25351;&#38024;</span></h4>
<p>&#20989;&#25968;&#25351;&#38024;&#33021;&#20197;&#38750;&#25104;&#21592;&#20989;&#25968;&#25110;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968;&#30340;&#22320;&#22336;&#21021;&#22987;&#21270;&#12290;&#30001;&#20110;&#23384;&#22312;<a href="cpp-language-implicit_conversion.html">&#20989;&#25968;&#21040;&#25351;&#38024;</a>&#30340;&#38544;&#24335;&#36716;&#25442;&#65292;&#21462;&#22336;&#36816;&#31639;&#31526;&#21487;&#20197;&#24573;&#30053;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">void</span> <span class="br0">(</span><span class="sy2">*</span>p1<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>f<span class="sy4">;</span>
<span class="kw4">void</span> <span class="br0">(</span><span class="sy2">*</span>p2<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> f<span class="sy4">;</span> <span class="co1">// &#19982; &amp;f &#30456;&#21516;</span></pre></div>
</div>
<p>&#19981;&#21516;&#20110;&#20989;&#25968;&#25110;&#20989;&#25968;&#30340;&#24341;&#29992;&#65292;&#20989;&#25968;&#25351;&#38024;&#26159;&#23545;&#35937;&#65292;&#20174;&#32780;&#33021;&#23384;&#20648;&#20110;&#25968;&#32452;&#12289;&#34987;&#22797;&#21046;&#12289;&#34987;&#36171;&#20540;&#31561;&#12290;</p>
<table class="wikitable">
<tr>
<th>&#35821;&#27861;</th>
<th>&#21547;&#20041;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span> f<span class="br0">)</span><span class="br0">(</span><span class="br0">)</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">f</span></span> &#26159;&#19968;&#20010;&#25351;&#21521;&#19968;&#20010;&#12304;&#21407;&#22411;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> func<span class="br0">(</span><span class="br0">)</span></span></span> &#30340;&#20989;&#25968;&#12305;&#30340;&#25351;&#38024;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span> f<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">f</span></span> &#26159;&#19968;&#20010;&#26080;&#21442;&#19988;&#36820;&#22238;&#19968;&#20010;&#12304;&#25351;&#21521;&#19968;&#20010;&#21407;&#22411;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> func<span class="br0">(</span><span class="br0">)</span></span></span> &#30340;&#20989;&#25968;&#30340;&#25351;&#38024;&#12305;&#30340;&#20989;&#25968;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> <span class="sy2">*</span> f<span class="br0">(</span><span class="br0">)</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">f</span></span> &#26159;&#19968;&#20010;&#26080;&#21442;&#19988;&#36820;&#22238;&#19968;&#20010;&#12304;&#25351;&#21521; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span></span></span> &#30340;&#25351;&#38024;&#12305;&#30340;&#20989;&#25968;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span> a<span class="br0">[</span><span class="br0">]</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">a</span></span> &#26159;&#19968;&#20010;&#21547;&#26377;&#12304;&#25351;&#21521;&#21407;&#22411;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> func<span class="br0">(</span><span class="br0">)</span></span></span> &#30340;&#20989;&#25968;&#30340;&#25351;&#38024;&#12305;&#20803;&#32032;&#30340;&#25968;&#32452;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span> f<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="br0">[</span><span class="br0">]</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">f</span></span> &#26159;&#19968;&#20010;&#26080;&#21442;&#19988;&#36820;&#22238;&#19968;&#20010;&#12304;&#25351;&#21521;&#19968;&#20010;&#21547;&#26377; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span></span></span> &#20803;&#32032;&#30340;&#25968;&#32452;&#12305;&#30340;&#20989;&#25968;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> <span class="br0">(</span>f<span class="br0">[</span><span class="br0">]</span><span class="br0">)</span><span class="br0">(</span><span class="br0">)</span></span></span></td>
<td><i><b>&#38750;&#27861;</b></i>&#12290;&#20989;&#25968;&#26080;&#27861;&#20316;&#20026;&#25968;&#32452;&#20803;&#32032;&#12290;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> <span class="sy2">*</span> <span class="kw4">const</span> <span class="sy2">*</span><span class="br0">(</span><span class="sy2">*</span>g<span class="br0">)</span><span class="br0">(</span><span class="kw4">float</span><span class="br0">)</span></span></span></td>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">g</span></span> &#26159;&#19968;&#20010;&#25351;&#21521;&#19968;&#20010;&#12304;&#21407;&#22411;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> <span class="sy2">*</span> <span class="kw4">const</span> <span class="sy2">*</span> func<span class="br0">(</span><span class="kw4">float</span><span class="br0">)</span></span></span> &#30340;&#20989;&#25968;&#12305;&#30340;&#25351;&#38024;&#65292;
<p>&#35813;&#20989;&#25968;&#30340;&#36820;&#22238;&#20540; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span> <span class="sy2">*</span> <span class="kw4">const</span> <span class="sy2">*</span></span></span> &#26159;&#19968;&#20010;&#25351;&#21521;&#19968;&#20010;&#12304;&#25351;&#21521; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span></span></span> &#30340;&#21482;&#35835;&#25351;&#38024;&#12305;&#30340;&#25351;&#38024;&#12290;</p>
</td>
</tr>
</table>
<p>&#35201;&#20102;&#35299;&#26356;&#22810;&#20851;&#20110;&#20989;&#25968;&#65292;&#25351;&#38024;&#21644;&#20989;&#25968;&#25351;&#38024;&#30340;&#22768;&#26126;&#30340;&#20449;&#24687;&#65292;&#21487;&#21442;&#32771;<a href="cpp-language-declarations.html">&#22768;&#26126;</a>&#12290;</p>
<p>&#20989;&#25968;&#25351;&#38024;&#21487;&#29992;&#20316;<a href="cpp-language-operator_other.html">&#20989;&#25968;&#35843;&#29992;&#36816;&#31639;&#31526;</a>&#30340;&#24038;&#20391;&#25805;&#20316;&#25968;&#65292;&#36825;&#20250;&#35843;&#29992;&#34987;&#25351;&#21521;&#30340;&#20989;&#25968;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> f<span class="br0">(</span><span class="kw4">int</span> n<span class="br0">)</span>
<span class="br0">{</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<span class="kw1">return</span> n <span class="sy2">*</span> n<span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</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="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> f<span class="sy4">;</span>
<span class="kw4">int</span> x <span class="sy1">=</span> p<span class="br0">(</span><span class="nu0">7</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#35299;&#24341;&#29992;&#20989;&#25968;&#25351;&#38024;&#29983;&#25104;&#26631;&#35782;&#34987;&#25351;&#21521;&#20989;&#25968;&#30340;&#24038;&#20540;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">int</span> f<span class="br0">(</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="br0">)</span> <span class="sy1">=</span> f<span class="sy4">;</span> <span class="co1">// &#25351;&#38024; p &#25351;&#21521; f</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy3">&amp;</span>r<span class="br0">)</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy2">*</span>p<span class="sy4">;</span> <span class="co1">// &#23558;&#26631;&#35782; f &#30340;&#24038;&#20540;&#32465;&#23450;&#21040;&#24341;&#29992;</span>
r<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#36890;&#36807;&#24038;&#20540;&#24341;&#29992;&#35843;&#29992;&#20989;&#25968; f</span>
<span class="br0">(</span><span class="sy2">*</span>p<span class="br0">)</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#36890;&#36807;&#20989;&#25968;&#24038;&#20540;&#35843;&#29992;&#20989;&#25968; f</span>
p<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#30452;&#25509;&#36890;&#36807;&#25351;&#38024;&#35843;&#29992;&#20989;&#25968; f</span></pre></div>
</div>
<p>&#22914;&#26524;&#21482;&#26377;&#19968;&#20010;&#37325;&#36733;&#21305;&#37197;&#25351;&#38024;&#31867;&#22411;&#65292;&#37027;&#20040;&#20989;&#25968;&#25351;&#38024;&#21487;&#20197;&#20174;&#21487;&#21253;&#21547;&#20989;&#25968;&#12289;&#20989;&#25968;&#27169;&#26495;&#29305;&#21270;&#21450;&#20989;&#25968;&#27169;&#26495;&#30340;&#19968;&#20010;&#37325;&#36733;&#38598;&#36827;&#34892;&#21021;&#22987;&#21270;&#65288;&#32454;&#33410;&#35265;<a href="cpp-language-overloaded_address.html">&#37325;&#36733;&#20989;&#25968;&#30340;&#22320;&#22336;</a>&#65289;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">typename</span> T<span class="sy1">&gt;</span> T f<span class="br0">(</span>T n<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> n<span class="sy4">;</span> <span class="br0">}</span>
<span class="kw4">double</span> f<span class="br0">(</span><span class="kw4">double</span> n<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> n<span class="sy4">;</span> <span class="br0">}</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</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="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> f<span class="sy4">;</span> <span class="co1">// &#23454;&#20363;&#21270;&#24182;&#36873;&#25321; f&lt;int&gt;</span>
<span class="br0">}</span></pre></div>
</div>
<p><a href="cpp-language-operator_comparison.html#.E6.8C.87.E9.92.88.E6.AF.94.E8.BE.83.E8.BF.90.E7.AE.97.E7.AC.A6">&#30456;&#31561;&#27604;&#36739;&#36816;&#31639;&#31526;</a>&#23545;&#20110;&#20989;&#25968;&#25351;&#38024;&#26377;&#23450;&#20041;&#65288;&#22914;&#26524;&#25351;&#21521;&#21516;&#19968;&#20989;&#25968;&#65292;&#37027;&#20040;&#23427;&#20204;&#27604;&#36739;&#30456;&#31561;&#65289;&#12290;</p>
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E6.8C.87.E9.92.88">&#25104;&#21592;&#25351;&#38024;</span></h3>
<h4><span class="mw-headline" id=".E6.95.B0.E6.8D.AE.E6.88.90.E5.91.98.E6.8C.87.E9.92.88">&#25968;&#25454;&#25104;&#21592;&#25351;&#38024;</span></h4>
<p>&#25351;&#21521;&#20316;&#20026;&#31867; <code>C</code> &#30340;&#25104;&#21592;&#30340;&#38750;&#38745;&#24577;&#25968;&#25454;&#25104;&#21592; <code>m</code> &#30340;&#25351;&#38024;&#65292;&#33021;&#20934;&#30830;&#22320;&#20197;&#34920;&#36798;&#24335; <code>&amp;C::m</code> &#21021;&#22987;&#21270;&#12290;&#22312; C &#30340;&#25104;&#21592;&#20989;&#25968;&#20013;&#65292;&#22914; <code>&amp;(C::m)</code> &#25110; <code>&amp;m</code> &#36825;&#26679;&#30340;&#34920;&#36798;&#24335;&#19981;&#26500;&#25104;&#25351;&#21521;&#25104;&#21592;&#25351;&#38024;&#12290;</p>
<p>&#36825;&#31181;&#25351;&#38024;&#33021;&#29992;&#20316;<a href="cpp-language-operator_member_access.html">&#25104;&#21592;&#25351;&#38024;&#35775;&#38382;&#36816;&#31639;&#31526;</a> <code>operator.*</code> &#19982; <code>operator-&gt;*</code> &#30340;&#21491;&#20391;&#25805;&#20316;&#25968;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> C <span class="br0">{</span> <span class="kw4">int</span> m<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">int</span> C<span class="sy4">::</span><span class="sy2">*</span> p <span class="sy1">=</span> <span class="sy3">&amp;</span>C<span class="sy4">::</span><span class="me2">m</span><span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#31867; C &#30340;&#25968;&#25454;&#25104;&#21592; m</span>
C c <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">7</span><span class="br0">}</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> c.<span class="sy2">*</span>p <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360; 7</span>
C<span class="sy2">*</span> cp <span class="sy1">=</span> <span class="sy3">&amp;</span>c<span class="sy4">;</span>
cp<span class="sy2">-</span><span class="sy1">&gt;</span>m <span class="sy1">=</span> <span class="nu0">10</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> cp<span class="sy2">-</span><span class="sy1">&gt;</span><span class="sy2">*</span>p <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360; 10</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#25351;&#21521;&#19968;&#20010;&#21487;&#35775;&#38382;&#19988;&#26080;&#27495;&#20041;&#30340;&#38750;&#34394;&#22522;&#31867;&#30340;&#25968;&#25454;&#25104;&#21592;&#30340;&#25351;&#38024;&#65292;&#21487;&#20197;<a href="cpp-language-implicit_conversion.html">&#38544;&#24335;&#36716;&#25442;</a>&#25104;&#25351;&#21521;&#27966;&#29983;&#31867;&#30340;&#21516;&#19968;&#25968;&#25454;&#25104;&#21592;&#30340;&#25351;&#38024;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> Base <span class="br0">{</span> <span class="kw4">int</span> m<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> Derived <span class="sy4">:</span> Base <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">int</span> Base<span class="sy4">::</span><span class="sy2">*</span> bp <span class="sy1">=</span> <span class="sy3">&amp;</span>Base<span class="sy4">::</span><span class="me2">m</span><span class="sy4">;</span>
<span class="kw4">int</span> Derived<span class="sy4">::</span><span class="sy2">*</span> dp <span class="sy1">=</span> bp<span class="sy4">;</span>
Derived d<span class="sy4">;</span>
d.<span class="me1">m</span> <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> d.<span class="sy2">*</span>dp <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span> <span class="sy1">&lt;&lt;</span> d.<span class="sy2">*</span>bp <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360; 1 1</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#30456;&#21453;&#26041;&#21521;&#30340;&#36716;&#25442;&#65292;&#21363;&#20174;&#25351;&#21521;&#27966;&#29983;&#31867;&#30340;&#25968;&#25454;&#25104;&#21592;&#30340;&#25351;&#38024;&#21040;&#25351;&#21521;&#26080;&#27495;&#20041;&#38750;&#34394;&#22522;&#31867;&#30340;&#25968;&#25454;&#25104;&#21592;&#30340;&#25351;&#38024;&#65292;&#20801;&#35768;&#30001; <a href="cpp-language-static_cast.html">static_cast</a> &#21644;<a href="cpp-language-explicit_cast.html">&#26174;&#24335;&#36716;&#22411;</a>&#26469;&#36827;&#34892;&#65292;&#21363;&#20351;&#22522;&#31867;&#24182;&#26080;&#35813;&#25104;&#21592;&#65288;&#20294;&#24403;&#29992;&#35813;&#25351;&#38024;&#35775;&#38382;&#26102;&#65292;&#26368;&#32456;&#27966;&#29983;&#31867;&#20013;&#26377;&#65289;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> Base <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> Derived <span class="sy4">:</span> Base <span class="br0">{</span> <span class="kw4">int</span> m<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">int</span> Derived<span class="sy4">::</span><span class="sy2">*</span> dp <span class="sy1">=</span> <span class="sy3">&amp;</span>Derived<span class="sy4">::</span><span class="me2">m</span><span class="sy4">;</span>
<span class="kw4">int</span> Base<span class="sy4">::</span><span class="sy2">*</span> bp <span class="sy1">=</span> <span class="kw1">static_cast</span><span class="sy1">&lt;</span><span class="kw4">int</span> Base<span class="sy4">::</span><span class="sy2">*</span><span class="sy1">&gt;</span><span class="br0">(</span>dp<span class="br0">)</span><span class="sy4">;</span>
Derived d<span class="sy4">;</span>
d.<span class="me1">m</span> <span class="sy1">=</span> <span class="nu0">7</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> d.<span class="sy2">*</span>bp <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#25171;&#21360; 7</span>
Base b<span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> b.<span class="sy2">*</span>bp <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="co1">// &#26410;&#23450;&#20041;&#34892;&#20026;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#25104;&#21592;&#25351;&#38024;&#30340;&#34987;&#25351;&#21521;&#31867;&#22411;&#20063;&#21487;&#20197;&#26159;&#25104;&#21592;&#25351;&#38024;&#33258;&#36523;&#65306;&#25104;&#21592;&#25351;&#38024;&#21487;&#20026;&#22810;&#32423;&#65292;&#32780;&#19988;&#22312;&#27599;&#32423;&#21487;&#20197;&#26377;&#19981;&#21516;&#30340; cv &#38480;&#23450;&#12290;&#25351;&#38024;&#21644;&#25104;&#21592;&#25351;&#38024;&#30340;&#28151;&#21512;&#20063;&#21487;&#20197;&#22810;&#32423;&#32452;&#21512;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> A
<span class="br0">{</span>
<span class="kw4">int</span> m<span class="sy4">;</span>
<span class="co1">// &#25351;&#21521;&#38750; const &#25104;&#21592;&#30340; const &#25351;&#38024;</span>
<span class="kw4">int</span> A<span class="sy4">::</span><span class="sy2">*</span> <span class="kw4">const</span> p<span class="sy4">;</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="co1">// &#25351;&#21521;&#65288;A &#30340;&#65289;&#25968;&#25454;&#25104;&#21592;&#30340;&#38750; const &#25351;&#38024;</span>
<span class="co1">// &#35813;&#25104;&#21592;&#26159;&#19968;&#20010;&#25351;&#21521;&#12304;&#65288;A &#30340;&#65289;&#38750; const &#25104;&#21592;&#12305;&#30340; const &#25351;&#38024;</span>
<span class="kw4">int</span> A<span class="sy4">::</span><span class="sy2">*</span> <span class="kw4">const</span> A<span class="sy4">::</span><span class="sy2">*</span> p1 <span class="sy1">=</span> <span class="sy3">&amp;</span>A<span class="sy4">::</span><span class="me2">p</span><span class="sy4">;</span>
<span class="kw4">const</span> A a <span class="sy1">=</span> <span class="br0">{</span><span class="nu0">1</span>, <span class="sy3">&amp;</span>A<span class="sy4">::</span><span class="me2">m</span><span class="br0">}</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> a.<span class="sy2">*</span><span class="br0">(</span>a.<span class="sy2">*</span>p1<span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360; 1</span>
<span class="co1">// &#25351;&#21521;&#19968;&#20010;&#12304;&#25351;&#21521;&#65288;A &#30340;&#65289;&#38750; const &#25104;&#21592;&#30340; const &#25351;&#38024;&#12305;&#30340;&#24120;&#35268;&#38750; const &#25351;&#38024;</span>
<span class="kw4">int</span> A<span class="sy4">::</span><span class="sy2">*</span> <span class="kw4">const</span><span class="sy2">*</span> p2 <span class="sy1">=</span> <span class="sy3">&amp;</span>a.<span class="me1">p</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> a.<span class="sy2">**</span>p2 <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360; 1</span>
<span class="br0">}</span></pre></div>
</div>
<h4><span class="mw-headline" id=".E6.88.90.E5.91.98.E5.87.BD.E6.95.B0.E6.8C.87.E9.92.88">&#25104;&#21592;&#20989;&#25968;&#25351;&#38024;</span></h4>
<p>&#25351;&#21521;&#20316;&#20026;&#31867; <code>C</code> &#30340;&#25104;&#21592;&#30340;&#38750;&#38745;&#24577;&#25104;&#21592;&#20989;&#25968; <code>f</code> &#30340;&#25351;&#38024;&#65292;&#33021;&#20934;&#30830;&#22320;&#20197;&#34920;&#36798;&#24335; <code>&amp;C::f</code> &#21021;&#22987;&#21270;&#12290;&#22312; <code>C</code> &#30340;&#25104;&#21592;&#20989;&#25968;&#20869;&#65292;&#22914; <code>&amp;(C::f)</code> &#25110; <code>&amp;f</code>&#65292;&#36825;&#26679;&#30340;&#34920;&#36798;&#24335;&#19981;&#26500;&#25104;&#25104;&#21592;&#20989;&#25968;&#25351;&#38024;&#12290;</p>
<p>&#36825;&#31181;&#25351;&#38024;&#21487;&#20197;&#29992;&#20316;<a href="cpp-language-operator_member_access.html">&#25104;&#21592;&#25351;&#38024;&#35775;&#38382;&#36816;&#31639;&#31526;</a> <code>operator.*</code> &#19982; <code>operator-&gt;*</code> &#30340;&#21491;&#25805;&#20316;&#25968;&#12290;&#20854;<a href="cpp-language-value_category.html#.E6.9C.AA.E5.86.B3.E6.88.90.E5.91.98.E5.87.BD.E6.95.B0.E8.B0.83.E7.94.A8">&#32467;&#26524;&#34920;&#36798;&#24335;</a>&#21482;&#33021;&#29992;&#20316;&#20989;&#25968;&#35843;&#29992;&#36816;&#31639;&#31526;&#30340;&#24038;&#20391;&#25805;&#20316;&#25968;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> C
<span class="br0">{</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">int</span> n<span class="br0">)</span> <span class="br0">{</span> <a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">void</span> <span class="br0">(</span>C<span class="sy4">::</span><span class="sy2">*</span> p<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>C<span class="sy4">::</span><span class="me2">f</span><span class="sy4">;</span> <span class="co1">// &#25351;&#21521;&#31867; C &#30340;&#25104;&#21592;&#20989;&#25968; f &#30340;&#25351;&#38024;</span>
C c<span class="sy4">;</span>
<span class="br0">(</span>c.<span class="sy2">*</span>p<span class="br0">)</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360; 1</span>
C<span class="sy2">*</span> cp <span class="sy1">=</span> <span class="sy3">&amp;</span>c<span class="sy4">;</span>
<span class="br0">(</span>cp<span class="sy2">-</span><span class="sy1">&gt;</span><span class="sy2">*</span>p<span class="br0">)</span><span class="br0">(</span><span class="nu0">2</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#25171;&#21360; 2</span>
<span class="br0">}</span></pre></div>
</div>
<p><br />
&#25351;&#21521;&#22522;&#31867;&#30340;&#25104;&#21592;&#20989;&#25968;&#30340;&#25351;&#38024;&#21487;&#20197;<a href="cpp-language-implicit_conversion.html">&#38544;&#24335;&#36716;&#25442;</a>&#25104;&#25351;&#21521;&#27966;&#29983;&#31867;&#30340;&#21516;&#19968;&#25104;&#21592;&#20989;&#25968;&#30340;&#25351;&#38024;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> Base
<span class="br0">{</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">int</span> n<span class="br0">)</span> <span class="br0">{</span> <a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> Derived <span class="sy4">:</span> Base <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">void</span> <span class="br0">(</span>Base<span class="sy4">::</span><span class="sy2">*</span> bp<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>Base<span class="sy4">::</span><span class="me2">f</span><span class="sy4">;</span>
<span class="kw4">void</span> <span class="br0">(</span>Derived<span class="sy4">::</span><span class="sy2">*</span> dp<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> bp<span class="sy4">;</span>
Derived d<span class="sy4">;</span>
<span class="br0">(</span>d.<span class="sy2">*</span>dp<span class="br0">)</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">(</span>d.<span class="sy2">*</span>bp<span class="br0">)</span><span class="br0">(</span><span class="nu0">2</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#30456;&#21453;&#26041;&#21521;&#30340;&#36716;&#25442;&#65292;&#21363;&#20174;&#25351;&#21521;&#27966;&#29983;&#31867;&#30340;&#25104;&#21592;&#20989;&#25968;&#30340;&#25351;&#38024;&#21040;&#25351;&#21521;&#26080;&#27495;&#20041;&#38750;&#34394;&#22522;&#31867;&#30340;&#25104;&#21592;&#20989;&#25968;&#30340;&#25351;&#38024;&#65292;&#20801;&#35768;&#30001; <a href="cpp-language-static_cast.html">static_cast</a> &#19982;<a href="cpp-language-explicit_cast.html">&#26174;&#24335;&#36716;&#22411;</a>&#26469;&#36827;&#34892;&#65292;&#21363;&#20351;&#22522;&#31867;&#27809;&#26377;&#35813;&#25104;&#21592;&#20989;&#25968;&#65288;&#20294;&#22312;&#29992;&#35813;&#25351;&#38024;&#36827;&#34892;&#35775;&#38382;&#26102;&#65292;&#26368;&#32456;&#27966;&#29983;&#31867;&#26377;&#65289;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">struct</span> Base <span class="br0">{</span><span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> Derived <span class="sy4">:</span> Base
<span class="br0">{</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">int</span> n<span class="br0">)</span> <span class="br0">{</span> <a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span> <span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">void</span> <span class="br0">(</span>Derived<span class="sy4">::</span><span class="sy2">*</span> dp<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> <span class="sy3">&amp;</span>Derived<span class="sy4">::</span><span class="me2">f</span><span class="sy4">;</span>
<span class="kw4">void</span> <span class="br0">(</span>Base<span class="sy4">::</span><span class="sy2">*</span> bp<span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span> <span class="sy1">=</span> <span class="kw1">static_cast</span><span class="sy1">&lt;</span><span class="kw4">void</span> <span class="br0">(</span>Base<span class="sy4">::</span><span class="sy2">*</span><span class="br0">)</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span><span class="sy1">&gt;</span><span class="br0">(</span>dp<span class="br0">)</span><span class="sy4">;</span>
Derived d<span class="sy4">;</span>
<span class="br0">(</span>d.<span class="sy2">*</span>bp<span class="br0">)</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#25171;&#21360; 1</span>
Base b<span class="sy4">;</span>
<span class="br0">(</span>b.<span class="sy2">*</span>bp<span class="br0">)</span><span class="br0">(</span><span class="nu0">2</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#26410;&#23450;&#20041;&#34892;&#20026;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#25104;&#21592;&#20989;&#25968;&#25351;&#38024;&#21487;&#29992;&#20316;&#22238;&#35843;&#25110;&#20989;&#25968;&#23545;&#35937;&#65292;&#36890;&#24120;&#22312;&#24212;&#29992; <span class="t-lc"><a href="cpp-utility-functional-mem_fn.html">std::mem_fn</a></span> &#25110; <span class="t-lc"><a href="cpp-utility-functional-bind.html">std::bind</a></span> &#20043;&#21518;&#65306;</p>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;iostream&gt;</span>
<span class="co2">#include &lt;string&gt;</span>
<span class="co2">#include &lt;algorithm&gt;</span>
<span class="co2">#include &lt;functional&gt;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<a href="cpp-container-vector.html"><span class="kw1269">std::<span class="me2">vector</span></span></a><span class="sy1">&lt;</span><a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a><span class="sy1">&gt;</span> v <span class="sy1">=</span> <span class="br0">{</span><span class="st0">&quot;a&quot;</span>, <span class="st0">&quot;ab&quot;</span>, <span class="st0">&quot;abc&quot;</span><span class="br0">}</span><span class="sy4">;</span>
<a href="cpp-container-vector.html"><span class="kw1269">std::<span class="me2">vector</span></span></a><span class="sy1">&lt;</span><a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a><span class="sy1">&gt;</span> l<span class="sy4">;</span>
transform<span class="br0">(</span>v.<span class="me1">begin</span><span class="br0">(</span><span class="br0">)</span>, v.<span class="me1">end</span><span class="br0">(</span><span class="br0">)</span>, <a href="cpp-iterator-back_inserter.html"><span class="kw665">std::<span class="me2">back_inserter</span></span></a><span class="br0">(</span>l<span class="br0">)</span>,
<a href="cpp-utility-functional-mem_fn.html"><span class="kw1057">std::<span class="me2">mem_fn</span></span></a><span class="br0">(</span><span class="sy3">&amp;</span>std<span class="sy4">::</span><span class="me2">string</span><span class="sy4">::</span><span class="me2">size</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">for</span><span class="br0">(</span><a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a> n <span class="sy4">:</span> l<span class="br0">)</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> n <span class="sy1">&lt;&lt;</span> <span class="st0">&#39; &#39;</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">1 2 3</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E7.A9.BA.E6.8C.87.E9.92.88">&#31354;&#25351;&#38024;</span></h3>
<p>&#27599;&#20010;&#31867;&#22411;&#30340;&#25351;&#38024;&#37117;&#25317;&#26377;&#19968;&#20010;&#29305;&#27530;&#20540;&#65292;&#31216;&#20026;&#35813;&#31867;&#22411;&#30340;<i>&#31354;&#25351;&#38024;&#20540;&#65288;null pointer value&#65289;</i>&#12290;&#20540;&#20026;&#31354;&#30340;&#25351;&#38024;&#19981;&#25351;&#21521;&#23545;&#35937;&#25110;&#20989;&#25968;&#65288;&#35299;&#24341;&#29992;&#31354;&#25351;&#38024;&#26159;&#26410;&#23450;&#20041;&#34892;&#20026;&#65289;&#65292;&#24182;&#19982;&#25152;&#26377;&#20540;&#21516;&#26679;&#20026;<i>&#31354;</i>&#30340;&#21516;&#31867;&#22411;&#25351;&#38024;&#27604;&#36739;&#30456;&#31561;&#12290;</p>
<p>&#20026;&#23558;&#25351;&#38024;&#21021;&#22987;&#21270;&#20026;&#31354;&#25110;&#36171;&#31354;&#20540;&#32473;&#26082;&#23384;&#25351;&#38024;&#65292;&#21487;&#20197;&#20351;&#29992;&#31354;&#25351;&#38024;&#23383;&#38754;&#37327; <span class="t-c"><span class="mw-geshi cpp source-cpp">nullptr</span></span>&#12289;&#31354;&#25351;&#38024;&#24120;&#37327; <span class="t-lc"><a href="cpp-types-NULL.html">NULL</a></span> &#25110;&#20174;&#25972;&#25968;&#20540; <span class="t-c"><span class="mw-geshi cpp source-cpp">&#8203;<span class="nu0">0</span>&#8203;</span></span> &#30340;<a href="cpp-language-implicit_conversion.html">&#38544;&#24335;&#36716;&#25442;</a>&#12290;</p>
<p><a href="cpp-language-zero_initialization.html">&#38646;&#21021;&#22987;&#21270;</a>&#21644;<a href="cpp-language-value_initialization.html">&#20540;&#21021;&#22987;&#21270;</a>&#20063;&#21021;&#22987;&#21270;&#25351;&#38024;&#20026;&#20854;&#31354;&#20540;&#12290;</p>
<p>&#31354;&#25351;&#38024;&#21487;&#29992;&#20110;&#25351;&#31034;&#23545;&#35937;&#19981;&#23384;&#22312;&#65288;&#20363;&#22914; <a href="cpp-utility-functional-function-target.html"><tt>function::target()</tt></a>&#65289;&#65292;&#25110;&#20316;&#20026;&#20854;&#20182;&#38169;&#35823;&#26465;&#20214;&#30340;&#25351;&#31034;&#22120;&#65288;&#20363;&#22914; <a href="cpp-language-dynamic_cast.html">dynamic_cast</a>&#65289;&#12290;&#36890;&#24120;&#65292;&#25509;&#21463;&#25351;&#38024;&#23454;&#21442;&#30340;&#20989;&#25968;&#22987;&#32456;&#38656;&#35201;&#26816;&#26597;&#20540;&#26159;&#21542;&#20026;&#31354;&#65292;&#24182;&#20197;&#19981;&#21516;&#26041;&#24335;&#22788;&#29702;&#35813;&#24773;&#20917;&#65288;&#20363;&#22914;&#65292;<a href="cpp-language-delete.html">delete &#34920;&#36798;&#24335;</a>&#22312;&#20256;&#36882;&#31354;&#25351;&#38024;&#26102;&#19981;&#20570;&#20219;&#20309;&#20107;&#65289;&#12290;</p>
<h3><span class="mw-headline" id=".E5.B8.B8.E9.87.8F.E6.80.A7">&#24120;&#37327;&#24615;</span></h3>
<ul>
<li>&#22914;&#26524;&#25351;&#38024;&#22768;&#26126;&#20013; <span class="t-spar">&#38480;&#23450;&#31526;</span> &#22312; <code><b>*</b></code> &#20043;&#21069;&#20986;&#29616;&#65292;&#21017;&#23427;&#26159; <span class="t-spar">&#22768;&#26126;&#35828;&#26126;&#31526;&#24207;&#21015;</span> &#30340;&#19968;&#37096;&#20998;&#65292;&#24182;&#24212;&#29992;&#21040;&#34987;&#25351;&#21521;&#30340;&#23545;&#35937;&#12290;</li>
<li>&#33509;&#25351;&#38024;&#22768;&#26126;&#20013; <span class="t-spar">&#38480;&#23450;&#31526;</span> &#22312; <code><b>*</b></code> &#20043;&#21518;&#20986;&#29616;&#65292;&#21017;&#23427;&#26159; <span class="t-spar">&#22768;&#26126;&#31526;</span> &#30340;&#19968;&#37096;&#20998;&#65292;&#24182;&#24212;&#29992;&#21040;&#25152;&#22768;&#26126;&#30340;&#25351;&#38024;&#12290;</li>
</ul>
<table class="wikitable">
<tr>
<th>&#35821;&#27861;</th>
<th>&#21547;&#20041;</th>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> T<span class="sy2">*</span></span></span></td>
<td>&#25351;&#21521; const &#23545;&#35937;&#30340;&#25351;&#38024;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T <span class="kw4">const</span><span class="sy2">*</span></span></span></td>
<td>&#25351;&#21521; const &#23545;&#35937;&#30340;&#25351;&#38024;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T<span class="sy2">*</span> <span class="kw4">const</span></span></span></td>
<td>&#25351;&#21521;&#23545;&#35937;&#30340; const &#25351;&#38024;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> T<span class="sy2">*</span> <span class="kw4">const</span></span></span></td>
<td>&#25351;&#21521; const &#23545;&#35937;&#30340; const &#25351;&#38024;</td>
</tr>
<tr>
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">T <span class="kw4">const</span><span class="sy2">*</span> <span class="kw4">const</span></span></span></td>
<td>&#25351;&#21521; const &#23545;&#35937;&#30340; const &#25351;&#38024;</td>
</tr>
</table>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co1">// pc &#26159;&#19968;&#20010;&#25351;&#21521; const int &#30340;&#38750; const &#25351;&#38024;</span>
<span class="co1">// cpc &#26159;&#19968;&#20010;&#25351;&#21521; const int &#30340; const &#25351;&#38024;</span>
<span class="co1">// ppc &#26159;&#19968;&#20010;&#25351;&#21521;&#12304;&#19968;&#20010;&#25351;&#21521; const int &#30340;&#38750; const &#25351;&#38024;&#12305;&#30340;&#38750; const &#25351;&#38024;</span>
<span class="kw4">const</span> <span class="kw4">int</span> ci <span class="sy1">=</span> <span class="nu0">10</span>, <span class="sy2">*</span>pc <span class="sy1">=</span> <span class="sy3">&amp;</span>ci, <span class="sy2">*</span><span class="kw4">const</span> cpc <span class="sy1">=</span> pc, <span class="sy2">**</span>ppc<span class="sy4">;</span>
<span class="co1">// p &#26159;&#19968;&#20010;&#25351;&#21521;&#38750; const int &#30340;&#38750; const &#25351;&#38024;</span>
<span class="co1">// cp &#26159;&#19968;&#20010;&#25351;&#21521;&#38750; const int &#30340; const &#25351;&#38024;</span>
<span class="kw4">int</span> i, <span class="sy2">*</span>p, <span class="sy2">*</span><span class="kw4">const</span> cp <span class="sy1">=</span> <span class="sy3">&amp;</span>i<span class="sy4">;</span>
i <span class="sy1">=</span> ci<span class="sy4">;</span> <span class="co1">// OK&#65306;&#22797;&#21046; const int &#20540;&#21040;&#38750; const int</span>
<span class="sy2">*</span>cp <span class="sy1">=</span> ci<span class="sy4">;</span> <span class="co1">// OK&#65306;&#33021;&#65288;&#36890;&#36807; const &#25351;&#38024;&#65289;&#20462;&#25913;&#38750; const int</span>
pc<span class="sy2">++</span><span class="sy4">;</span> <span class="co1">// OK&#65306;&#33021;&#20462;&#25913;&#38750; const &#25351;&#38024;&#65288;&#25351;&#21521; const int&#65289;</span>
pc <span class="sy1">=</span> cpc<span class="sy4">;</span> <span class="co1">// OK&#65306;&#33021;&#20462;&#25913;&#38750; const &#25351;&#38024;&#65288;&#25351;&#21521; const int&#65289;</span>
pc <span class="sy1">=</span> p<span class="sy4">;</span> <span class="co1">// OK&#65306;&#33021;&#20462;&#25913;&#38750; const &#25351;&#38024;&#65288;&#25351;&#21521; const int&#65289;</span>
ppc <span class="sy1">=</span> <span class="sy3">&amp;</span>pc<span class="sy4">;</span> <span class="co1">// OK&#65306;const int &#30340;&#25351;&#38024;&#30340;&#22320;&#22336;&#26159; const int &#30340;&#25351;&#38024;&#30340;&#25351;&#38024;</span>
ci <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#19981;&#33021;&#20462;&#25913; const int</span>
ci<span class="sy2">++</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#19981;&#33021;&#20462;&#25913; const int</span>
<span class="sy2">*</span>pc <span class="sy1">=</span> <span class="nu0">2</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#19981;&#33021;&#20462;&#25913;&#34987;&#25351;&#21521;&#30340; const int</span>
cp <span class="sy1">=</span> <span class="sy3">&amp;</span>ci<span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#19981;&#33021;&#20462;&#25913; const &#25351;&#38024;&#65288;&#25351;&#21521;&#38750; const int&#65289;</span>
cpc<span class="sy2">++</span><span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#19981;&#33021;&#20462;&#25913; const &#25351;&#38024;&#65288;&#25351;&#21521; const int&#65289;</span>
p <span class="sy1">=</span> pc<span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;&#38750; const int &#30340;&#25351;&#38024;&#19981;&#33021;&#25351;&#21521; const int</span>
ppc <span class="sy1">=</span> <span class="sy3">&amp;</span>p<span class="sy4">;</span> <span class="co1">// &#38169;&#35823;&#65306;const int &#30340;&#25351;&#38024;&#30340;&#25351;&#38024;&#19981;&#33021;&#25351;&#21521;&#38750; const int &#30340;&#25351;&#38024;</span></pre></div>
</div>
<p>&#36890;&#24120;&#65292;&#20174;&#19968;&#20010;&#22810;&#32423;&#25351;&#38024;&#21040;&#21478;&#19968;&#20010;&#30340;&#38544;&#24335;&#36716;&#25442;&#36981;&#24490;<a href="cpp-language-implicit_conversion.html#.E9.99.90.E5.AE.9A.E8.BD.AC.E6.8D.A2">&#38480;&#23450;&#36716;&#25442;</a>&#21644;<a href="cpp-language-operator_comparison.html#.E6.8C.87.E9.92.88.E6.AF.94.E8.BE.83.E8.BF.90.E7.AE.97.E7.AC.A6">&#25351;&#38024;&#27604;&#36739;&#36816;&#31639;&#31526;</a>&#20013;&#25152;&#25551;&#36848;&#30340;&#35268;&#21017;&#12290;</p>
<h3><span class="mw-headline" id=".E7.BC.BA.E9.99.B7.E6.8A.A5.E5.91.8A">&#32570;&#38519;&#25253;&#21578;</span></h3>
<p>&#19979;&#21015;&#26356;&#25913;&#34892;&#20026;&#30340;&#32570;&#38519;&#25253;&#21578;&#36861;&#28335;&#22320;&#24212;&#29992;&#20110;&#20197;&#21069;&#20986;&#29256;&#30340; C++ &#26631;&#20934;&#12290;</p>
<table class="dsctable" style="font-size:0.8em">
<tr>
<th>DR</th>
<th>&#24212;&#29992;&#20110;</th>
<th>&#20986;&#29256;&#26102;&#30340;&#34892;&#20026;</th>
<th>&#27491;&#30830;&#34892;&#20026;</th>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue73">CWG 73</a></td>
<td>C++98</td>
<td>&#25351;&#21521;&#23545;&#35937;&#30340;&#25351;&#38024;&#19982;&#25351;&#21521;&#25968;&#32452;&#23614;&#21518;&#30340;&#25351;&#38024;&#26080;&#27861;&#27604;&#36739;&#30456;&#31561;&#65288;&#21363;&#20351;&#22320;&#22336;&#30456;&#21516;&#65289;</td>
<td>&#23545;&#38750;&#31354;&#38750;&#20989;&#25968;&#25351;&#38024;&#27604;&#36739;&#23427;&#20204;&#34920;&#31034;&#30340;&#22320;&#22336;</td>
</tr>
</table>
<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>