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

288 lines
33 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>&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;</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_string_literal skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;</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">
<h3><span class="mw-headline" id=".E8.AF.AD.E6.B3.95">&#35821;&#27861;</span></h3>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>&quot;</b></code><span class="t-spar">s&#23383;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span><code><b>&quot;</b></code></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>L&quot;</b></code><span class="t-spar">s&#23383;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span><code><b>&quot;</b></code></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>u8&quot;</b></code><span class="t-spar">s&#23383;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span><code><b>&quot;</b></code></td>
<td>(3)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>u&quot;</b></code><span class="t-spar">s&#23383;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span><code><b>&quot;</b></code></td>
<td>(4)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>U&quot;</b></code><span class="t-spar">s&#23383;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span><code><b>&quot;</b></code></td>
<td>(5)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#21069;&#32512;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>R&quot;</b></code><span class="t-spar">d&#23383;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span><code><b>(</b></code><span class="t-spar">r&#23383;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span><code><b>)</b></code><span class="t-spar">d&#23383;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span><code><b>&quot;</b></code></td>
<td>(6)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">s&#23383;&#31526;&#24207;&#21015;</span></td>
<td>-</td>
<td>&#19968;&#20010;&#25110;&#22810;&#20010;<span class="t-spar">s&#23383;&#31526;</span></td>
</tr>
<tr class="t-par">
<td><span class="t-spar">s&#23383;&#31526;</span></td>
<td>-</td>
<td>&#19979;&#21015;&#20043;&#19968;&#65306;
<ul>
<li>&#19968;&#20010;<span class="t-spar">&#22522;&#30784;s&#23383;&#31526;</span></li>
<li>&#19968;&#20010;&#36716;&#20041;&#24207;&#21015;&#65292;&#23450;&#20041;&#35265;<a href="cpp-language-escape.html">&#36716;&#20041;&#24207;&#21015;</a></li>
<li>&#19968;&#20010;&#36890;&#29992;&#23383;&#31526;&#21517;&#65292;&#23450;&#20041;&#35265;<a href="cpp-language-escape.html">&#36716;&#20041;&#24207;&#21015;</a></li>
</ul>
</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#22522;&#30784;s&#23383;&#31526;</span></td>
<td>-</td>
<td>&#26469;&#33258;<span class="t-rev-inl t-until-cxx23"><span><a href="cpp-language-translation_phases.html#.E9.98.B6.E6.AE.B5_5">&#28304;&#23383;&#31526;&#38598;</a></span> <span><span class="t-mark-rev t-until-cxx23">(C++23 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx23"><span><a href="cpp-language-charset.html#.E7.BF.BB.E8.AF.91.E5.AD.97.E7.AC.A6.E9.9B.86">&#32763;&#35793;&#23383;&#31526;&#38598;</a></span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span>&#21435;&#25481;&#21452;&#24341;&#21495;&#65288;<code><b>&quot;</b></code>&#65289;&#12289;&#21453;&#26012;&#26464;&#65288;<code><b>\</b></code>&#65289;&#21644;&#25442;&#34892;&#31526;&#21518;&#30340;&#23383;&#31526;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#21069;&#32512;</span></td>
<td>-</td>
<td><code><b>L</b></code>&#12289;<code><b>u8</b></code>&#12289;<code><b>u</b></code>&#12289;<code><b>U</b></code> &#20043;&#19968;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">d&#23383;&#31526;&#24207;&#21015;</span></td>
<td>-</td>
<td>&#19968;&#20010;&#25110;&#22810;&#20010;<span class="t-spar">d&#23383;&#31526;</span>&#65292;&#26368;&#22810;&#21313;&#20845;&#20010;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">d&#23383;&#31526;</span></td>
<td>-</td>
<td>&#26469;&#33258;<span class="t-rev-inl t-until-cxx23"><span><a href="cpp-language-charset.html#.E5.9F.BA.E7.A1.80.E6.BA.90.E5.AD.97.E7.AC.A6.E9.9B.86">&#22522;&#30784;&#28304;&#23383;&#31526;&#38598;</a></span> <span><span class="t-mark-rev t-until-cxx23">(C++23 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx23"><span><a href="cpp-language-charset.html#.E5.9F.BA.E7.A1.80.E5.AD.97.E7.AC.A6.E9.9B.86">&#22522;&#30784;&#23383;&#31526;&#38598;</a></span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span>&#21435;&#25481;&#25324;&#21495;&#12289;&#21453;&#26012;&#26464;&#21644;<a href="cpp-string-byte-isspace.html">&#31354;&#26684;</a>&#21518;&#30340;&#23383;&#31526;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">r&#23383;&#31526;&#24207;&#21015;</span></td>
<td>-</td>
<td>&#19968;&#20010;&#25110;&#22810;&#20010;<span class="t-spar">r&#23383;&#31526;</span>&#65292;&#19981;&#24471;&#21253;&#21547;&#38381;&#24207;&#21015; <code><b>)</b></code><span class="t-spar">d&#23383;&#31526;&#24207;&#21015;</span><code><b>&quot;</b></code></td>
</tr>
<tr class="t-par">
<td><span class="t-spar">r&#23383;&#31526;</span></td>
<td>-</td>
<td>&#26469;&#33258;<span class="t-rev-inl t-until-cxx23"><span><a href="cpp-language-translation_phases.html#.E9.98.B6.E6.AE.B5_5">&#28304;&#23383;&#31526;&#38598;</a></span> <span><span class="t-mark-rev t-until-cxx23">(C++23 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx23"><span><a href="cpp-language-charset.html#.E7.BF.BB.E8.AF.91.E5.AD.97.E7.AC.A6.E9.9B.86">&#32763;&#35793;&#23383;&#31526;&#38598;</a></span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span>&#30340;&#23383;&#31526;</td>
</tr>
</table>
<p><br /></p>
<div class="t-li1"><span class="t-li">1)</span> &#36890;&#24120;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#12290;&#26080;&#21069;&#32512;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#31867;&#22411;&#26159; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> <span class="kw4">char</span><span class="br0">[</span>N<span class="br0">]</span></span></span>&#65292;&#20854;&#20013; <code>N</code> &#26159;&#20197;<span class="t-rev-inl t-until-cxx23"><span>&#25191;&#34892;&#31364;&#32534;&#30721;</span> <span><span class="t-mark-rev t-until-cxx23">(C++23 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx23"><span><a href="cpp-language-charset.html#.E4.BB.A3.E7.A0.81.E5.8D.95.E5.85.83.E4.B8.8E.E5.AD.97.E9.9D.A2.E9.87.8F.E7.BC.96.E7.A0.81">&#36890;&#24120;&#23383;&#38754;&#37327;&#32534;&#30721;</a></span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span>&#30340;&#32534;&#30721;&#21333;&#20803;&#35745;&#30340;&#23383;&#31526;&#20018;&#30340;&#22823;&#23567;&#65292;&#21253;&#21547;&#31354;&#32456;&#27490;&#31526;&#12290;</div>
<div class="t-li1"><span class="t-li">2)</span> &#23485;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#12290;<span class="t-c"><span class="mw-geshi cpp source-cpp">L<span class="st0">&quot;...&quot;</span></span></span> &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#31867;&#22411;&#26159; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> <span class="kw4">wchar_t</span><span class="br0">[</span>N<span class="br0">]</span></span></span>&#65292;&#20854;&#20013; <code>N</code> &#26159;&#20197;<span class="t-rev-inl t-until-cxx23"><span>&#25191;&#34892;&#23485;&#32534;&#30721;</span> <span><span class="t-mark-rev t-until-cxx23">(C++23 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx23"><span>&#23485;&#23383;&#38754;&#37327;&#32534;&#30721;</span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span>&#30340;&#32534;&#30721;&#21333;&#20803;&#35745;&#30340;&#23383;&#31526;&#20018;&#30340;&#22823;&#23567;&#65292;&#21253;&#21547;&#31354;&#32456;&#27490;&#31526;&#12290;</div>
<div class="t-li1"><span class="t-li">3)</span> UTF-8 &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#12290;<span class="t-c"><span class="mw-geshi cpp source-cpp">u8<span class="st0">&quot;...&quot;</span></span></span> &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#31867;&#22411;&#26159; <span class="t-rev-inl t-until-cxx20"><span><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> <span class="kw4">char</span><span class="br0">[</span>N<span class="br0">]</span></span></span></span> <span><span class="t-mark-rev t-until-cxx20">(C++20 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx20"><span><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> char8_t<span class="br0">[</span>N<span class="br0">]</span></span></span></span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span>&#65292;&#20854;&#20013; <code>N</code> &#26159;&#20197; UTF-8 &#32534;&#30721;&#21333;&#20803;&#35745;&#30340;&#23383;&#31526;&#20018;&#30340;&#22823;&#23567;&#65292;&#21253;&#21547;&#31354;&#32456;&#27490;&#31526;&#12290;</div>
<div class="t-li1"><span class="t-li">4)</span> UTF-16 &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#12290;<span class="t-c"><span class="mw-geshi cpp source-cpp">u<span class="st0">&quot;...&quot;</span></span></span> &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#31867;&#22411;&#26159; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> <span class="kw4">char16_t</span><span class="br0">[</span>N<span class="br0">]</span></span></span>&#65292;&#20854;&#20013; <code>N</code> &#26159;&#20197; UTF-16 &#32534;&#30721;&#21333;&#20803;&#35745;&#30340;&#23383;&#31526;&#20018;&#30340;&#22823;&#23567;&#65292;&#21253;&#21547;&#31354;&#32456;&#27490;&#31526;&#12290;</div>
<div class="t-li1"><span class="t-li">5)</span> UTF-32 &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#12290;<span class="t-c"><span class="mw-geshi cpp source-cpp">U<span class="st0">&quot;...&quot;</span></span></span> &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#31867;&#22411;&#26159; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> <span class="kw4">char32_t</span><span class="br0">[</span>N<span class="br0">]</span></span></span>&#65292;&#20854;&#20013; <code>N</code> &#26159;&#20197; UTF-32 &#32534;&#30721;&#21333;&#20803;&#35745;&#30340;&#23383;&#31526;&#20018;&#30340;&#22823;&#23567;&#65292;&#21253;&#21547;&#31354;&#32456;&#27490;&#31526;&#12290;</div>
<div class="t-li1"><span class="t-li">6)</span> &#21407;&#22987;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#12290;&#29992;&#20110;&#36991;&#20813;&#36716;&#20041;&#20219;&#20309;&#23383;&#31526;&#12290;&#20998;&#38548;&#31526;&#38388;&#30340;&#20219;&#20309;&#20869;&#23481;&#37117;&#25104;&#20026;&#23383;&#31526;&#20018;&#30340;&#19968;&#37096;&#20998;&#12290;&#22914;&#26524;&#23384;&#22312; <span class="t-spar">&#21069;&#32512;</span> &#21017;&#20855;&#26377;&#19982;&#19978;&#36848;&#30456;&#21516;&#30340;&#21547;&#20041;&#12290;&#32467;&#23614;&#30340; <span class="t-spar">d&#23383;&#31526;&#24207;&#21015;</span>&#38656;&#35201;&#21644;&#24320;&#22836;&#30340; <span class="t-spar">d&#23383;&#31526;&#24207;&#21015;</span>&#19968;&#33268;&#12290;</div>
<p>&#27599;&#20010;&#65288;&#26469;&#33258;&#38750;&#21407;&#22987;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#65289;<span class="t-spar">s&#23383;&#31526;</span> <span class="t-rev-inl t-since-cxx11"><span>&#25110;&#65288;&#26469;&#33258;&#21407;&#22987;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#65289;<span class="t-spar">r&#23383;&#31526;</span></span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#22343;&#21021;&#22987;&#21270;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#23545;&#35937;&#20013;&#30340;&#23545;&#24212;&#20803;&#32032;&#12290;&#19968;&#20010; <span class="t-spar">s&#23383;&#31526;</span> <span class="t-rev-inl t-since-cxx11"><span>&#25110; <span class="t-spar">r&#23383;&#31526;</span></span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span>&#24403;&#19988;&#20165;&#24403;&#23427;&#34987;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#20851;&#32852;&#23383;&#31526;&#32534;&#30721;&#20013;&#22810;&#20110;&#19968;&#20010;&#32534;&#30721;&#21333;&#20803;&#30340;&#24207;&#21015;&#34920;&#31034;&#26102;&#23545;&#24212;&#22810;&#20110;&#19968;&#20010;&#20803;&#32032;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx23">
<td>
<p>&#22914;&#26524;&#23383;&#31526;&#32570;&#23569;&#22312;&#20851;&#32852;&#23383;&#31526;&#32534;&#30721;&#20013;&#30340;&#34920;&#31034;&#65292;</p>
<ul>
<li>&#22914;&#26524;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#20026;&#36890;&#24120;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#25110;&#23485;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#65292;&#21017;&#23427;&#26159;&#26465;&#20214;&#24615;&#25903;&#25345;&#19988;&#32534;&#30721;&#30340;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#32534;&#30721;&#21333;&#20803;&#24207;&#21015;&#65307;</li>
<li>&#21542;&#21017;&#65288;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#20026; UTF &#32534;&#30721;&#65289;&#65292;&#35813;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#38750;&#33391;&#26500;&#12290;</li>
</ul>
</td>
<td><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></td>
</tr>
</table>
<p>&#27599;&#20010;&#25968;&#20540;&#36716;&#20041;&#24207;&#21015;&#23545;&#24212;&#21333;&#20010;&#20803;&#32032;&#12290;<span class="t-rev-inl t-since-cxx23"><span>&#22914;&#26524;&#36716;&#20041;&#24207;&#21015;&#25152;&#25351;&#23450;&#30340;&#20540;&#36866;&#21512;&#20803;&#32032;&#31867;&#22411;&#30340;&#26080;&#31526;&#21495;&#29256;&#26412;&#65292;&#21017;&#20803;&#32032;&#25317;&#26377;&#65288;&#21487;&#33021;&#22312;&#36716;&#25442;&#21040;&#20803;&#32032;&#31867;&#22411;&#21518;&#30340;&#65289;&#25351;&#23450;&#20540;&#65307;&#21542;&#21017;&#65288;&#21363;&#25351;&#23450;&#20540;&#22312;&#33539;&#22260;&#22806;&#65289;&#35813;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#38750;&#33391;&#26500;&#12290;</span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span></p>
<h4><span class="mw-headline" id=".E6.8B.BC.E6.8E.A5">&#25340;&#25509;</span></h4>
<p>&#22312;<a href="cpp-language-translation_phases.html">&#32763;&#35793;&#38454;&#27573; 6</a>&#65288;&#39044;&#22788;&#29702;&#22120;&#20043;&#21518;&#65289;&#65292;&#27607;&#37051;&#30340;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#20250;&#34987;&#25340;&#25509;&#36215;&#26469;&#12290;&#21363; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&quot;Hello,&quot;</span> &nbsp;<span class="st0">&quot; world!&quot;</span></span></span> &#29983;&#25104;&#65288;&#21333;&#20010;&#65289;&#23383;&#31526;&#20018; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&quot;Hello, world!&quot;</span></span></span>&#12290;&#22914;&#26524;&#20004;&#20010;&#23383;&#31526;&#20018;&#30340;&#32534;&#30721;&#21069;&#32512;&#30456;&#21516;&#65288;&#25110;&#32773;&#37117;&#27809;&#26377;&#32534;&#30721;&#21069;&#32512;&#65289;&#65292;&#21017;&#20135;&#29983;&#30340;&#23383;&#31526;&#20018;&#23558;&#25317;&#26377;&#30456;&#21516;&#30340;&#32534;&#30721;&#21069;&#32512;&#65288;&#25110;&#26080;&#21069;&#32512;&#65289;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<p>&#22914;&#26524;&#19968;&#20010;&#23383;&#31526;&#20018;&#26377;&#32534;&#30721;&#21069;&#32512;&#32780;&#21478;&#19968;&#20010;&#27809;&#26377;&#65292;&#21017;&#26080;&#32534;&#30721;&#21069;&#32512;&#32773;&#34987;&#35748;&#20026;&#25317;&#26377;&#19982;&#21478;&#19968;&#32773;&#30456;&#21516;&#30340;&#32534;&#30721;&#21069;&#32512;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1">L<span class="st0">&quot;&Delta;x = %&quot;</span> <a href="cpp-types-integer.html"><span class="kw177">PRId16</span></a> <span class="co1">// &#22312;&#38454;&#27573; 4&#65292;PRId16 &#23637;&#24320;&#25104; &quot;d&quot;</span>
<span class="co1">// &#22312;&#38454;&#27573; 6&#65292;L&quot;&Delta;x = %&quot; &#19982; &quot;d&quot; &#32452;&#25104; L&quot;&Delta;x = %d&quot;</span></pre></div>
</div>
<p>&#22914;&#26524; UTF-8 &#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#19982;&#23485;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#27607;&#37051;&#65292;&#21017;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11 t-until-cxx23">
<td>
<p>&#23454;&#29616;&#21487;&#33021;&#25903;&#25345;&#25110;&#19981;&#25903;&#25345;&#20219;&#20309;&#20854;&#20182;&#32534;&#30721;&#21069;&#32512;&#32452;&#21512;&#12290;&#36825;&#31181;&#25340;&#25509;&#30340;&#32467;&#26524;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<span class="t-mark-rev t-until-cxx23">(C++23 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx23">
<td>
<p>&#20219;&#20309;&#20854;&#20182;&#32534;&#30721;&#21069;&#32512;&#32452;&#21512;&#20026;&#38750;&#33391;&#26500;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<p>&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#22987;&#32456;&#35201;&#36861;&#21152;&#31354;&#23383;&#31526;&#65288;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&#39;<span class="es5">\0</span>&#39;</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp">L<span class="st0">&#39;<span class="es5">\0</span>&#39;</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char16_t</span><span class="br0">(</span><span class="br0">)</span></span></span> &#31561;&#65289;&#65306;&#22240;&#27492;&#65292;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&quot;Hello&quot;</span></span></span> &#26159; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> <span class="kw4">char</span><span class="br0">[</span><span class="nu0">6</span><span class="br0">]</span></span></span>&#65292;&#24182;&#20445;&#26377;&#23383;&#31526; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&#39;H&#39;</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&#39;e&#39;</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&#39;l&#39;</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&#39;l&#39;</span></span></span>&#12289;<span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&#39;o&#39;</span></span></span> &#21450; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&#39;<span class="es5">\0</span>&#39;</span></span></span>&#12290;</p>
<p>&#36890;&#24120;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327; <span class="t-v">(1)</span> &#21644;&#23485;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327; <span class="t-v">(2)</span> &#30340;&#32534;&#30721;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#12290;&#20363;&#22914;&#65292;gcc &#29992;<a rel="nofollow" class="external text" href="https://gcc.gnu.org/onlinedocs/cpp/Invocation.html">&#21629;&#20196;&#34892;&#36873;&#39033;</a> <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">-</span>fexec<span class="sy2">-</span>charset</span></span> &#19982; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="sy2">-</span>fwide<span class="sy2">-</span>exec<span class="sy2">-</span>charset</span></span> &#36873;&#25321;&#23427;&#20204;&#12290;</p>
<p>&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#25317;&#26377;<a href="cpp-language-storage_duration.html">&#38745;&#24577;&#23384;&#20648;&#26399;</a>&#65292;&#20174;&#32780;&#22312;&#31243;&#24207;&#29983;&#23384;&#26399;&#38388;&#23384;&#22312;&#20110;&#20869;&#23384;&#20013;&#12290;</p>
<p>&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#21487;&#29992;&#20110;<a href="cpp-language-aggregate_initialization.html">&#21021;&#22987;&#21270;&#23383;&#31526;&#25968;&#32452;</a>&#12290;&#22914;&#26524;&#25968;&#32452;&#21021;&#22987;&#21270;&#31867;&#20284; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char</span> str<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="st0">&quot;foo&quot;</span><span class="sy4">;</span></span></span>&#65292;&#37027;&#20040; <span class="t-c"><span class="mw-geshi cpp source-cpp">str</span></span> &#23558;&#21547;&#26377;&#23383;&#31526;&#20018; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&quot;foo&quot;</span></span></span> &#30340;&#21103;&#26412;&#12290;</p>
<p>&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#33021;&#21542;&#37325;&#21472;&#20197;&#21450;&#21516;&#19968;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#30340;&#30456;&#32487;&#27714;&#20540;&#26159;&#21542;&#20135;&#29983;&#21516;&#19968;&#23545;&#35937;&#26159;&#26410;&#25351;&#26126;&#30340;&#12290;&#36825;&#24847;&#21619;&#30528;&#20197;&#25351;&#38024;&#27604;&#36739;&#26102;&#65292;&#30456;&#21516;&#30340;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#27604;&#36739;&#26102;&#21487;&#33021;&#30456;&#31561;&#25110;&#19981;&#30456;&#31561;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">bool</span> b <span class="sy1">=</span> <span class="st0">&quot;bar&quot;</span> <span class="sy1">==</span> <span class="nu0">3</span><span class="sy2">+</span><span class="st0">&quot;foobar&quot;</span> <span class="co1">// &#21487;&#20026; true &#25110; false&#65292;&#30001;&#23454;&#29616;&#23450;&#20041;</span></pre></div>
</div>
<p>&#35797;&#22270;&#20462;&#25913;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#23548;&#33268;<i>&#26410;&#23450;&#20041;&#34892;&#20026;</i>&#65306;&#23427;&#20204;&#21487;&#20197;&#23384;&#20648;&#20110;&#21482;&#35835;&#23384;&#20648;&#65288;&#20363;&#22914; <code>.rodata</code>&#65289;&#25110;&#19982;&#20854;&#20182;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#21512;&#24182;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> pc <span class="sy1">=</span> <span class="st0">&quot;Hello&quot;</span><span class="sy4">;</span>
<span class="kw4">char</span><span class="sy2">*</span> p <span class="sy1">=</span> <span class="kw1">const_cast</span><span class="sy1">&lt;</span><span class="kw4">char</span><span class="sy2">*</span><span class="sy1">&gt;</span><span class="br0">(</span>pc<span class="br0">)</span><span class="sy4">;</span>
p<span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span> <span class="sy1">=</span> <span class="st0">&#39;M&#39;</span><span class="sy4">;</span> <span class="co1">// &#26410;&#23450;&#20041;&#34892;&#20026;</span></pre></div>
</div>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx11">
<td>
<p>&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#21487;&#36716;&#25442;&#20026;&#19988;&#21487;&#36171;&#20540;&#32473;&#38750; const &#30340; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char</span><span class="sy2">*</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">wchar_t</span><span class="sy2">*</span></span></span> &#20197;&#19982; C &#20860;&#23481;&#65292; C &#20013;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#31867;&#22411;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char</span><span class="br0">[</span>N<span class="br0">]</span></span></span> &#19982; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">wchar_t</span><span class="br0">[</span>N<span class="br0">]</span></span></span>&#12290; &#36825;&#31181;&#38544;&#24335;&#36716;&#25442;&#34987;&#24323;&#29992;&#12290;</p>
</td>
<td><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></td>
</tr>
<tr class="t-rev t-since-cxx11">
<td>
<p>&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#19981;&#21487;&#36716;&#25442;&#20026;&#25110;&#36171;&#20540;&#32473;&#38750; const &#30340; <span class="t-c"><span class="mw-geshi cpp source-cpp">CharT<span class="sy2">*</span></span></span>&#12290;&#33509;&#24819;&#35201;&#36825;&#31181;&#36716;&#25442;&#21017;&#24517;&#39035;&#29992;&#26174;&#24335;&#36716;&#22411;&#65288;&#20363;&#22914; <a href="cpp-language-const_cast.html"><code>const_cast</code></a>&#65289;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<p>&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#19981;&#38656;&#35201;&#26159;&#19968;&#20010;&#31354;&#32456;&#27490;&#23383;&#31526;&#24207;&#21015;&#65306;&#22914;&#26524;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#21253;&#21547;&#20869;&#23884;&#30340;&#31354;&#23383;&#31526;&#65292;&#37027;&#20040;&#23427;&#34920;&#31034;&#21547;&#26377;&#22810;&#20110;&#19968;&#26465;&#23383;&#31526;&#20018;&#30340;&#25968;&#32452;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> p <span class="sy1">=</span> <span class="st0">&quot;abc<span class="es5">\0</span>def&quot;</span><span class="sy4">;</span> <span class="co1">// std::strlen(p) == 3 &#65292;&#20294;&#25968;&#32452;&#22823;&#23567;&#20026; 8</span></pre></div>
</div>
<p>&#22914;&#26524;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#20013;&#19968;&#20010;&#21313;&#20845;&#36827;&#21046;&#36716;&#20041;&#21518;&#38543;&#19968;&#20010;&#21512;&#27861;&#21313;&#20845;&#36827;&#21046;&#25968;&#20301;&#65292;&#21017;&#21487;&#33021;&#22240;&#38750;&#27861;&#36716;&#20041;&#24207;&#21015;&#32780;&#32534;&#35793;&#22833;&#36133;&#12290;&#27492;&#26102;&#21487;&#20197;&#25340;&#25509;&#23383;&#31526;&#20018;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co1">//const char* p = &quot;\xfff&quot;; // &#38169;&#35823;&#65306;&#21313;&#20845;&#36827;&#21046;&#36716;&#20041;&#24207;&#21015;&#22312;&#33539;&#22260;&#22806;</span>
<span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> p <span class="sy1">=</span> <span class="st0">&quot;<span class="es2">\xff</span>&quot;</span><span class="st0">&quot;f&quot;</span><span class="sy4">;</span> <span class="co1">// OK &#65306;&#27492;&#23383;&#38754;&#37327;&#26159;&#20445;&#26377; {&#39;\xff&#39;,&#39;f&#39;,&#39;\0&#39;} &#30340; const char[3]</span></pre></div>
</div>
<p>&#23613;&#31649; C++11 &#20013;&#20801;&#35768;&#28151;&#21512;&#30340;&#23485;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#36830;&#25509;&#65292;&#25152;&#26377;&#24050;&#30693;&#30340; C++ &#32534;&#35793;&#22120;&#37117;&#25298;&#32477;&#36825;&#31181;&#36830;&#25509;&#65292;&#32780;&#20854;&#20351;&#29992;&#32463;&#39564;&#26159;&#26410;&#30693;&#30340;&#12290;&#32467;&#26524; C++23 &#20013;&#31227;&#38500;&#20102;&#23545;&#28151;&#21512;&#23485;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#36830;&#25509;&#30340;&#20801;&#35768;&#12290;</p>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;iostream&gt;</span>
<span class="kw4">char</span> array1<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="st0">&quot;Foo&quot;</span> <span class="st0">&quot;bar&quot;</span><span class="sy4">;</span>
<span class="co1">// &#21516;</span>
<span class="kw4">char</span> array2<span class="br0">[</span><span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span> <span class="st0">&#39;F&#39;</span>, <span class="st0">&#39;o&#39;</span>, <span class="st0">&#39;o&#39;</span>, <span class="st0">&#39;b&#39;</span>, <span class="st0">&#39;a&#39;</span>, <span class="st0">&#39;r&#39;</span>, <span class="st0">&#39;<span class="es5">\0</span>&#39;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> s1 <span class="sy1">=</span> R<span class="st0">&quot;foo(
Hello
World
)foo&quot;</span><span class="sy4">;</span>
<span class="co1">// &#21516;</span>
<span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> s2 <span class="sy1">=</span> <span class="st0">&quot;<span class="es1">\n</span>Hello<span class="es1">\n</span> World<span class="es1">\n</span>&quot;</span><span class="sy4">;</span>
<span class="co1">// &#21516;</span>
<span class="kw4">const</span> <span class="kw4">char</span><span class="sy2">*</span> s3 <span class="sy1">=</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span>
<span class="st0">&quot;Hello<span class="es1">\n</span>&quot;</span>
<span class="st0">&quot; World<span class="es1">\n</span>&quot;</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><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> array1 <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</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> array2 <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</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> s1 <span class="sy1">&lt;&lt;</span> s2 <span class="sy1">&lt;&lt;</span> s3<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">Foobar
Foobar
Hello
World
Hello
World
Hello
World</pre></div>
</div>
</div>
<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/issue1823">CWG 1823</a></td>
<td>C++98</td>
<td>&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#26159;&#21542;&#26377;&#21035;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;</td>
<td>&#21306;&#21035;&#24615;&#26410;&#25351;&#26126;&#65292;&#30456;&#21516;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#33021;&#20135;&#29983;&#19981;&#21516;&#23545;&#35937;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td><a href="cpp-language-user_literal.html">&#29992;&#25143;&#23450;&#20041;&#23383;&#38754;&#37327;</a><span class="t-mark-rev t-since-cxx11">(C++11)</span></td>
<td>&#25317;&#26377;&#29992;&#25143;&#23450;&#20041;&#21518;&#32512;&#30340;&#23383;&#38754;&#37327;</td>
</tr>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>