mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
deploy: d1aebd4f7b
This commit is contained in:
parent
0d6d498527
commit
e6ab985453
4
404.html
4
404.html
@ -8,7 +8,7 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
|
||||
@ -20,7 +20,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
assets/53.t8GRVYsu.png
Normal file
BIN
assets/53.t8GRVYsu.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 71 KiB |
@ -1 +1 @@
|
||||
import{R as p}from"./chunks/theme.Ddh-lpYV.js";import{U as o,a7 as u,a8 as c,a9 as l,aa as f,ab as d,ac as m,ad as h,ae as g,af as A,ag as y,d as P,u as v,y as w,x as C,ah as R,ai as b,aj as E,a5 as S}from"./chunks/framework.hMCIpNYY.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return w(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&R(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function j(){globalThis.__VITEPRESS__=!0;const e=D(),a=x();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function x(){return g(T)}function D(){let e=o,a;return A(t=>{let n=y(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&j().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{j as createApp};
|
||||
import{R as p}from"./chunks/theme.B44BsX0H.js";import{U as o,a7 as u,a8 as c,a9 as l,aa as f,ab as d,ac as m,ad as h,ae as g,af as A,ag as y,d as P,u as v,y as w,x as C,ah as R,ai as b,aj as E,a5 as S}from"./chunks/framework.hMCIpNYY.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return w(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&R(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function j(){globalThis.__VITEPRESS__=!0;const e=D(),a=x();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function x(){return g(T)}function D(){let e=o,a;return A(t=>{let n=y(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&j().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{j as createApp};
|
1
assets/chunks/@localSearchIndexroot.BdkoM002.js
Normal file
1
assets/chunks/@localSearchIndexroot.BdkoM002.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ce=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{X as Rt,s as ne,h as ve,ak as et,al as Ct,am as Mt,v as je,an as At,d as Lt,G as ye,ao as tt,ap as Dt,aq as zt,x as Pt,ar as Vt,y as Me,R as de,Q as we,as as jt,at as $t,Y as Bt,U as Wt,a1 as Kt,o as Q,b as Jt,j as x,a2 as Ut,k as D,au as qt,av as Gt,aw as Qt,c as Z,n as st,e as _e,E as nt,F as it,a as he,t as fe,ax as Ht,p as Yt,l as Zt,ay as rt,a4 as Xt,aa as es,ag as ts,az as ss,_ as ns}from"./framework.hMCIpNYY.js";import{u as is,c as rs}from"./theme.Ddh-lpYV.js";const as={root:()=>Rt(()=>import("./@localSearchIndexroot.Drucd3OI.js"),[])};/*!
|
||||
var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ce=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{X as Rt,s as ne,h as ve,ak as et,al as Ct,am as Mt,v as je,an as At,d as Lt,G as ye,ao as tt,ap as Dt,aq as zt,x as Pt,ar as Vt,y as Me,R as de,Q as we,as as jt,at as $t,Y as Bt,U as Wt,a1 as Kt,o as Q,b as Jt,j as x,a2 as Ut,k as D,au as qt,av as Gt,aw as Qt,c as Z,n as st,e as _e,E as nt,F as it,a as he,t as fe,ax as Ht,p as Yt,l as Zt,ay as rt,a4 as Xt,aa as es,ag as ts,az as ss,_ as ns}from"./framework.hMCIpNYY.js";import{u as is,c as rs}from"./theme.B44BsX0H.js";const as={root:()=>Rt(()=>import("./@localSearchIndexroot.BdkoM002.js"),[])};/*!
|
||||
* tabbable 6.2.0
|
||||
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
|
||||
*/var mt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ie=mt.join(","),gt=typeof Element>"u",re=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ne=!gt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},ke=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},os=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},bt=function(e,t,s){if(ke(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ie));return t&&re.call(e,Ie)&&n.unshift(e),n=n.filter(s),n},yt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!ke(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),c=o.length?o:i.children,l=a(c,!0,s);s.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=re.call(i,Ie);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var v=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),f=!ke(v,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(v&&f){var b=a(v===!0?i.children:v.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ie=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||os(e))&&!wt(e)?0:e.tabIndex},cs=function(e,t){var s=ie(e);return s<0&&t&&!wt(e)?0:s},ls=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},_t=function(e){return e.tagName==="INPUT"},us=function(e){return _t(e)&&e.type==="hidden"},ds=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},hs=function(e,t){for(var s=0;s<e.length;s++)if(e[s].checked&&e[s].form===t)return e[s]},fs=function(e){if(!e.name)return!0;var t=e.form||Ne(e),s=function(o){return t.querySelectorAll('input[type="radio"][name="'+o+'"]')},n;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")n=s(window.CSS.escape(e.name));else try{n=s(e.name)}catch(i){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",i.message),!1}var r=hs(n,e.form);return!r||r===e},ps=function(e){return _t(e)&&e.type==="radio"},vs=function(e){return ps(e)&&!fs(e)},ms=function(e){var t,s=e&&Ne(e),n=(t=s)===null||t===void 0?void 0:t.host,r=!1;if(s&&s!==e){var i,o,c;for(r=!!((i=n)!==null&&i!==void 0&&(o=i.ownerDocument)!==null&&o!==void 0&&o.contains(n)||e!=null&&(c=e.ownerDocument)!==null&&c!==void 0&&c.contains(e));!r&&n;){var l,h,v;s=Ne(n),n=(l=s)===null||l===void 0?void 0:l.host,r=!!((h=n)!==null&&h!==void 0&&(v=h.ownerDocument)!==null&&v!==void 0&&v.contains(n))}}return r},at=function(e){var t=e.getBoundingClientRect(),s=t.width,n=t.height;return s===0&&n===0},gs=function(e,t){var s=t.displayCheck,n=t.getShadowRoot;if(getComputedStyle(e).visibility==="hidden")return!0;var r=re.call(e,"details>summary:first-of-type"),i=r?e.parentElement:e;if(re.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var c=e.parentElement,l=Ne(e);if(c&&!c.shadowRoot&&n(c)===!0)return at(e);e.assignedSlot?e=e.assignedSlot:!c&&l!==e.ownerDocument?e=l.host:e=c}e=o}if(ms(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return at(e);return!1},bs=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s<t.children.length;s++){var n=t.children.item(s);if(n.tagName==="LEGEND")return re.call(t,"fieldset[disabled] *")?!0:!n.contains(e)}return!0}t=t.parentElement}return!1},Fe=function(e,t){return!(t.disabled||ke(t)||us(t)||gs(t,e)||ds(t)||bs(t))},$e=function(e,t){return!(vs(t)||ie(t)<0||!Fe(e,t))},ys=function(e){var t=parseInt(e.getAttribute("tabindex"),10);return!!(isNaN(t)||t>=0)},ws=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,c=cs(o,i),l=i?a(n.candidates):o;c===0?i?t.push.apply(t,l):t.push(o):s.push({documentOrder:r,tabIndex:c,item:n,isScope:i,content:l})}),s.sort(ls).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},_s=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:$e.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:ys}):s=bt(e,t.includeContainer,$e.bind(null,t)),ws(s)},xs=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:Fe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=bt(e,t.includeContainer,Fe.bind(null,t)),s},ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Ie)===!1?!1:$e(t,e)},Ss=mt.concat("iframe").join(","),Ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Ss)===!1?!1:Fe(t,e)};/*!
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
import{_ as p,c as n,j as s,a as i,a6 as a,o as l}from"./chunks/framework.hMCIpNYY.js";const t="/c/assets/1.L8V3GBrc.png",h="/c/assets/2.nqdAY_P3.png",e="/c/assets/3.D7eNbwzQ.jpg",k="/c/assets/4.DElD8M7P.svg",d="/c/assets/5.BE2mwvAQ.svg",r="/c/assets/6.aMDLQtj3.svg",c="/c/assets/7.eAeDlr0I.svg",E="/c/assets/8.CiYoL9Pa.svg",g="/c/assets/9.f3_OgcWU.svg",o="/c/assets/10.Dx5GM3xz.svg",F="/c/assets/11.DNH2vSdC.svg",y="/c/assets/12.NlBmD7pA.png",u="/c/assets/13.ZiBq6Pno.png",b="/c/assets/14.DAgmsf-w.png",m="/c/assets/15.B2iC37fw.png",C="/c/assets/16.BlE3ZFud.png",A="/c/assets/17.CBpay1zM.svg",B="/c/assets/18.g66usGgc.svg",D="/c/assets/19.BW4hoq9o.svg",v="/c/assets/20.DBXyt0gx.svg",T="/c/assets/21.QOjKI_7K.svg",Q="/c/assets/22.BPFvANo_.svg",q="/c/assets/23.BSJo8a0j.svg",f="/c/assets/24.r8ZG8Rvh.svg",_="/c/assets/25.rY0SPMAM.svg",x="/c/assets/26.CX-aIacs.svg",w="/c/assets/27.B6oI9aDx.svg",L="/c/assets/28.BK--PMbQ.svg",z="/c/assets/29.CJ87msb8.svg",H="/c/assets/30.CjsU-QJv.svg",I="/c/assets/31.s4BF2CMv.svg",U="/c/assets/32.DCGI6iJG.svg",P="/c/assets/33.C1jQxCuu.svg",N="/c/assets/35.CGTVELeO.png",M="/c/assets/36.Bz4_lEH0.gif",S="/c/assets/37.CcDWE4nn.png",V="/c/assets/38.B7y2_JVX.gif",O="/c/assets/39.Btcc3rs2.gif",Z="/c/assets/40.CR4ARW8y.png",R="/c/assets/39.Btcc3rs2.gif",G="/c/assets/42.DOX3ymYP.gif",j="/c/assets/43.Cie9_tkP.gif",J="/c/assets/44.DLjH9Ges.png",X="/c/assets/45.DhSh546m.gif",W="/c/assets/46.CCFwxiA0.gif",K="/c/assets/47.DCdP5ufU.gif",$="/c/assets/48.CjdgNuy4.gif",Y="/c/assets/49.Bg9sWT0a.gif",ss="/c/assets/50.Ma73wRvf.gif",is="/c/assets/51.rJLsU7Sw.gif",as="/c/assets/52.3DsEIiSv.gif",vs=JSON.parse('{"title":"第一章:数据类型(⭐)","description":"","frontmatter":{},"headers":[],"relativePath":"notes/01_c-basic/03_xdx/index.md","filePath":"notes/01_c-basic/03_xdx/index.md","lastUpdated":1724728274000}'),ns={name:"notes/01_c-basic/03_xdx/index.md"},ls=a('<h1 id="第一章-数据类型-⭐" tabindex="-1">第一章:数据类型(⭐) <a class="header-anchor" href="#第一章-数据类型-⭐" aria-label="Permalink to "第一章:数据类型(⭐)""></a></h1><h2 id="_1-1-概述" tabindex="-1">1.1 概述 <a class="header-anchor" href="#_1-1-概述" aria-label="Permalink to "1.1 概述""></a></h2><ul><li><p>根据<code>变量</code>中<code>存储</code>的<code>值</code>的<code>不同</code>,我们可以将<code>变量</code>分为两类:</p><ul><li><code>普通变量</code>:变量所对应的内存中存储的是<code>普通值</code>。</li><li><code>指针变量</code>:变量所对应的内存中存储的是<code>另一个变量的地址</code>。</li></ul></li><li><p>如下图所示:</p></li></ul><p><img src="'+t+'" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>普通变量和指针变量的相同点:</p><ul><li>普通变量有内存空间,指针变量也有内存空间。</li><li>普通变量有内存地址,指针变量也有内存地址。</li><li>普通变量所对应的内存空间中有值,指针变量所对应的内存空间中也有值。</li></ul><p>普通变量和指针变量的不同点:</p><ul><li>普通变量所对应的内存空间存储的是普通的值,如:整数、小数、字符等;指针变量所对应的内存空间存储的是另外一个变量的地址。</li><li>普通变量有普通变量的运算方式,而指针变量有指针变量的运算方式(后续讲解)。</li></ul></div><ul><li>那么,在 C 语言中变量的数据类型就可以这么划分,如下所示:</li></ul><p><img src="'+h+`" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>根据<code>普通变量</code>中<code>存储</code>的<code>值</code>的类型不同,可以将<code>普通变量类型</code>划分为<code>基本数据类型</code>(整型、字符类型、浮点类型、布尔类型)和<code>复合数据类型</code>(数组类型、结构体类型、共用体类型、枚举类型)。</li><li>根据<code>指针变量</code>所<code>指向空间</code>中<code>存储</code>的<code>值</code>的类型不同,可以将<code>指针类型</code>分为<code>基本数据类型指针</code>、<code>复合数据类型指针</code>、<code>函数指针</code>、<code>数组指针</code>等,例如:如果指针所指向的空间保存的是 int 类型,那么该指针就是 int 类型的指针。</li></ul></div><h2 id="_1-2-整数类型" tabindex="-1">1.2 整数类型 <a class="header-anchor" href="#_1-2-整数类型" aria-label="Permalink to "1.2 整数类型""></a></h2><h3 id="_1-2-1-概述" tabindex="-1">1.2.1 概述 <a class="header-anchor" href="#_1-2-1-概述" aria-label="Permalink to "1.2.1 概述""></a></h3><ul><li>整数类型简称整型,用于存储整数值,如:12、20、50 等。</li><li>根据所占<code>内存空间</code>大小的不同,可以将整数类型划分为:</li><li>① 短整型:</li></ul><table tabindex="0"><thead><tr><th>类型</th><th>存储空间(内存空间)</th><th>取值范围</th></tr></thead><tbody><tr><td>unsigned short (无符号短整型)</td><td>2 字节</td><td>0 ~ 65,535 (2^16 - 1)</td></tr><tr><td>[signed] short(有符号短整型,默认)</td><td>2 字节</td><td>-32,768 (- 2^15) ~ 32,767 (2^15 -1)</td></tr></tbody></table><ul><li>② 整型:</li></ul><table tabindex="0"><thead><tr><th>类型</th><th>存储空间(内存空间)</th><th>取值范围</th></tr></thead><tbody><tr><td>unsigned int(无符号整型)</td><td>4 字节(通常)</td><td>0 ~ 4294967295 (0 ~2^32 -1)</td></tr><tr><td>[signed] int(有符号整型,默认)</td><td>4 字节(通常)</td><td>-2147483648(- 2^31) ~ 2147483647 (2^31-1)</td></tr></tbody></table><ul><li>③ 长整型:</li></ul><table tabindex="0"><thead><tr><th>类型</th><th>存储空间(内存空间)</th><th>取值范围</th></tr></thead><tbody><tr><td>unsigned long(无符号长整型)</td><td>4 字节(通常)</td><td>0 ~2^32 -1</td></tr><tr><td>[signed] long(有符号长整型,默认)</td><td>4 字节(通常)</td><td>- 2^31 ~ 2^31-1</td></tr></tbody></table><ul><li>④ 长长整型:</li></ul><table tabindex="0"><thead><tr><th>类型</th><th>存储空间(内存空间)</th><th>取值范围</th></tr></thead><tbody><tr><td>unsigned long long(无符号长整型)</td><td>8 字节(通常)</td><td>0 ~2^64 -1</td></tr><tr><td>[signed] long long(有符号长整型,默认)</td><td>8 字节(通常)</td><td>- 2^63 ~ 2^63-1</td></tr></tbody></table><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li><p>① 数据类型在内存中占用的存储单元(字节数),就称为该数据类型的长度(步长),如:short 占用 2 个字节的内存,就称 short 的长度(步长)是 2。</p></li><li><p>② C 语言并没有严格规定各种整数数据类型在内存中所占存储单元的长度,只做了宽泛的限制:</p><ul><li>short 至少占用 2 个字节的存储单元。</li><li>int 建议为一个机器字长(指计算机的处理器在一次操作中能够处理的二进制数据的位数,机器字长是处理器的“字”长度,它决定了处理器在一个时钟周期内能够处理的数据量,如:早期的计算机的处理器通常是 8 位的机器字长,意味着处理器一次只能处理 8 位(二进制)数据;之后的计算机的处理器有 16 位的机器字长,意味着处理器一次可以处理 16 位的数据;再之后计算机的处理器有 32 位或 64 位的机器字长,意味着处理器一次可以处理 32 位或 64位的数据)。即:32 位环境下 int 占用 4 个字节的存储单元,64 位环境下 int 占用 8 个字节的存储单元。</li><li>short 的长度(步长)不能大于 int,long 的长度(步长)不能小于 int,long long 不能小于 long。</li></ul></li><li><p>③ 那么,各种整数数据类型在内存中所占存储单元的长度的公式就是 <code>2 ≤ sizeof(short) ≤ sizeof(int) ≤ sizeof(long) ≤ sizeof(long long)</code>,具体的存储空间由编译系统自行决定。其中,<code>sizeof</code> 是测量类型或变量、常量长度的<code>运算符</code>。</p></li></ul></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 之所以这么规定,是为了可以让 C 语言长久使用,因为目前主流的 CPU 都是 64 位,但是在 C 语言刚刚出现的时候,CPU 还是以 8 位和 16 位为主。如果当时就将整型定死为 8 位或 16 位,那么现在我们肯定不会再学习 C 语言了。</li><li>② 整型分为有符号 signed 和无符号 unsigned 两种,默认是 signed。</li><li>③ 在实际开发中,<code>最常用的整数类型</code>就是 <code>int</code> 类型了,如果取值范围不够,就使用 long 或 long long 。</li><li>④ C 语言中的<code>格式占位符</code>非常多,只需要大致了解即可;因为,我们在实际开发中,一般都会使用 C++ 或 Rust 以及其它的高级编程语言,如:Java 等,早已经解决了必须通过<code>格式占位符</code>来才能将变量进行输入和输出。</li></ul></div><h3 id="_1-2-2-短整型-了解" tabindex="-1">1.2.2 短整型(了解) <a class="header-anchor" href="#_1-2-2-短整型-了解" aria-label="Permalink to "1.2.2 短整型(了解)""></a></h3><ul><li>语法:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">unsigned</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> short</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 无符号短整型</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">short</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> -</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 有符号短整型</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 有符号表示的是正数、负数和 0 ,即有正负号。无符号表示的是 0 和正数,即正整数,没有符号。</li><li>② 在 <code>printf</code> 中<code>无符号短整型(unsigned short)</code>的<code>格式占位符</code>是 <code>%hu</code> ,<code>有符号短整型(signed short)</code>的<code>格式占位符</code>是 <code>%hd</code> 。</li><li>③ 可以通过 <code>sizeof</code> 运算符获取<code>无符号短整型(unsigned short)</code> 和 <code>有符号短整型(signed short)</code> 的<code>存储空间(所占内存空间)</code>。</li><li>③ 可以通过 <code>#include <limits.h></code> 来获取 <code>无符号短整型(unsigned short)</code> 和<code>有符号短整型(signed short)</code>的<code>取值范围</code>。</li></ul></div><ul><li>示例:定义和打印短整型变量</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stdio.h></span></span>
|
||||
import{_ as p,c as n,j as s,a as i,a6 as a,o as l}from"./chunks/framework.hMCIpNYY.js";const t="/c/assets/1.L8V3GBrc.png",h="/c/assets/2.nqdAY_P3.png",e="/c/assets/3.D7eNbwzQ.jpg",k="/c/assets/4.DElD8M7P.svg",d="/c/assets/5.BE2mwvAQ.svg",r="/c/assets/6.aMDLQtj3.svg",c="/c/assets/7.eAeDlr0I.svg",E="/c/assets/8.CiYoL9Pa.svg",g="/c/assets/9.f3_OgcWU.svg",o="/c/assets/10.Dx5GM3xz.svg",F="/c/assets/11.DNH2vSdC.svg",y="/c/assets/12.NlBmD7pA.png",u="/c/assets/13.ZiBq6Pno.png",b="/c/assets/14.DAgmsf-w.png",m="/c/assets/15.B2iC37fw.png",C="/c/assets/16.BlE3ZFud.png",A="/c/assets/17.CBpay1zM.svg",B="/c/assets/18.g66usGgc.svg",D="/c/assets/19.BW4hoq9o.svg",v="/c/assets/20.DBXyt0gx.svg",T="/c/assets/21.QOjKI_7K.svg",q="/c/assets/22.BPFvANo_.svg",Q="/c/assets/23.BSJo8a0j.svg",f="/c/assets/24.r8ZG8Rvh.svg",_="/c/assets/25.rY0SPMAM.svg",x="/c/assets/26.CX-aIacs.svg",w="/c/assets/27.B6oI9aDx.svg",L="/c/assets/28.BK--PMbQ.svg",z="/c/assets/29.CJ87msb8.svg",U="/c/assets/30.CjsU-QJv.svg",I="/c/assets/31.s4BF2CMv.svg",P="/c/assets/32.DCGI6iJG.svg",N="/c/assets/33.C1jQxCuu.svg",H="/c/assets/35.CGTVELeO.png",M="/c/assets/36.Bz4_lEH0.gif",S="/c/assets/37.CcDWE4nn.png",V="/c/assets/38.B7y2_JVX.gif",O="/c/assets/39.Btcc3rs2.gif",Z="/c/assets/40.CR4ARW8y.png",R="/c/assets/39.Btcc3rs2.gif",G="/c/assets/42.DOX3ymYP.gif",J="/c/assets/43.Cie9_tkP.gif",j="/c/assets/44.DLjH9Ges.png",X="/c/assets/45.DhSh546m.gif",W="/c/assets/46.CCFwxiA0.gif",K="/c/assets/47.DCdP5ufU.gif",Y="/c/assets/48.CjdgNuy4.gif",$="/c/assets/49.Bg9sWT0a.gif",ss="/c/assets/50.Ma73wRvf.gif",is="/c/assets/51.rJLsU7Sw.gif",as="/c/assets/52.3DsEIiSv.gif",ns="/c/assets/53.t8GRVYsu.png",Ts=JSON.parse('{"title":"第一章:数据类型(⭐)","description":"","frontmatter":{},"headers":[],"relativePath":"notes/01_c-basic/03_xdx/index.md","filePath":"notes/01_c-basic/03_xdx/index.md","lastUpdated":1724741069000}'),ls={name:"notes/01_c-basic/03_xdx/index.md"},ps=a('<h1 id="第一章-数据类型-⭐" tabindex="-1">第一章:数据类型(⭐) <a class="header-anchor" href="#第一章-数据类型-⭐" aria-label="Permalink to "第一章:数据类型(⭐)""></a></h1><h2 id="_1-1-概述" tabindex="-1">1.1 概述 <a class="header-anchor" href="#_1-1-概述" aria-label="Permalink to "1.1 概述""></a></h2><ul><li><p>根据<code>变量</code>中<code>存储</code>的<code>值</code>的<code>不同</code>,我们可以将<code>变量</code>分为两类:</p><ul><li><code>普通变量</code>:变量所对应的内存中存储的是<code>普通值</code>。</li><li><code>指针变量</code>:变量所对应的内存中存储的是<code>另一个变量的地址</code>。</li></ul></li><li><p>如下图所示:</p></li></ul><p><img src="'+t+'" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>普通变量和指针变量的相同点:</p><ul><li>普通变量有内存空间,指针变量也有内存空间。</li><li>普通变量有内存地址,指针变量也有内存地址。</li><li>普通变量所对应的内存空间中有值,指针变量所对应的内存空间中也有值。</li></ul><p>普通变量和指针变量的不同点:</p><ul><li>普通变量所对应的内存空间存储的是普通的值,如:整数、小数、字符等;指针变量所对应的内存空间存储的是另外一个变量的地址。</li><li>普通变量有普通变量的运算方式,而指针变量有指针变量的运算方式(后续讲解)。</li></ul></div><ul><li>那么,在 C 语言中变量的数据类型就可以这么划分,如下所示:</li></ul><p><img src="'+h+`" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>根据<code>普通变量</code>中<code>存储</code>的<code>值</code>的类型不同,可以将<code>普通变量类型</code>划分为<code>基本数据类型</code>(整型、字符类型、浮点类型、布尔类型)和<code>复合数据类型</code>(数组类型、结构体类型、共用体类型、枚举类型)。</li><li>根据<code>指针变量</code>所<code>指向空间</code>中<code>存储</code>的<code>值</code>的类型不同,可以将<code>指针类型</code>分为<code>基本数据类型指针</code>、<code>复合数据类型指针</code>、<code>函数指针</code>、<code>数组指针</code>等,例如:如果指针所指向的空间保存的是 int 类型,那么该指针就是 int 类型的指针。</li></ul></div><h2 id="_1-2-整数类型" tabindex="-1">1.2 整数类型 <a class="header-anchor" href="#_1-2-整数类型" aria-label="Permalink to "1.2 整数类型""></a></h2><h3 id="_1-2-1-概述" tabindex="-1">1.2.1 概述 <a class="header-anchor" href="#_1-2-1-概述" aria-label="Permalink to "1.2.1 概述""></a></h3><ul><li>整数类型简称整型,用于存储整数值,如:12、20、50 等。</li><li>根据所占<code>内存空间</code>大小的不同,可以将整数类型划分为:</li><li>① 短整型:</li></ul><table tabindex="0"><thead><tr><th>类型</th><th>存储空间(内存空间)</th><th>取值范围</th></tr></thead><tbody><tr><td>unsigned short (无符号短整型)</td><td>2 字节</td><td>0 ~ 65,535 (2^16 - 1)</td></tr><tr><td>[signed] short(有符号短整型,默认)</td><td>2 字节</td><td>-32,768 (- 2^15) ~ 32,767 (2^15 -1)</td></tr></tbody></table><ul><li>② 整型:</li></ul><table tabindex="0"><thead><tr><th>类型</th><th>存储空间(内存空间)</th><th>取值范围</th></tr></thead><tbody><tr><td>unsigned int(无符号整型)</td><td>4 字节(通常)</td><td>0 ~ 4294967295 (0 ~2^32 -1)</td></tr><tr><td>[signed] int(有符号整型,默认)</td><td>4 字节(通常)</td><td>-2147483648(- 2^31) ~ 2147483647 (2^31-1)</td></tr></tbody></table><ul><li>③ 长整型:</li></ul><table tabindex="0"><thead><tr><th>类型</th><th>存储空间(内存空间)</th><th>取值范围</th></tr></thead><tbody><tr><td>unsigned long(无符号长整型)</td><td>4 字节(通常)</td><td>0 ~2^32 -1</td></tr><tr><td>[signed] long(有符号长整型,默认)</td><td>4 字节(通常)</td><td>- 2^31 ~ 2^31-1</td></tr></tbody></table><ul><li>④ 长长整型:</li></ul><table tabindex="0"><thead><tr><th>类型</th><th>存储空间(内存空间)</th><th>取值范围</th></tr></thead><tbody><tr><td>unsigned long long(无符号长整型)</td><td>8 字节(通常)</td><td>0 ~2^64 -1</td></tr><tr><td>[signed] long long(有符号长整型,默认)</td><td>8 字节(通常)</td><td>- 2^63 ~ 2^63-1</td></tr></tbody></table><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li><p>① 数据类型在内存中占用的存储单元(字节数),就称为该数据类型的长度(步长),如:short 占用 2 个字节的内存,就称 short 的长度(步长)是 2。</p></li><li><p>② C 语言并没有严格规定各种整数数据类型在内存中所占存储单元的长度,只做了宽泛的限制:</p><ul><li>short 至少占用 2 个字节的存储单元。</li><li>int 建议为一个机器字长(指计算机的处理器在一次操作中能够处理的二进制数据的位数,机器字长是处理器的“字”长度,它决定了处理器在一个时钟周期内能够处理的数据量,如:早期的计算机的处理器通常是 8 位的机器字长,意味着处理器一次只能处理 8 位(二进制)数据;之后的计算机的处理器有 16 位的机器字长,意味着处理器一次可以处理 16 位的数据;再之后计算机的处理器有 32 位或 64 位的机器字长,意味着处理器一次可以处理 32 位或 64位的数据)。即:32 位环境下 int 占用 4 个字节的存储单元,64 位环境下 int 占用 8 个字节的存储单元。</li><li>short 的长度(步长)不能大于 int,long 的长度(步长)不能小于 int,long long 不能小于 long。</li></ul></li><li><p>③ 那么,各种整数数据类型在内存中所占存储单元的长度的公式就是 <code>2 ≤ sizeof(short) ≤ sizeof(int) ≤ sizeof(long) ≤ sizeof(long long)</code>,具体的存储空间由编译系统自行决定。其中,<code>sizeof</code> 是测量类型或变量、常量长度的<code>运算符</code>。</p></li></ul></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 之所以这么规定,是为了可以让 C 语言长久使用,因为目前主流的 CPU 都是 64 位,但是在 C 语言刚刚出现的时候,CPU 还是以 8 位和 16 位为主。如果当时就将整型定死为 8 位或 16 位,那么现在我们肯定不会再学习 C 语言了。</li><li>② 整型分为有符号 signed 和无符号 unsigned 两种,默认是 signed。</li><li>③ 在实际开发中,<code>最常用的整数类型</code>就是 <code>int</code> 类型了,如果取值范围不够,就使用 long 或 long long 。</li><li>④ C 语言中的<code>格式占位符</code>非常多,只需要大致了解即可;因为,我们在实际开发中,一般都会使用 C++ 或 Rust 以及其它的高级编程语言,如:Java 等,早已经解决了必须通过<code>格式占位符</code>来才能将变量进行输入和输出。</li></ul></div><h3 id="_1-2-2-短整型-了解" tabindex="-1">1.2.2 短整型(了解) <a class="header-anchor" href="#_1-2-2-短整型-了解" aria-label="Permalink to "1.2.2 短整型(了解)""></a></h3><ul><li>语法:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">unsigned</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> short</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 无符号短整型</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">short</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> -</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 有符号短整型</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 有符号表示的是正数、负数和 0 ,即有正负号。无符号表示的是 0 和正数,即正整数,没有符号。</li><li>② 在 <code>printf</code> 中<code>无符号短整型(unsigned short)</code>的<code>格式占位符</code>是 <code>%hu</code> ,<code>有符号短整型(signed short)</code>的<code>格式占位符</code>是 <code>%hd</code> 。</li><li>③ 可以通过 <code>sizeof</code> 运算符获取<code>无符号短整型(unsigned short)</code> 和 <code>有符号短整型(signed short)</code> 的<code>存储空间(所占内存空间)</code>。</li><li>③ 可以通过 <code>#include <limits.h></code> 来获取 <code>无符号短整型(unsigned short)</code> 和<code>有符号短整型(signed short)</code>的<code>取值范围</code>。</li></ul></div><ul><li>示例:定义和打印短整型变量</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stdio.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
@ -229,7 +229,7 @@ import{_ as p,c as n,j as s,a as i,a6 as a,o as l}from"./chunks/framework.hMCIpN
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><h2 id="_1-3-数值溢出" tabindex="-1">1.3 数值溢出 <a class="header-anchor" href="#_1-3-数值溢出" aria-label="Permalink to "1.3 数值溢出""></a></h2><h3 id="_1-3-1-概述" tabindex="-1">1.3.1 概述 <a class="header-anchor" href="#_1-3-1-概述" aria-label="Permalink to "1.3.1 概述""></a></h3><ul><li>在生活中,如果一个容器的容量是固定的,我们不停的向其中注入水,那么当容器中充满水之后,再继续注入,水就会从杯子中溢出来,如下所示:</li></ul><p><img src="`+e+'" alt="" loading="lazy"></p><ul><li>在程序中也是一样的,各种整数类型在内存中占用的存储单元是不同的,如:short 在内存中占用 2 个字节的存储单元,int 在内存中占用 4 个字节的存储单元。这也就意味着,各种整数类型只能存储有限的数值,当数值过大或多小的时候,超出的部分就会被直接截掉,那么数值就不能被正确的存储,我们就将这种现象就称为<code>溢出</code>(overflow)。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>如果这个数目前是<code>最大值</code>,再进行<code>加法</code>计算,数据就会超过该类型能够表示的最大值,叫做<code>上溢出</code>(如果最大值 + 1 会“绕回”到最小值)。</li><li>如果这个数目前是<code>最小值</code>,再进行<code>减法</code>计算,数据就会超过该类型能够表示的最小值, 叫做<code>下溢出</code>(如果最小值 - 1 会“绕回”到最大值)。</li></ul></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 在 C 语言中,程序产生数值溢出的时候,并不会引发错误而使程序自动停止,这是因为计算机底层是采用二进制补码的运算规则进行处理的(很多编程语言也是这样处理的,如:Java 等)。</li><li>② 但是,这可能会导致不可预料的后果,如:1996 年的亚利安 5 号运载火箭爆炸、2004 年的 Comair 航空公司航班停飞事故。</li><li>③ 在实际开发中,编程时要特别注意,以避免数值溢出问题,特别是在涉及大数或小数的运算(特指整数)。</li></ul></div><h3 id="_1-3-2-无符号数的取值范围" tabindex="-1">1.3.2 无符号数的取值范围 <a class="header-anchor" href="#_1-3-2-无符号数的取值范围" aria-label="Permalink to "1.3.2 无符号数的取值范围""></a></h3><ul><li>在 C 语言中,<code>无符号数</code>(unsigned 类型)的取值范围(最大值和最小值)的计算是很容易的,即:将内存中的所有位,设置为 <code>0</code> 就是<code>最小值</code>,设置为 <code>1</code> 就是<code>最大值</code>。</li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>在 C 语言中,无符号整数,最高位不是符号位,它是数值的一部分。</p></div><ul><li>以 <code>unsigned char</code> 类型为例,它在内存中占用的存储单元是 1 个字节,即 8 位。如果所有位都设置为 <code>0</code> ,它的最小值就是 <code>0</code> ;如果所有位设置为 <code>1</code> ,它的最大值就是 <code>2⁸ - 1 = 255</code> ,如下所示:</li></ul><p><img src="'+k+`" alt="" loading="lazy"></p><ul><li>那么,<code>unsigned char</code> 的最大值是如何计算出来的?最简单的方法就是这样的,如下所示:</li></ul><div class="language-txt vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span> 1 × 2⁰ + 1 × 2¹ + 1 × 2² + 1 × 2³ + 1 × 2⁴ + 1 × 2⁵ + 1 × 2⁶ + 1 × 2⁷ </span></span>
|
||||
<span class="line"><span>= 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 </span></span>
|
||||
<span class="line"><span>= 255</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><ul><li>但是,这种计算方法虽然有效,但是非常麻烦,如果是 8 个字节的 long ,那么计算就非常麻烦了(可能要计算半天)。当然,我们也知道,这就是等比数列(高中知识),等比数列的公式,如下所示:</li></ul>`,105),ps={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ts={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.912ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.075ex",height:"2.893ex",role:"img",focusable:"false",viewBox:"0 -875.7 6663.1 1278.6","aria-hidden":"true"},hs=a('<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z" style="stroke-width:3;"></path></g><g data-mml-node="mi" transform="translate(646,-150) scale(0.707)"><path data-c="1D45B" d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z" style="stroke-width:3;"></path></g></g><g data-mml-node="mo" transform="translate(1398,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" style="stroke-width:3;"></path></g><g data-mml-node="msub" transform="translate(2453.8,0)"><g data-mml-node="mi"><path data-c="1D44E" d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(562,-150) scale(0.707)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g></g><g data-mml-node="mo" transform="translate(3641.6,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z" style="stroke-width:3;"></path></g><g data-mml-node="mfrac" transform="translate(4641.8,0)"><g data-mml-node="mrow" transform="translate(220,398) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="msup" transform="translate(1278,0)"><g data-mml-node="mi"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" style="stroke-width:3;"></path></g><g data-mml-node="mi" transform="translate(484,363) scale(0.707)"><path data-c="1D45B" d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z" style="stroke-width:3;"></path></g></g></g><g data-mml-node="mrow" transform="translate(399.3,-345) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="mi" transform="translate(1278,0)"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" style="stroke-width:3;"></path></g></g><rect width="1781.3" height="60" x="120" y="220"></rect></g></g></g>',1),es=[hs],ks=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("msub",null,[s("mi",null,"S"),s("mi",null,"n")]),s("mo",null,"="),s("msub",null,[s("mi",null,"a"),s("mn",null,"1")]),s("mo",null,"×"),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("msup",null,[s("mi",null,"r"),s("mi",null,"n")])]),s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mi",null,"r")])])])],-1),ds={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},rs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.912ex"},xmlns:"http://www.w3.org/2000/svg",width:"28.694ex",height:"3.146ex",role:"img",focusable:"false",viewBox:"0 -987.7 12682.9 1390.6","aria-hidden":"true"},cs=a('<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(646,-150) scale(0.707)"><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" style="stroke-width:3;"></path></g></g><g data-mml-node="mo" transform="translate(1327.3,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(2383.1,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(3105.3,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z" style="stroke-width:3;"></path></g><g data-mml-node="mfrac" transform="translate(4105.6,0)"><g data-mml-node="mrow" transform="translate(220,398) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="msup" transform="translate(1278,0)"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(533,363) scale(0.707)"><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" style="stroke-width:3;"></path></g></g></g><g data-mml-node="mrow" transform="translate(374.3,-345) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(1278,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" style="stroke-width:3;"></path></g></g><rect width="1765.9" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(6389.3,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" style="stroke-width:3;"></path></g><g data-mml-node="mfrac" transform="translate(7445,0)"><g data-mml-node="mrow" transform="translate(220,398) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(1278,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" style="stroke-width:3;"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(500,0)" style="stroke-width:3;"></path><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" transform="translate(1000,0)" style="stroke-width:3;"></path></g></g><g data-mml-node="mrow" transform="translate(750.3,-345) scale(0.707)"><g data-mml-node="mo"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(778,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g></g><rect width="2164.3" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(10127.2,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(11182.9,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" style="stroke-width:3;"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(500,0)" style="stroke-width:3;"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(1000,0)" style="stroke-width:3;"></path></g></g></g>',1),Es=[cs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("msub",null,[s("mi",null,"S"),s("mn",null,"8")]),s("mo",null,"="),s("mn",null,"1"),s("mo",null,"×"),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("msup",null,[s("mn",null,"2"),s("mn",null,"8")])]),s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mn",null,"2")])]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mn",null,"256")]),s("mrow",null,[s("mo",null,"−"),s("mn",null,"1")])]),s("mo",null,"="),s("mn",null,"255")])],-1),os=s("li",null,[s("p",null,[i("但是,貌似还是很复杂,我们可以换个思路,就是让 "),s("code",null,"1111 1111"),i(" 先 "),s("code",null,"+1"),i(" ,然后再 "),s("code",null,"-1"),i(",这样一增一减正好抵消掉,并且不会影响最终的结果,如下所示:")])],-1),Fs=a(`<div class="language-txt vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span> 1111 1111 + 1 - 1</span></span>
|
||||
<span class="line"><span>= 255</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><ul><li>但是,这种计算方法虽然有效,但是非常麻烦,如果是 8 个字节的 long ,那么计算就非常麻烦了(可能要计算半天)。当然,我们也知道,这就是等比数列(高中知识),等比数列的公式,如下所示:</li></ul>`,105),ts={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.912ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.075ex",height:"2.893ex",role:"img",focusable:"false",viewBox:"0 -875.7 6663.1 1278.6","aria-hidden":"true"},es=a('<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z" style="stroke-width:3;"></path></g><g data-mml-node="mi" transform="translate(646,-150) scale(0.707)"><path data-c="1D45B" d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z" style="stroke-width:3;"></path></g></g><g data-mml-node="mo" transform="translate(1398,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" style="stroke-width:3;"></path></g><g data-mml-node="msub" transform="translate(2453.8,0)"><g data-mml-node="mi"><path data-c="1D44E" d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(562,-150) scale(0.707)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g></g><g data-mml-node="mo" transform="translate(3641.6,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z" style="stroke-width:3;"></path></g><g data-mml-node="mfrac" transform="translate(4641.8,0)"><g data-mml-node="mrow" transform="translate(220,398) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="msup" transform="translate(1278,0)"><g data-mml-node="mi"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" style="stroke-width:3;"></path></g><g data-mml-node="mi" transform="translate(484,363) scale(0.707)"><path data-c="1D45B" d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z" style="stroke-width:3;"></path></g></g></g><g data-mml-node="mrow" transform="translate(399.3,-345) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="mi" transform="translate(1278,0)"><path data-c="1D45F" d="M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q161 442 183 430T214 408T225 388Q227 382 228 382T236 389Q284 441 347 441H350Q398 441 422 400Q430 381 430 363Q430 333 417 315T391 292T366 288Q346 288 334 299T322 328Q322 376 378 392Q356 405 342 405Q286 405 239 331Q229 315 224 298T190 165Q156 25 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z" style="stroke-width:3;"></path></g></g><rect width="1781.3" height="60" x="120" y="220"></rect></g></g></g>',1),ks=[es],ds=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("msub",null,[s("mi",null,"S"),s("mi",null,"n")]),s("mo",null,"="),s("msub",null,[s("mi",null,"a"),s("mn",null,"1")]),s("mo",null,"×"),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("msup",null,[s("mi",null,"r"),s("mi",null,"n")])]),s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mi",null,"r")])])])],-1),rs={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.912ex"},xmlns:"http://www.w3.org/2000/svg",width:"28.694ex",height:"3.146ex",role:"img",focusable:"false",viewBox:"0 -987.7 12682.9 1390.6","aria-hidden":"true"},Es=a('<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msub"><g data-mml-node="mi"><path data-c="1D446" d="M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(646,-150) scale(0.707)"><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" style="stroke-width:3;"></path></g></g><g data-mml-node="mo" transform="translate(1327.3,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(2383.1,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(3105.3,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z" style="stroke-width:3;"></path></g><g data-mml-node="mfrac" transform="translate(4105.6,0)"><g data-mml-node="mrow" transform="translate(220,398) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="msup" transform="translate(1278,0)"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(533,363) scale(0.707)"><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" style="stroke-width:3;"></path></g></g></g><g data-mml-node="mrow" transform="translate(374.3,-345) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(1278,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" style="stroke-width:3;"></path></g></g><rect width="1765.9" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(6389.3,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" style="stroke-width:3;"></path></g><g data-mml-node="mfrac" transform="translate(7445,0)"><g data-mml-node="mrow" transform="translate(220,398) scale(0.707)"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g><g data-mml-node="mo" transform="translate(500,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(1278,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" style="stroke-width:3;"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(500,0)" style="stroke-width:3;"></path><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" transform="translate(1000,0)" style="stroke-width:3;"></path></g></g><g data-mml-node="mrow" transform="translate(750.3,-345) scale(0.707)"><g data-mml-node="mo"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(778,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" style="stroke-width:3;"></path></g></g><rect width="2164.3" height="60" x="120" y="220"></rect></g><g data-mml-node="mo" transform="translate(10127.2,0)"><path data-c="3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" style="stroke-width:3;"></path></g><g data-mml-node="mn" transform="translate(11182.9,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" style="stroke-width:3;"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(500,0)" style="stroke-width:3;"></path><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z" transform="translate(1000,0)" style="stroke-width:3;"></path></g></g></g>',1),gs=[Es],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("msub",null,[s("mi",null,"S"),s("mn",null,"8")]),s("mo",null,"="),s("mn",null,"1"),s("mo",null,"×"),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("msup",null,[s("mn",null,"2"),s("mn",null,"8")])]),s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mn",null,"2")])]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mn",null,"256")]),s("mrow",null,[s("mo",null,"−"),s("mn",null,"1")])]),s("mo",null,"="),s("mn",null,"255")])],-1),Fs=s("li",null,[s("p",null,[i("但是,貌似还是很复杂,我们可以换个思路,就是让 "),s("code",null,"1111 1111"),i(" 先 "),s("code",null,"+1"),i(" ,然后再 "),s("code",null,"-1"),i(",这样一增一减正好抵消掉,并且不会影响最终的结果,如下所示:")])],-1),ys=a(`<div class="language-txt vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span> 1111 1111 + 1 - 1</span></span>
|
||||
<span class="line"><span>= 10000 0000 - 1</span></span>
|
||||
<span class="line"><span>= 2⁹⁻¹ - 1</span></span>
|
||||
<span class="line"><span>= 2⁸ - 1 </span></span>
|
||||
@ -844,7 +844,7 @@ import{_ as p,c as n,j as s,a as i,a6 as a,o as l}from"./chunks/framework.hMCIpN
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"整数 </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%d</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 的二进制表示:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> \\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, b, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getBinary</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(b));</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br></div></div><h3 id="_2-6-3-按位与" tabindex="-1">2.6.3 按位与 <a class="header-anchor" href="#_2-6-3-按位与" aria-label="Permalink to "2.6.3 按位与""></a></h3><ul><li><p>按位与 <code>&</code> 的运算规则是:如果二进制对应的位上都是 1 才是 1 ,否则为 0 ,即:</p><ul><li><code>1 & 1</code> 的结果是 <code>1</code> 。</li><li><code>1 & 0</code> 的结果是 <code>0</code> 。</li><li><code>0 & 1</code> 的结果是 <code>0</code> 。</li><li><code>0 & 0</code> 的结果是 <code>0</code> 。</li></ul></li><li><p>示例:<code>9 & 7 = 1</code></p></li></ul><p><img src="`+Q+'" alt="" loading="lazy"></p><ul><li>示例:<code>-9 & 7 = 7</code></li></ul><p><img src="'+q+'" alt="" loading="lazy"></p><h3 id="_2-6-4-按位或" tabindex="-1">2.6.4 按位或 <a class="header-anchor" href="#_2-6-4-按位或" aria-label="Permalink to "2.6.4 按位或""></a></h3><ul><li><p>按位与 <code>|</code> 的运算规则是:如果二进制对应的位上只要有 1 就是 1 ,否则为 0 ,即:</p><ul><li><code>1 | 1</code> 的结果是 <code>1</code> 。</li><li><code>1 | 0</code> 的结果是 <code>1</code> 。</li><li><code>0 | 1</code> 的结果是 <code>1</code> 。</li><li><code>0 | 0</code> 的结果是 <code>0</code> 。</li></ul></li><li><p>示例:<code>9 | 7 = 15</code></p></li></ul><p><img src="'+f+'" alt="" loading="lazy"></p><ul><li>示例:<code>-9 | 7 = -9</code></li></ul><p><img src="'+_+'" alt="" loading="lazy"></p><h3 id="_2-6-5-按位异或" tabindex="-1">2.6.5 按位异或 <a class="header-anchor" href="#_2-6-5-按位异或" aria-label="Permalink to "2.6.5 按位异或""></a></h3><ul><li>按位与 <code>^</code> 的运算规则是:如果二进制对应的位上一个为 1 一个为 0 就为 1 ,否则为 0 ,即: <ul><li><code>1 ^ 1</code> 的结果是 <code>0</code> 。</li><li><code>1 ^ 0</code> 的结果是 <code>1</code> 。</li><li><code>0 ^ 1</code> 的结果是 <code>1</code> 。</li><li><code>0 ^ 0</code> 的结果是 <code>0</code> 。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>按位异或的场景有:</p><ul><li>① 交换两个数值:异或操作可以在不使用临时变量的情况下交换两个变量的值。</li><li>② 加密或解密:异或操作用于简单的加密和解密算法。</li><li>③ 错误检测和校正:异或操作可以用于奇偶校验位的计算和检测错误(RAID-3 以及以上)。</li><li>……</li></ul></div><ul><li>示例:<code>9 ^ 7 = 14</code></li></ul><p><img src="'+x+'" alt="" loading="lazy"></p><ul><li>示例:<code>-9 ^ 7 = -16</code></li></ul><p><img src="'+w+'" alt="" loading="lazy"></p><h3 id="_2-6-6-按位取反" tabindex="-1">2.6.6 按位取反 <a class="header-anchor" href="#_2-6-6-按位取反" aria-label="Permalink to "2.6.6 按位取反""></a></h3><ul><li><p>运算规则:如果二进制对应的位上是 1,则结果为 0;如果是 0 ,则结果为 1 。</p><ul><li><code>~0</code> 的结果是 <code>1</code> 。</li><li><code>~1</code> 的结果是 <code>0</code> 。</li></ul></li><li><p>示例:<code>~9 = -10</code></p></li></ul><p><img src="'+L+'" alt="" loading="lazy"></p><ul><li>示例:<code>~-9 = 8</code></li></ul><p><img src="'+z+'" alt="" loading="lazy"></p><h3 id="_2-6-7-二进制左移" tabindex="-1">2.6.7 二进制左移 <a class="header-anchor" href="#_2-6-7-二进制左移" aria-label="Permalink to "2.6.7 二进制左移""></a></h3><ul><li><p>在一定范围内,数据每向左移动一位,相当于原数据 × 2。(正数、负数都适用)</p></li><li><p>示例:<code>3 << 4 = 48</code> (3 × 2^4)</p></li></ul><p><img src="'+H+'" alt="" loading="lazy"></p><ul><li>示例:<code>-3 << 4 = -48</code> (-3 × 2 ^4)</li></ul><p><img src="'+I+'" alt="" loading="lazy"></p><h3 id="_2-6-8-二进制右移" tabindex="-1">2.6.8 二进制右移 <a class="header-anchor" href="#_2-6-8-二进制右移" aria-label="Permalink to "2.6.8 二进制右移""></a></h3><ul><li>在一定范围内,数据每向右移动一位,相当于原数据 ÷ 2。(正数、负数都适用)</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 如果不能整除,则向下取整。</li><li>② 右移运算符最好只用于无符号整数,不要用于负数。因为不同系统对于右移后如何处理负数的符号位,有不同的做法,可能会得到不一样的结果。</li></ul></div><ul><li>示例:<code>69 >> 4 = 4</code> (69 ÷ 2^4 )</li></ul><p><img src="'+U+'" alt="" loading="lazy"></p><ul><li>示例:<code>-69 >> 4 = -5</code> (-69 ÷ 2^4 )</li></ul><p><img src="'+P+`" alt="" loading="lazy"></p><h2 id="_2-7-三元运算符" tabindex="-1">2.7 三元运算符 <a class="header-anchor" href="#_2-7-三元运算符" aria-label="Permalink to "2.7 三元运算符""></a></h2><ul><li>语法:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">条件表达式 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> 表达式1 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> 表达式2 ;</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>如果条件表达式为非 0 (真),则整个表达式的值是表达式 1 。</li><li>如果条件表达式为 0 (假),则整个表达式的值是表达式 2 。</li></ul></div><ul><li>示例:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stdio.h></span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br></div></div><h3 id="_2-6-3-按位与" tabindex="-1">2.6.3 按位与 <a class="header-anchor" href="#_2-6-3-按位与" aria-label="Permalink to "2.6.3 按位与""></a></h3><ul><li><p>按位与 <code>&</code> 的运算规则是:如果二进制对应的位上都是 1 才是 1 ,否则为 0 ,即:</p><ul><li><code>1 & 1</code> 的结果是 <code>1</code> 。</li><li><code>1 & 0</code> 的结果是 <code>0</code> 。</li><li><code>0 & 1</code> 的结果是 <code>0</code> 。</li><li><code>0 & 0</code> 的结果是 <code>0</code> 。</li></ul></li><li><p>示例:<code>9 & 7 = 1</code></p></li></ul><p><img src="`+q+'" alt="" loading="lazy"></p><ul><li>示例:<code>-9 & 7 = 7</code></li></ul><p><img src="'+Q+'" alt="" loading="lazy"></p><h3 id="_2-6-4-按位或" tabindex="-1">2.6.4 按位或 <a class="header-anchor" href="#_2-6-4-按位或" aria-label="Permalink to "2.6.4 按位或""></a></h3><ul><li><p>按位与 <code>|</code> 的运算规则是:如果二进制对应的位上只要有 1 就是 1 ,否则为 0 ,即:</p><ul><li><code>1 | 1</code> 的结果是 <code>1</code> 。</li><li><code>1 | 0</code> 的结果是 <code>1</code> 。</li><li><code>0 | 1</code> 的结果是 <code>1</code> 。</li><li><code>0 | 0</code> 的结果是 <code>0</code> 。</li></ul></li><li><p>示例:<code>9 | 7 = 15</code></p></li></ul><p><img src="'+f+'" alt="" loading="lazy"></p><ul><li>示例:<code>-9 | 7 = -9</code></li></ul><p><img src="'+_+'" alt="" loading="lazy"></p><h3 id="_2-6-5-按位异或" tabindex="-1">2.6.5 按位异或 <a class="header-anchor" href="#_2-6-5-按位异或" aria-label="Permalink to "2.6.5 按位异或""></a></h3><ul><li>按位与 <code>^</code> 的运算规则是:如果二进制对应的位上一个为 1 一个为 0 就为 1 ,否则为 0 ,即: <ul><li><code>1 ^ 1</code> 的结果是 <code>0</code> 。</li><li><code>1 ^ 0</code> 的结果是 <code>1</code> 。</li><li><code>0 ^ 1</code> 的结果是 <code>1</code> 。</li><li><code>0 ^ 0</code> 的结果是 <code>0</code> 。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>按位异或的场景有:</p><ul><li>① 交换两个数值:异或操作可以在不使用临时变量的情况下交换两个变量的值。</li><li>② 加密或解密:异或操作用于简单的加密和解密算法。</li><li>③ 错误检测和校正:异或操作可以用于奇偶校验位的计算和检测错误(RAID-3 以及以上)。</li><li>……</li></ul></div><ul><li>示例:<code>9 ^ 7 = 14</code></li></ul><p><img src="'+x+'" alt="" loading="lazy"></p><ul><li>示例:<code>-9 ^ 7 = -16</code></li></ul><p><img src="'+w+'" alt="" loading="lazy"></p><h3 id="_2-6-6-按位取反" tabindex="-1">2.6.6 按位取反 <a class="header-anchor" href="#_2-6-6-按位取反" aria-label="Permalink to "2.6.6 按位取反""></a></h3><ul><li><p>运算规则:如果二进制对应的位上是 1,则结果为 0;如果是 0 ,则结果为 1 。</p><ul><li><code>~0</code> 的结果是 <code>1</code> 。</li><li><code>~1</code> 的结果是 <code>0</code> 。</li></ul></li><li><p>示例:<code>~9 = -10</code></p></li></ul><p><img src="'+L+'" alt="" loading="lazy"></p><ul><li>示例:<code>~-9 = 8</code></li></ul><p><img src="'+z+'" alt="" loading="lazy"></p><h3 id="_2-6-7-二进制左移" tabindex="-1">2.6.7 二进制左移 <a class="header-anchor" href="#_2-6-7-二进制左移" aria-label="Permalink to "2.6.7 二进制左移""></a></h3><ul><li><p>在一定范围内,数据每向左移动一位,相当于原数据 × 2。(正数、负数都适用)</p></li><li><p>示例:<code>3 << 4 = 48</code> (3 × 2^4)</p></li></ul><p><img src="'+U+'" alt="" loading="lazy"></p><ul><li>示例:<code>-3 << 4 = -48</code> (-3 × 2 ^4)</li></ul><p><img src="'+I+'" alt="" loading="lazy"></p><h3 id="_2-6-8-二进制右移" tabindex="-1">2.6.8 二进制右移 <a class="header-anchor" href="#_2-6-8-二进制右移" aria-label="Permalink to "2.6.8 二进制右移""></a></h3><ul><li>在一定范围内,数据每向右移动一位,相当于原数据 ÷ 2。(正数、负数都适用)</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 如果不能整除,则向下取整。</li><li>② 右移运算符最好只用于无符号整数,不要用于负数。因为不同系统对于右移后如何处理负数的符号位,有不同的做法,可能会得到不一样的结果。</li></ul></div><ul><li>示例:<code>69 >> 4 = 4</code> (69 ÷ 2^4 )</li></ul><p><img src="'+P+'" alt="" loading="lazy"></p><ul><li>示例:<code>-69 >> 4 = -5</code> (-69 ÷ 2^4 )</li></ul><p><img src="'+N+`" alt="" loading="lazy"></p><h2 id="_2-7-三元运算符" tabindex="-1">2.7 三元运算符 <a class="header-anchor" href="#_2-7-三元运算符" aria-label="Permalink to "2.7 三元运算符""></a></h2><ul><li>语法:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">条件表达式 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> 表达式1 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> 表达式2 ;</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>如果条件表达式为非 0 (真),则整个表达式的值是表达式 1 。</li><li>如果条件表达式为 0 (假),则整个表达式的值是表达式 2 。</li></ul></div><ul><li>示例:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stdio.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
@ -854,4 +854,80 @@ import{_ as p,c as n,j as s,a as i,a6 as a,o as l}from"./chunks/framework.hMCIpN
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"result = </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%d\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, result);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // result = 110</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><h2 id="_2-8-运算符优先级" tabindex="-1">2.8 运算符优先级 <a class="header-anchor" href="#_2-8-运算符优先级" aria-label="Permalink to "2.8 运算符优先级""></a></h2><ul><li>C 语言中运算符的优先级,如下所示:</li></ul><table tabindex="0"><thead><tr><th><strong>优先级</strong></th><th><strong>运算符</strong></th><th><strong>名称或含义</strong></th><th><strong>结合方向</strong></th></tr></thead><tbody><tr><td><strong>1</strong></td><td><code>[]</code></td><td>数组下标</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>()</code></td><td>圆括号</td><td></td></tr><tr><td></td><td><code>.</code></td><td>成员选择(对象)</td><td></td></tr><tr><td></td><td><code>-></code></td><td>成员选择(指针)</td><td></td></tr><tr><td><strong>2</strong></td><td><code>-</code></td><td>负号运算符</td><td>⬅️(从右到左)</td></tr><tr><td></td><td><code>(类型)</code></td><td>强制类型转换</td><td></td></tr><tr><td></td><td><code>++</code></td><td>自增运算符</td><td></td></tr><tr><td></td><td><code>--</code></td><td>自减运算符</td><td></td></tr><tr><td></td><td><code>*</code></td><td>取值运算符</td><td></td></tr><tr><td></td><td><code>&</code></td><td>取地址运算符</td><td></td></tr><tr><td></td><td><code>!</code></td><td>逻辑非运算符</td><td></td></tr><tr><td></td><td><code>~</code></td><td>按位取反运算符</td><td></td></tr><tr><td></td><td><code>sizeof</code></td><td>长度运算符</td><td></td></tr><tr><td><strong>3</strong></td><td><code>/</code></td><td>除</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>*</code></td><td>乘</td><td></td></tr><tr><td></td><td><code>%</code></td><td>余数(取模)</td><td></td></tr><tr><td><strong>4</strong></td><td><code>+</code></td><td>加</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>-</code></td><td>减</td><td></td></tr><tr><td><strong>5</strong></td><td><code><<</code></td><td>左移</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>>></code></td><td>右移</td><td></td></tr><tr><td><strong>6</strong></td><td><code>></code></td><td>大于</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>>=</code></td><td>大于等于</td><td></td></tr><tr><td></td><td><code><</code></td><td>小于</td><td></td></tr><tr><td></td><td><code><=</code></td><td>小于等于</td><td></td></tr><tr><td><strong>7</strong></td><td><code>==</code></td><td>等于</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>!=</code></td><td>不等于</td><td></td></tr><tr><td><strong>8</strong></td><td><code>&</code></td><td>按位与</td><td>➡️(从左到右)</td></tr><tr><td><strong>9</strong></td><td><code>^</code></td><td>按位异或</td><td>➡️(从左到右)</td></tr><tr><td><strong>10</strong></td><td><code>|</code></td><td>按位或</td><td>➡️(从左到右)</td></tr><tr><td><strong>11</strong></td><td><code>&&</code></td><td>逻辑与</td><td>➡️(从左到右)</td></tr><tr><td><strong>12</strong></td><td><code>||</code></td><td>逻辑或</td><td>➡️(从左到右)</td></tr><tr><td><strong>13</strong></td><td><code>?:</code></td><td>条件运算符</td><td>⬅️(从右到左)</td></tr><tr><td><strong>14</strong></td><td><code>=</code></td><td>赋值运算符</td><td>⬅️(从右到左)</td></tr><tr><td></td><td><code>/=</code></td><td>除后赋值</td><td></td></tr><tr><td></td><td><code>*=</code></td><td>乘后赋值</td><td></td></tr><tr><td></td><td><code>%=</code></td><td>取模后赋值</td><td></td></tr><tr><td></td><td><code>+=</code></td><td>加后赋值</td><td></td></tr><tr><td></td><td><code>-=</code></td><td>减后赋值</td><td></td></tr><tr><td></td><td><code><<=</code></td><td>左移后赋值</td><td></td></tr><tr><td></td><td><code>>>=</code></td><td>右移后赋值</td><td></td></tr><tr><td></td><td><code>&=</code></td><td>按位与后赋值</td><td></td></tr><tr><td></td><td><code>^=</code></td><td>按位异或后赋值</td><td></td></tr><tr><td></td><td><code>|=</code></td><td>按位或后赋值</td><td></td></tr><tr><td><strong>15</strong></td><td><code>,</code></td><td>逗号运算符</td><td>➡️(从左到右)</td></tr></tbody></table><div class="warning custom-block github-alert"><p class="custom-block-title">WARNING</p><p></p><ul><li>① 不要过多的依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,尽量<code>使用小括号来控制</code>表达式的执行顺序。</li><li>② 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它<code>分成几步</code>来完成。</li><li>③ 运算符优先级不用刻意地去记忆,总体上:一元运算符 > 算术运算符 > 关系运算符 > 逻辑运算符 > 三元运算符 > 赋值运算符。</li></ul></div><h1 id="第三章-附录" tabindex="-1">第三章:附录 <a class="header-anchor" href="#第三章-附录" aria-label="Permalink to "第三章:附录""></a></h1><h2 id="_3-1-字符集和字符集编码" tabindex="-1">3.1 字符集和字符集编码 <a class="header-anchor" href="#_3-1-字符集和字符集编码" aria-label="Permalink to "3.1 字符集和字符集编码""></a></h2><h3 id="_3-3-1-概述" tabindex="-1">3.3.1 概述 <a class="header-anchor" href="#_3-3-1-概述" aria-label="Permalink to "3.3.1 概述""></a></h3><ul><li>字符集和字符集编码(简称编码)计算机系统中处理文本数据的两个基本概念,它们密切相关但又有区别。</li><li>字符集(Character Set)是一组字符的集合,其中每个字符都被分配了一个<code>唯一的编号</code>(通常是数字)。字符可以是字母、数字、符号、控制代码(如换行符)等。<code>字符集定义了可以表示的字符的范围</code>,但它并不直接定义如何将这些字符存储在计算机中。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>ASCII(美国信息交换标准代码)是最早期和最简单的字符集之一,它只包括了英文字母、数字和一些特殊字符,共 128 个字符。每个字符都分配给了一个从 0 到 127 的数字。</p></div><ul><li>字符集编码(Character Encoding,简称编码)是一种方案或方法,<code>它定义了如何将字符集中的字符转换为计算机存储和传输的数据(通常是一串二进制数字)</code>。简而言之,编码是字符到二进制数据之间的映射规则。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>ASCII 编码方案定义了如何将 ASCII 字符集中的每个字符表示为 7 位的二进制数字。例如:大写字母<code>'A'</code>在 ASCII 编码中表示为二进制的<code>1000001</code>,十进制的 <code>65</code> 。</p></div><ul><li><code>字符集</code>和<code>字符集编码</code>之间的关系如下:</li></ul><p><img src="`+N+'" alt="" loading="lazy"></p><ul><li>Linux 中安装帮助手册:</li></ul><p><img src="'+M+'" alt="" loading="lazy"></p><h3 id="_3-3-2-ascii-编码" tabindex="-1">3.3.2 ASCII 编码 <a class="header-anchor" href="#_3-3-2-ascii-编码" aria-label="Permalink to "3.3.2 ASCII 编码""></a></h3><ul><li>从<code>冯·诺依曼</code>体系结构中,我们知道,计算机中所有的<code>数据</code>和<code>指令</code>都是以<code>二进制</code>的形式表示的;所以,计算机中对于文本数据的数据也是以二进制来存储的,那么对应的流程如下:</li></ul><p><img src="'+S+'" alt="" loading="lazy"></p><ul><li>我们知道,计算机是上个世纪 60 年代在美国研制成功的,为了实现字符和二进制的转换,美国就制定了一套字符编码,即英语字符和二进制位之间的关系,即 ASCII (American Standard Code for Information Interchange)编码: <ul><li>ASCII 编码只包括了英文字符、数字和一些特殊字符,一共 128 个字符,并且每个字符都分配了唯一的数字,范围是 0 - 127。</li><li>ASCII 编码中的每个字符都使用 7 位的二进制数字表示;但是,计算机中的存储的最小单位是 1 B = 8 位,那么最高位统一规定为 0 。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 其实,早期是没有字符集的概念的,只是后来为了解决乱码问题,而产生了字符集的概念。</li><li>② 对于英文体系来说,<code>a-zA-Z0-9</code>以及一些<code>特殊字符</code>一共 <code>128</code> 就可以满足实际存储需求;所以,在也是为什么 ASCII 码使用 7 位二进制(2^7 = 128 )来存储的。</li></ul></div><ul><li>在操作系统中,就内置了对应的编码表,Linux 也不例外;可以使用如下的命令查看:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">man</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ascii</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+V+'" alt="" loading="lazy"></p><ul><li>其对应的 ASCII 编码表,如下所示:</li></ul><p><img src="'+O+'" alt="" loading="lazy"></p><ul><li>但是,随着计算机的发展,计算机开始了东征之路,由美国传播到东方:</li></ul><p><img src="'+Z+'" alt="" loading="lazy"></p><ul><li>先是传播到了欧洲,欧洲在兼容 ASCII 编码的基础上,推出了 ISO8859-1 编码,即: <ul><li>ISO8859-1 编码包括基本的拉丁字母表、数字、标点符号,以及西欧语言中特有的一些字符,如:法语中的 <code>è</code>、德语中的 <code>ü</code> 等。</li><li>ISO 8859-1 为每个字符分配一个单字节(8 位)编码,意味着它可以表示最多 256 (2^8)个不同的字符(编号从 0 到 255)。</li><li>ISO 8859-1 的前 128 个字符与 ASCII 编码完全一致,这使得 ASCII 编码的文本可以无缝转换为 ISO 8859-1 编码。</li></ul></li></ul><p><img src="'+R+'" alt="" loading="lazy"></p><p><img src="'+G+'" alt="" loading="lazy"></p><ul><li>计算机继续传播到了亚洲,亚洲(双字节)各个国家分别给出了自己国家对应的字符集编码,如: <ul><li>日本推出了 Shift-JIS 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围: <ul><li>第一个字节:129 - 159 和 224 - 239 。</li><li>第二个字节:64 - 126 和 128 - 252 。</li></ul></li></ul></li><li>韩国推出了 EUC-KR 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围:从 41281 - 65278。</li></ul></li><li>中国推出了 GBK 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围:33088 - 65278 。</li></ul></li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 通过上面日本、韩国、中国的编码十进制范围,我们可以看到,虽然这些编码系统在技术上的编码范围存在重叠(特别是在高位字节区域),但因为它们各自支持的字符集完全不同,所以实际上它们并不直接冲突。</li><li>② 但是,如果一个中国人通过 GBK 编码写的文章,通过邮件发送给韩国人,因为韩国和中国在字符集编码上的高位字节有重叠部分,必然会造成歧义。</li></ul></div><h3 id="_3-3-3-unicode-编码" tabindex="-1">3.3.3 Unicode 编码 <a class="header-anchor" href="#_3-3-3-unicode-编码" aria-label="Permalink to "3.3.3 Unicode 编码""></a></h3><ul><li><p>在 Unicode 之前,世界上存在着数百种不同的编码系统,每一种编码系统都是为了支持特定语言或一组语言的字符集。这些编码系统,包括:ASCII、ISO 8859 系列、GBK、Shift-JIS、EUC-KR 等,它们各自有不同的字符范围和编码方式。这种多样性虽然在局部范围内解决了字符表示的问题,但也带来了以下几个方面的挑战:</p><ul><li><code>编码冲突</code>:由于不同的编码系统可以为相同的字节值分配不同的字符,因此在不同编码之间转换文本时,如果没有正确处理编码信息,就很容易产生乱码。这种编码冲突在尝试处理多种语言的文本时尤为突出。</li><li><code>编码的复杂性</code>:随着全球化的发展,软件和系统需要支持越来越多的语言,这就要求开发者和系统同时处理多种不同的编码系统。这不仅增加了开发和维护的复杂性,而且也增加了出错的风险。</li><li><code>资源限制</code>:在早期计算机技术中,内存和存储资源相对有限。不同的编码标准要求系统存储多套字符集数据,这无疑增加了对有限资源的消耗。</li><li>……</li></ul></li><li><p>针对上述的种种问题,为了推行全球化,Unicode 应运而生,Unicode 的核心规则和设计原则是建立一个全球统一的字符集,使得世界上所有的文字和符号都能被唯一地识别和使用,无论使用者位于何地或使用何种语言。这套规则包括了字符的编码、表示、处理和转换机制,旨在确保不同系统和软件间能够无缝交换和处理文本数据。</p><ul><li><code>通用字符集 (UCS)</code>:Unicode 为每一个字符分配一个唯一的编号(称为<code>“码点”</code>)。这些码点被组织在一个统一的字符集中,官方称之为 “通用字符集”(Universal Character Set,UCS)。码点通常表示为 <code>U+</code> 后跟一个十六进制数,例如:<code>U+0041</code> 代表大写的英文字母 <code>“A”</code>。</li><li><code>编码平面和区段</code>:Unicode 码点被划分为多个 “平面(Planes)”,每个平面包含 65536(16^4)个码点。目前,Unicode定义了 17 个平面(从 0 到16),每个平面被分配了一个编号,从 “基本多文种平面(BMP)” 的 0 开始,到 16 号平面结束。这意味着 Unicode 理论上可以支持超过 110万(17*65536)个码点。</li></ul></li><li><p>Unicode 仅仅只是字符集,给每个字符设置了唯一的数字编号而已,却没有给出这些数字编号实际如何存储,可以通过如下命令查看:</p></li></ul><p><img src="'+j+'" alt="" loading="lazy"></p><ul><li>为了在计算机系统中表示 Unicode 字符,定义了几种编码方案,这些方案包括 UTF-8、UTF-16 和 UTF-32 等。 <ul><li><strong>UTF-8</strong>:使用 1 - 4 个字节表示每个 Unicode 字符,兼容 ASCII,是网络上最常用的编码。</li><li><strong>UTF-16</strong>:使用 2 - 4 个字节表示每个 Unicode 字符,适合于需要经常处理基本多文种平面之外字符的应用。</li><li><strong>UTF-32</strong>:使用固定的 4 个字节表示每个 Unicode 字符,简化了字符处理,但增加了存储空间的需求。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 只有 UTF-8 兼容 ASCII,UTF-32 和 UTF-16 都不兼容 ASCII,因为它们没有单字节编码。 <ul><li>UTF-8 使用尽量少的字节来存储一个字符,不但能够节省存储空间,而且在网络传输时也能节省流量,所以很多纯文本类型的文件,如:各种编程语言的源文件、各种日志文件和配置文件等以及绝大多数的网页,如:百度、新浪、163 等都采用 UTF-8 编码。但是,UTF-8 的缺点是效率低,不但在存储和读取时都要经过转换,而且在处理字符串时也非常麻烦。例如:要在一个 UTF-8 编码的字符串中找到第 10 个字符,就得从头开始一个一个地检索字符,这是一个很耗时的过程,因为 UTF-8 编码的字符串中每个字符占用的字节数不一样,如果不从头遍历每个字符,就不知道第 10 个字符位于第几个字节处,就无法定位。不过,随着算法的逐年精进,UTF-8 字符串的定位效率也越来越高了,往往不再是槽点了。</li><li>UTF-32 是“以空间换效率”,正好弥补了 UTF-8 的缺点,UTF-32 的优势就是效率高:UTF-32 在存储和读取字符时不需要任何转换,在处理字符串时也能最快速地定位字符。例如:在一个 UTF-32 编码的字符串中查找第 10 个字符,很容易计算出它位于第 37 个字节处,直接获取就行,不用再逐个遍历字符了,没有比这更快的定位字符的方法了。但是,UTF-32 的缺点也很明显,就是太占用存储空间了,在网络传输时也会消耗很多流量。我们平常使用的字符编码值一般都比较小,用一两个字节存储足以,用四个字节简直是暴殄天物,甚至说是不能容忍的,所以 UTF-32 在应用上不如 UTF-8 和 UTF-16 广泛。</li><li>UTF-16 可以看做是 UTF-8 和 UTF-32 的折中方案,它平衡了存储空间和处理效率的矛盾。对于常用的字符,用两个字节存储足以,这个时候 UTF-16 是不需要转换的,直接存储字符的编码值即可。</li></ul></li><li>② 总而言之,<strong>UTF-8</strong> 编码兼容性强,适合大多数应用,特别是英文文本处理。<strong>UTF-16</strong> 编码适合处理大量亚洲字符,但在处理英文或其他拉丁字符时相对浪费空间。<strong>UTF-32</strong>编码简单直接,但非常浪费空间,适合需要固定字符宽度的特殊场景。</li><li>③ 在实际应用中,UTF-8 通常是最常用的编码方式,因为它在兼容性和空间效率之间提供了良好的平衡。</li><li>④ Windows 内核、.NET Framework、Java String 内部采用的都是 <code>UTF-16</code> 编码,主要原因是为了在兼顾字符处理效率的同时,能够有效处理多种语言的字符集,即:历史遗留问题、兼容性要求和多语言支持的需要。</li><li>⑤ 不过,UNIX 家族的操作系统(Linux、Mac OS、iOS 等)内核都采用 <code>UTF-8</code> 编码,主要是为了兼容性和灵活性,因为 UTF-8 编码可以无缝处理 ASCII 字符,同时也能够支持多字节的 Unicode 字符,即:为了最大限度地兼容 ASCII,同时保持系统的简单性、灵活性和效率。</li></ul></div><ul><li><code>Unicode 字符集</code>和对应的<code>UTF-8 字符编码</code>之间的关系,如下所示:</li></ul><p><img src="'+J+'" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p><code>宽字符</code>和<code>窄字符</code>是编程和计算机系统中对字符类型的一种分类,主要用于描述字符在内存中的表示形式及其与编码方式的关系。</p><ul><li>① <code>窄字符</code>通常指使用单个字节(8 位)来表示的字符。在许多传统的编码系统中,窄字符通常代表 ASCII 字符或其它单字节字符集中的字符。换言之,<code>窄字符</code>适合处理简单的单字节字符集,如:ASCII,适用于处理西方语言的应用。</li><li>② <code>宽字符</code>指使用多个字节(通常是两个或更多)来表示的字符。这些字符通常用于表示比 ASCII 范围更广的字符集,如 Unicode 字符。换言之,<code>宽字符</code>适合处理多字节字符集,如:UTF-32、UTF-16 等,适用于需要处理多种语言和符号的国际化应用。</li></ul><p>在现代编程中,<code>窄字符</code>通常与 <code>UTF-8</code> 编码关联,特别是在处理文本输入、输出和网络传输时。尽管 <code>UTF-8</code> 是变长编码,由于其高效的空间利用和对 <code>ASCII</code> 的优化,通常与<code>窄字符</code>概念关联。而<code>宽字符</code>通常与 <code>UTF-16</code> 编码或 <code>UTF-32</code>编码关联,这些编码使用更大的固定或半固定长度来表示字符,适合处理更大的字符集。</p></div><h2 id="_3-2-wsl2-中设置默认编码为中文" tabindex="-1">3.2 WSL2 中设置默认编码为中文 <a class="header-anchor" href="#_3-2-wsl2-中设置默认编码为中文" aria-label="Permalink to "3.2 WSL2 中设置默认编码为中文""></a></h2><h3 id="_3-2-1-概述" tabindex="-1">3.2.1 概述 <a class="header-anchor" href="#_3-2-1-概述" aria-label="Permalink to "3.2.1 概述""></a></h3><ul><li>查看 WSL2 的 Linux 发行版的默认编码:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">echo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $LANG</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+X+'" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p><code>C.UTF-8</code> 是一种字符编码设置,结合了 <code>C</code> 区域设定和 <code>UTF-8</code> 字符编码。</p><ul><li>① <strong>C 区域设定</strong>:这是一个标准的、最小化的区域设置,通常用于系统默认的语言环境。<code>C</code> 区域设定下,所有字符都被认为是 ASCII 字符集的一部分,这意味着仅支持基本的英文字符和符号。在 <code>C</code> 区域设定中,字符串的排序和比较是基于简单的二进制值比较,这与本地化的语言设置相比相对简单。</li><li>② <strong>UTF-8 编码</strong>:UTF-8 是一种变长的字符编码方式,可以编码所有的 Unicode 字符。它是一种广泛使用的字符编码,能够支持多种语言和符号。每个 UTF-8 字符可以由1到4个字节表示,这使得它兼容 ASCII(对于标准 ASCII 字符,UTF-8 只使用一个字节)。</li></ul><p>因此,<code>C.UTF-8</code> 结合了 <code>C</code> 区域设定和 UTF-8 字符编码的优势。使用 <code>C.UTF-8</code> 时,系统默认语言环境保持简单和高效,同时支持更广泛的字符集,特别是多语言和非英语字符。这样可以在需要兼容性的同时,提供对全球化字符的支持。</p></div><h3 id="_3-2-2-almalinux9-设置默认编码" tabindex="-1">3.2.2 AlmaLinux9 设置默认编码 <a class="header-anchor" href="#_3-2-2-almalinux9-设置默认编码" aria-label="Permalink to "3.2.2 AlmaLinux9 设置默认编码""></a></h3><ul><li>① 搜索中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">dnf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> search</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+W+'" alt="" loading="lazy"></p><ul><li>② 安装中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">dnf</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> glibc-langpack-zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+K+'" alt="" loading="lazy"></p><ul><li>③ 切换语言环境为中文:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">localectl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set-locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANG=zh_CN.UTF-8</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+$+'" alt="" loading="lazy"></p><ul><li>④ 手动加载配置文件,使其生效:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/locale.conf</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+Y+'" alt="" loading="lazy"></p><h3 id="_3-2-3-ubuntu-22-04-设置默认编码" tabindex="-1">3.2.3 Ubuntu 22.04 设置默认编码 <a class="header-anchor" href="#_3-2-3-ubuntu-22-04-设置默认编码" aria-label="Permalink to "3.2.3 Ubuntu 22.04 设置默认编码""></a></h3><ul><li>① 安装中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> language-pack-zh-hans</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+ss+'" alt="" loading="lazy"></p><ul><li>② 切换环境为中文:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">update-locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANG=zh_CN.UTF-8</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANGUAGE=zh_CN:zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+is+'" alt="" loading="lazy"></p><ul><li>③ 手动加载配置文件,使其生效:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/default/locale</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+as+'" alt="" loading="lazy"></p>',324);function ys(us,bs,ms,Cs,As,Bs){return l(),n("div",null,[ls,s("p",null,[s("mjx-container",ps,[(l(),n("svg",ts,es)),ks])]),s("ul",null,[s("li",null,[s("p",null,[i("那么,结果就是:"),s("mjx-container",ds,[(l(),n("svg",rs,Es)),gs])])]),os]),Fs])}const Ts=p(ns,[["render",ys]]);export{vs as __pageData,Ts as default};
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><h2 id="_2-8-运算符优先级" tabindex="-1">2.8 运算符优先级 <a class="header-anchor" href="#_2-8-运算符优先级" aria-label="Permalink to "2.8 运算符优先级""></a></h2><ul><li>C 语言中运算符的优先级,如下所示:</li></ul><table tabindex="0"><thead><tr><th><strong>优先级</strong></th><th><strong>运算符</strong></th><th><strong>名称或含义</strong></th><th><strong>结合方向</strong></th></tr></thead><tbody><tr><td><strong>1</strong></td><td><code>[]</code></td><td>数组下标</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>()</code></td><td>圆括号</td><td></td></tr><tr><td></td><td><code>.</code></td><td>成员选择(对象)</td><td></td></tr><tr><td></td><td><code>-></code></td><td>成员选择(指针)</td><td></td></tr><tr><td><strong>2</strong></td><td><code>-</code></td><td>负号运算符</td><td>⬅️(从右到左)</td></tr><tr><td></td><td><code>(类型)</code></td><td>强制类型转换</td><td></td></tr><tr><td></td><td><code>++</code></td><td>自增运算符</td><td></td></tr><tr><td></td><td><code>--</code></td><td>自减运算符</td><td></td></tr><tr><td></td><td><code>*</code></td><td>取值运算符</td><td></td></tr><tr><td></td><td><code>&</code></td><td>取地址运算符</td><td></td></tr><tr><td></td><td><code>!</code></td><td>逻辑非运算符</td><td></td></tr><tr><td></td><td><code>~</code></td><td>按位取反运算符</td><td></td></tr><tr><td></td><td><code>sizeof</code></td><td>长度运算符</td><td></td></tr><tr><td><strong>3</strong></td><td><code>/</code></td><td>除</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>*</code></td><td>乘</td><td></td></tr><tr><td></td><td><code>%</code></td><td>余数(取模)</td><td></td></tr><tr><td><strong>4</strong></td><td><code>+</code></td><td>加</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>-</code></td><td>减</td><td></td></tr><tr><td><strong>5</strong></td><td><code><<</code></td><td>左移</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>>></code></td><td>右移</td><td></td></tr><tr><td><strong>6</strong></td><td><code>></code></td><td>大于</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>>=</code></td><td>大于等于</td><td></td></tr><tr><td></td><td><code><</code></td><td>小于</td><td></td></tr><tr><td></td><td><code><=</code></td><td>小于等于</td><td></td></tr><tr><td><strong>7</strong></td><td><code>==</code></td><td>等于</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>!=</code></td><td>不等于</td><td></td></tr><tr><td><strong>8</strong></td><td><code>&</code></td><td>按位与</td><td>➡️(从左到右)</td></tr><tr><td><strong>9</strong></td><td><code>^</code></td><td>按位异或</td><td>➡️(从左到右)</td></tr><tr><td><strong>10</strong></td><td><code>|</code></td><td>按位或</td><td>➡️(从左到右)</td></tr><tr><td><strong>11</strong></td><td><code>&&</code></td><td>逻辑与</td><td>➡️(从左到右)</td></tr><tr><td><strong>12</strong></td><td><code>||</code></td><td>逻辑或</td><td>➡️(从左到右)</td></tr><tr><td><strong>13</strong></td><td><code>?:</code></td><td>条件运算符</td><td>⬅️(从右到左)</td></tr><tr><td><strong>14</strong></td><td><code>=</code></td><td>赋值运算符</td><td>⬅️(从右到左)</td></tr><tr><td></td><td><code>/=</code></td><td>除后赋值</td><td></td></tr><tr><td></td><td><code>*=</code></td><td>乘后赋值</td><td></td></tr><tr><td></td><td><code>%=</code></td><td>取模后赋值</td><td></td></tr><tr><td></td><td><code>+=</code></td><td>加后赋值</td><td></td></tr><tr><td></td><td><code>-=</code></td><td>减后赋值</td><td></td></tr><tr><td></td><td><code><<=</code></td><td>左移后赋值</td><td></td></tr><tr><td></td><td><code>>>=</code></td><td>右移后赋值</td><td></td></tr><tr><td></td><td><code>&=</code></td><td>按位与后赋值</td><td></td></tr><tr><td></td><td><code>^=</code></td><td>按位异或后赋值</td><td></td></tr><tr><td></td><td><code>|=</code></td><td>按位或后赋值</td><td></td></tr><tr><td><strong>15</strong></td><td><code>,</code></td><td>逗号运算符</td><td>➡️(从左到右)</td></tr></tbody></table><div class="warning custom-block github-alert"><p class="custom-block-title">WARNING</p><p></p><ul><li>① 不要过多的依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,尽量<code>使用小括号来控制</code>表达式的执行顺序。</li><li>② 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它<code>分成几步</code>来完成。</li><li>③ 运算符优先级不用刻意地去记忆,总体上:一元运算符 > 算术运算符 > 关系运算符 > 逻辑运算符 > 三元运算符 > 赋值运算符。</li></ul></div><h1 id="第三章-附录" tabindex="-1">第三章:附录 <a class="header-anchor" href="#第三章-附录" aria-label="Permalink to "第三章:附录""></a></h1><h2 id="_3-1-字符集和字符集编码" tabindex="-1">3.1 字符集和字符集编码 <a class="header-anchor" href="#_3-1-字符集和字符集编码" aria-label="Permalink to "3.1 字符集和字符集编码""></a></h2><h3 id="_3-3-1-概述" tabindex="-1">3.3.1 概述 <a class="header-anchor" href="#_3-3-1-概述" aria-label="Permalink to "3.3.1 概述""></a></h3><ul><li>字符集和字符集编码(简称编码)计算机系统中处理文本数据的两个基本概念,它们密切相关但又有区别。</li><li>字符集(Character Set)是一组字符的集合,其中每个字符都被分配了一个<code>唯一的编号</code>(通常是数字)。字符可以是字母、数字、符号、控制代码(如换行符)等。<code>字符集定义了可以表示的字符的范围</code>,但它并不直接定义如何将这些字符存储在计算机中。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>ASCII(美国信息交换标准代码)是最早期和最简单的字符集之一,它只包括了英文字母、数字和一些特殊字符,共 128 个字符。每个字符都分配给了一个从 0 到 127 的数字。</p></div><ul><li>字符集编码(Character Encoding,简称编码)是一种方案或方法,<code>它定义了如何将字符集中的字符转换为计算机存储和传输的数据(通常是一串二进制数字)</code>。简而言之,编码是字符到二进制数据之间的映射规则。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>ASCII 编码方案定义了如何将 ASCII 字符集中的每个字符表示为 7 位的二进制数字。例如:大写字母<code>'A'</code>在 ASCII 编码中表示为二进制的<code>1000001</code>,十进制的 <code>65</code> 。</p></div><ul><li><code>字符集</code>和<code>字符集编码</code>之间的关系如下:</li></ul><p><img src="`+H+'" alt="" loading="lazy"></p><ul><li>Linux 中安装帮助手册:</li></ul><p><img src="'+M+'" alt="" loading="lazy"></p><h3 id="_3-3-2-ascii-编码" tabindex="-1">3.3.2 ASCII 编码 <a class="header-anchor" href="#_3-3-2-ascii-编码" aria-label="Permalink to "3.3.2 ASCII 编码""></a></h3><ul><li>从<code>冯·诺依曼</code>体系结构中,我们知道,计算机中所有的<code>数据</code>和<code>指令</code>都是以<code>二进制</code>的形式表示的;所以,计算机中对于文本数据的数据也是以二进制来存储的,那么对应的流程如下:</li></ul><p><img src="'+S+'" alt="" loading="lazy"></p><ul><li>我们知道,计算机是上个世纪 60 年代在美国研制成功的,为了实现字符和二进制的转换,美国就制定了一套字符编码,即英语字符和二进制位之间的关系,即 ASCII (American Standard Code for Information Interchange)编码: <ul><li>ASCII 编码只包括了英文字符、数字和一些特殊字符,一共 128 个字符,并且每个字符都分配了唯一的数字,范围是 0 - 127。</li><li>ASCII 编码中的每个字符都使用 7 位的二进制数字表示;但是,计算机中的存储的最小单位是 1 B = 8 位,那么最高位统一规定为 0 。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 其实,早期是没有字符集的概念的,只是后来为了解决乱码问题,而产生了字符集的概念。</li><li>② 对于英文体系来说,<code>a-zA-Z0-9</code>以及一些<code>特殊字符</code>一共 <code>128</code> 就可以满足实际存储需求;所以,在也是为什么 ASCII 码使用 7 位二进制(2^7 = 128 )来存储的。</li></ul></div><ul><li>在操作系统中,就内置了对应的编码表,Linux 也不例外;可以使用如下的命令查看:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">man</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ascii</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+V+'" alt="" loading="lazy"></p><ul><li>其对应的 ASCII 编码表,如下所示:</li></ul><p><img src="'+O+'" alt="" loading="lazy"></p><ul><li>但是,随着计算机的发展,计算机开始了东征之路,由美国传播到东方:</li></ul><p><img src="'+Z+'" alt="" loading="lazy"></p><ul><li>先是传播到了欧洲,欧洲在兼容 ASCII 编码的基础上,推出了 ISO8859-1 编码,即: <ul><li>ISO8859-1 编码包括基本的拉丁字母表、数字、标点符号,以及西欧语言中特有的一些字符,如:法语中的 <code>è</code>、德语中的 <code>ü</code> 等。</li><li>ISO 8859-1 为每个字符分配一个单字节(8 位)编码,意味着它可以表示最多 256 (2^8)个不同的字符(编号从 0 到 255)。</li><li>ISO 8859-1 的前 128 个字符与 ASCII 编码完全一致,这使得 ASCII 编码的文本可以无缝转换为 ISO 8859-1 编码。</li></ul></li></ul><p><img src="'+R+'" alt="" loading="lazy"></p><p><img src="'+G+'" alt="" loading="lazy"></p><ul><li>计算机继续传播到了亚洲,亚洲(双字节)各个国家分别给出了自己国家对应的字符集编码,如: <ul><li>日本推出了 Shift-JIS 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围: <ul><li>第一个字节:129 - 159 和 224 - 239 。</li><li>第二个字节:64 - 126 和 128 - 252 。</li></ul></li></ul></li><li>韩国推出了 EUC-KR 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围:从 41281 - 65278。</li></ul></li><li>中国推出了 GBK 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围:33088 - 65278 。</li></ul></li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 通过上面日本、韩国、中国的编码十进制范围,我们可以看到,虽然这些编码系统在技术上的编码范围存在重叠(特别是在高位字节区域),但因为它们各自支持的字符集完全不同,所以实际上它们并不直接冲突。</li><li>② 但是,如果一个中国人通过 GBK 编码写的文章,通过邮件发送给韩国人,因为韩国和中国在字符集编码上的高位字节有重叠部分,必然会造成歧义。</li></ul></div><h3 id="_3-3-3-unicode-编码" tabindex="-1">3.3.3 Unicode 编码 <a class="header-anchor" href="#_3-3-3-unicode-编码" aria-label="Permalink to "3.3.3 Unicode 编码""></a></h3><ul><li><p>在 Unicode 之前,世界上存在着数百种不同的编码系统,每一种编码系统都是为了支持特定语言或一组语言的字符集。这些编码系统,包括:ASCII、ISO 8859 系列、GBK、Shift-JIS、EUC-KR 等,它们各自有不同的字符范围和编码方式。这种多样性虽然在局部范围内解决了字符表示的问题,但也带来了以下几个方面的挑战:</p><ul><li><code>编码冲突</code>:由于不同的编码系统可以为相同的字节值分配不同的字符,因此在不同编码之间转换文本时,如果没有正确处理编码信息,就很容易产生乱码。这种编码冲突在尝试处理多种语言的文本时尤为突出。</li><li><code>编码的复杂性</code>:随着全球化的发展,软件和系统需要支持越来越多的语言,这就要求开发者和系统同时处理多种不同的编码系统。这不仅增加了开发和维护的复杂性,而且也增加了出错的风险。</li><li><code>资源限制</code>:在早期计算机技术中,内存和存储资源相对有限。不同的编码标准要求系统存储多套字符集数据,这无疑增加了对有限资源的消耗。</li><li>……</li></ul></li><li><p>针对上述的种种问题,为了推行全球化,Unicode 应运而生,Unicode 的核心规则和设计原则是建立一个全球统一的字符集,使得世界上所有的文字和符号都能被唯一地识别和使用,无论使用者位于何地或使用何种语言。这套规则包括了字符的编码、表示、处理和转换机制,旨在确保不同系统和软件间能够无缝交换和处理文本数据。</p><ul><li><code>通用字符集 (UCS)</code>:Unicode 为每一个字符分配一个唯一的编号(称为<code>“码点”</code>)。这些码点被组织在一个统一的字符集中,官方称之为 “通用字符集”(Universal Character Set,UCS)。码点通常表示为 <code>U+</code> 后跟一个十六进制数,例如:<code>U+0041</code> 代表大写的英文字母 <code>“A”</code>。</li><li><code>编码平面和区段</code>:Unicode 码点被划分为多个 “平面(Planes)”,每个平面包含 65536(16^4)个码点。目前,Unicode定义了 17 个平面(从 0 到16),每个平面被分配了一个编号,从 “基本多文种平面(BMP)” 的 0 开始,到 16 号平面结束。这意味着 Unicode 理论上可以支持超过 110万(17*65536)个码点。</li></ul></li><li><p>Unicode 仅仅只是字符集,给每个字符设置了唯一的数字编号而已,却没有给出这些数字编号实际如何存储,可以通过如下命令查看:</p></li></ul><p><img src="'+J+'" alt="" loading="lazy"></p><ul><li>为了在计算机系统中表示 Unicode 字符,定义了几种编码方案,这些方案包括 UTF-8、UTF-16 和 UTF-32 等。 <ul><li><strong>UTF-8</strong>:使用 1 - 4 个字节表示每个 Unicode 字符,兼容 ASCII,是网络上最常用的编码。</li><li><strong>UTF-16</strong>:使用 2 - 4 个字节表示每个 Unicode 字符,适合于需要经常处理基本多文种平面之外字符的应用。</li><li><strong>UTF-32</strong>:使用固定的 4 个字节表示每个 Unicode 字符,简化了字符处理,但增加了存储空间的需求。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 只有 UTF-8 兼容 ASCII,UTF-32 和 UTF-16 都不兼容 ASCII,因为它们没有单字节编码。 <ul><li>UTF-8 使用尽量少的字节来存储一个字符,不但能够节省存储空间,而且在网络传输时也能节省流量,所以很多纯文本类型的文件,如:各种编程语言的源文件、各种日志文件和配置文件等以及绝大多数的网页,如:百度、新浪、163 等都采用 UTF-8 编码。但是,UTF-8 的缺点是效率低,不但在存储和读取时都要经过转换,而且在处理字符串时也非常麻烦。例如:要在一个 UTF-8 编码的字符串中找到第 10 个字符,就得从头开始一个一个地检索字符,这是一个很耗时的过程,因为 UTF-8 编码的字符串中每个字符占用的字节数不一样,如果不从头遍历每个字符,就不知道第 10 个字符位于第几个字节处,就无法定位。不过,随着算法的逐年精进,UTF-8 字符串的定位效率也越来越高了,往往不再是槽点了。</li><li>UTF-32 是“以空间换效率”,正好弥补了 UTF-8 的缺点,UTF-32 的优势就是效率高:UTF-32 在存储和读取字符时不需要任何转换,在处理字符串时也能最快速地定位字符。例如:在一个 UTF-32 编码的字符串中查找第 10 个字符,很容易计算出它位于第 37 个字节处,直接获取就行,不用再逐个遍历字符了,没有比这更快的定位字符的方法了。但是,UTF-32 的缺点也很明显,就是太占用存储空间了,在网络传输时也会消耗很多流量。我们平常使用的字符编码值一般都比较小,用一两个字节存储足以,用四个字节简直是暴殄天物,甚至说是不能容忍的,所以 UTF-32 在应用上不如 UTF-8 和 UTF-16 广泛。</li><li>UTF-16 可以看做是 UTF-8 和 UTF-32 的折中方案,它平衡了存储空间和处理效率的矛盾。对于常用的字符,用两个字节存储足以,这个时候 UTF-16 是不需要转换的,直接存储字符的编码值即可。</li></ul></li><li>② 总而言之,<strong>UTF-8</strong> 编码兼容性强,适合大多数应用,特别是英文文本处理。<strong>UTF-16</strong> 编码适合处理大量亚洲字符,但在处理英文或其他拉丁字符时相对浪费空间。<strong>UTF-32</strong>编码简单直接,但非常浪费空间,适合需要固定字符宽度的特殊场景。</li><li>③ 在实际应用中,UTF-8 通常是最常用的编码方式,因为它在兼容性和空间效率之间提供了良好的平衡。</li></ul></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① Windows 内核、.NET Framework、Java String 内部采用的都是 <code>UTF-16</code> 编码,主要原因是为了在兼顾字符处理效率的同时,能够有效处理多种语言的字符集,即:历史遗留问题、兼容性要求和多语言支持的需要。</li><li>② 不过,UNIX 家族的操作系统(Linux、Mac OS、iOS 等)内核都采用 <code>UTF-8</code> 编码,主要是为了兼容性和灵活性,因为 UTF-8 编码可以无缝处理 ASCII 字符,同时也能够支持多字节的 Unicode 字符,即:为了最大限度地兼容 ASCII,同时保持系统的简单性、灵活性和效率。</li></ul></div><ul><li><code>Unicode 字符集</code>和对应的<code>UTF-8 字符编码</code>之间的关系,如下所示:</li></ul><p><img src="'+j+'" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p><code>宽字符</code>和<code>窄字符</code>是编程和计算机系统中对字符类型的一种分类,主要用于描述字符在内存中的表示形式及其与编码方式的关系。</p><ul><li>① <code>窄字符</code>通常指使用单个字节(8 位)来表示的字符。在许多传统的编码系统中,窄字符通常代表 ASCII 字符或其它单字节字符集中的字符。换言之,<code>窄字符</code>适合处理简单的单字节字符集,如:ASCII,适用于处理西方语言的应用。</li><li>② <code>宽字符</code>指使用多个字节(通常是两个或更多)来表示的字符。这些字符通常用于表示比 ASCII 范围更广的字符集,如 Unicode 字符。换言之,<code>宽字符</code>适合处理多字节字符集,如:UTF-32、UTF-16 等,适用于需要处理多种语言和符号的国际化应用。</li></ul><p>在现代编程中,<code>窄字符</code>通常与 <code>UTF-8</code> 编码关联,特别是在处理文本输入、输出和网络传输时。尽管 <code>UTF-8</code> 是变长编码,由于其高效的空间利用和对 <code>ASCII</code> 的优化,通常与<code>窄字符</code>概念关联。而<code>宽字符</code>通常与 <code>UTF-16</code> 编码或 <code>UTF-32</code>编码关联,这些编码使用更大的固定或半固定长度来表示字符,适合处理更大的字符集。</p></div><h2 id="_3-2-wsl2-中设置默认编码为中文" tabindex="-1">3.2 WSL2 中设置默认编码为中文 <a class="header-anchor" href="#_3-2-wsl2-中设置默认编码为中文" aria-label="Permalink to "3.2 WSL2 中设置默认编码为中文""></a></h2><h3 id="_3-2-1-概述" tabindex="-1">3.2.1 概述 <a class="header-anchor" href="#_3-2-1-概述" aria-label="Permalink to "3.2.1 概述""></a></h3><ul><li>查看 WSL2 的 Linux 发行版的默认编码:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">echo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $LANG</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+X+'" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p><code>C.UTF-8</code> 是一种字符编码设置,结合了 <code>C</code> 区域设定和 <code>UTF-8</code> 字符编码。</p><ul><li>① <strong>C 区域设定</strong>:这是一个标准的、最小化的区域设置,通常用于系统默认的语言环境。<code>C</code> 区域设定下,所有字符都被认为是 ASCII 字符集的一部分,这意味着仅支持基本的英文字符和符号。在 <code>C</code> 区域设定中,字符串的排序和比较是基于简单的二进制值比较,这与本地化的语言设置相比相对简单。</li><li>② <strong>UTF-8 编码</strong>:UTF-8 是一种变长的字符编码方式,可以编码所有的 Unicode 字符。它是一种广泛使用的字符编码,能够支持多种语言和符号。每个 UTF-8 字符可以由1到4个字节表示,这使得它兼容 ASCII(对于标准 ASCII 字符,UTF-8 只使用一个字节)。</li></ul><p>因此,<code>C.UTF-8</code> 结合了 <code>C</code> 区域设定和 UTF-8 字符编码的优势。使用 <code>C.UTF-8</code> 时,系统默认语言环境保持简单和高效,同时支持更广泛的字符集,特别是多语言和非英语字符。这样可以在需要兼容性的同时,提供对全球化字符的支持。</p></div><h3 id="_3-2-2-almalinux9-设置默认编码" tabindex="-1">3.2.2 AlmaLinux9 设置默认编码 <a class="header-anchor" href="#_3-2-2-almalinux9-设置默认编码" aria-label="Permalink to "3.2.2 AlmaLinux9 设置默认编码""></a></h3><ul><li>① 搜索中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">dnf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> search</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+W+'" alt="" loading="lazy"></p><ul><li>② 安装中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">dnf</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> glibc-langpack-zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+K+'" alt="" loading="lazy"></p><ul><li>③ 切换语言环境为中文:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">localectl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set-locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANG=zh_CN.UTF-8</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+Y+'" alt="" loading="lazy"></p><ul><li>④ 手动加载配置文件,使其生效:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/locale.conf</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+$+'" alt="" loading="lazy"></p><h3 id="_3-2-3-ubuntu-22-04-设置默认编码" tabindex="-1">3.2.3 Ubuntu 22.04 设置默认编码 <a class="header-anchor" href="#_3-2-3-ubuntu-22-04-设置默认编码" aria-label="Permalink to "3.2.3 Ubuntu 22.04 设置默认编码""></a></h3><ul><li>① 安装中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> language-pack-zh-hans</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+ss+'" alt="" loading="lazy"></p><ul><li>② 切换环境为中文:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">update-locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANG=zh_CN.UTF-8</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANGUAGE=zh_CN:zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+is+'" alt="" loading="lazy"></p><ul><li>③ 手动加载配置文件,使其生效:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/default/locale</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="'+as+`" alt="" loading="lazy"></p><h2 id="_3-3-在-c-语言中使用中文字符" tabindex="-1">3.3 在 C 语言中使用中文字符 <a class="header-anchor" href="#_3-3-在-c-语言中使用中文字符" aria-label="Permalink to "3.3 在 C 语言中使用中文字符""></a></h2><h3 id="_3-3-1-概述-1" tabindex="-1">3.3.1 概述 <a class="header-anchor" href="#_3-3-1-概述-1" aria-label="Permalink to "3.3.1 概述""></a></h3><ul><li>大部分 C 语言文章或教材对中文字符的处理讳莫如深,甚至只字不提,导致很多初学者认为 C 语言只能处理英文,而不支持中文。</li><li>其实,这是不对的。C 语言作为一门系统级别的编程语言,理应支持世界上任何一个国家的文字,如:中文、日文、韩文等。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>如果 C 语言不支持中文,那么简体中文 Windows 操作系统将无从谈起,我们只能被迫使用英文 Windows 操作系统,这对计算机的传播而言将会是一种巨大的阻碍。</p></div><h3 id="_3-3-2-中文字符的存储" tabindex="-1">3.3.2 中文字符的存储 <a class="header-anchor" href="#_3-3-2-中文字符的存储" aria-label="Permalink to "3.3.2 中文字符的存储""></a></h3><ul><li>要想正确的存储中文字符,需要解决如下的两个问题: <ul><li>① 足够长的数据类型:char 的长度是 1 个字节,只能存储拉丁体系的问题,并不能存储中文字符,所以至少需要 2 个字节的内存空间。</li><li>② 包含中文的字符集:C 语言规定,对于中文、日文、韩文等非 ASCII 编码之外的单个字符,需要有专门的字符类型,也就是需要使用宽字符的编码方式。而常见的宽字符的编码有 UTF-16 和 UTF-32,它们都是基于 Unicode 字符集的,都能够支持全球的文字。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>上文提及过,在现代编程中,<code>窄字符</code>通常与 <code>UTF-8</code> 编码关联,特别是在处理文本输入、输出和网络传输时。尽管 <code>UTF-8</code> 是变长编码,由于其高效的空间利用和对 <code>ASCII</code> 的优化,通常与<code>窄字符</code>概念关联。而<code>宽字符</code>通常与 <code>UTF-16</code> 编码或 <code>UTF-32</code>编码关联,这些编码使用更大的固定或半固定长度来表示字符,适合处理更大的字符集。</p></div><ul><li>在真正实现的时候,微软的 MSVC 编译器采用 UTF-16 编码,即:使用 2 个字节来存储一个字符,使用 unsigned short 类型就可以容纳。而 GCC、LLVM/Clang 采用 UTF-32 编码,使用 4 个字节存储字符,用 unsigned int 类型就可以容纳。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>不同的编译器可以使用不同的整数类型,来存储宽字符,这对于跨平台开发来说,非常不友好。</p></div><ul><li>为了解决上述的问题,C 语言推出了一种全新的类型 <code>wchar_t</code> 类型,用来存储宽字符类型。 <ul><li>在微软的 MSVC 编译器中,它的长度是 2 个字节。</li><li>在 GCC、LLVM/Clang 中,它的长度是 4 个字节。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① <code>wchar_t</code> 中的 <code>w</code>是 wide 的首字母,<code>t</code> 是 type 的首字母,所以 <code>wchar_t</code> 就是宽字符类型,足够见名知意。</li><li>② <code>wchar_t</code> 是用 typedef 关键字定义的一个别名,后文讲解,<code>wchar_t</code> 在不同的编译器下长度不一样。</li><li>③ <code>wchar_t</code> 类型位于 <code><wchar.h></code> 头文件中,它使得代码在具有良好移植性的同时,也节省了不少内存,以后我们就用它来存储宽字符。</li></ul></div><ul><li>对于普通的拉丁体系的字符,我们使用 <code>''</code> 括起来,来表示字符,如:<code>'A'</code>、<code>'&'</code> 等。但是,如果要想表示宽字符,就需要加上 <code>L</code> 前缀了,如:<code>L'A'</code>、<code>L'中'</code>。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>宽字符字面量中的 <code>L</code> 是 <code>Long</code> 的缩写,意思是比普通的字符(char)要长。</p></div><ul><li>示例:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stddef.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> /* 存储宽字符,如:中文 */</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> d </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> e </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br></div></div><h3 id="_3-3-3-中文字符的输出" tabindex="-1">3.3.3 中文字符的输出 <a class="header-anchor" href="#_3-3-3-中文字符的输出" aria-label="Permalink to "3.3.3 中文字符的输出""></a></h3><ul><li>对于宽字符,就不能使用 <code>putchar</code> 函数和 <code>printf</code> 函数来进行输出了,需要使用 <code>putwchar</code> 函数和 <code>wprintf</code> 函数。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① <code>putchar</code> 函数和 <code>printf</code> 函数,只能输出窄字符,即:<code>char</code> 类型表示的字符。</li><li>② <code>putwchar</code> 函数可以用来输出宽字符,用法和 <code>putchar</code> 函数类似。</li><li>③ <code>wprintf</code>函数可以用来输出宽字符,用法和 <code>printf</code> 函数类型,只不过格式占位符是 <code>%lc</code> 。</li><li>④ 在输出宽字符之前,还需要使用 <code>setlocale</code> 函数进行本地化设置,告诉程序如何才能正确地处理各个国家的语言文化。</li></ul></div><ul><li>示例:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <locale.h></span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stddef.h></span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <wchar.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> /* 存储宽字符,如:中文 */</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'国'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'人'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> d </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'你'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> e </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'好'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 将本地环境设置为简体中文</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> setlocale</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(LC_ALL, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"zh_CN.UTF-8"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 使用专门的 putwchar 输出宽字符</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(a);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(b);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(c);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(d);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(e);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 只能使用宽字符</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 使用通用的 wprintf 输出宽字符</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> wprintf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%lc</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %lc</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %lc</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %lc</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %lc\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, a, b, c, d, e);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br></div></div><h3 id="_3-3-4-宽字符串" tabindex="-1">3.3.4 宽字符串 <a class="header-anchor" href="#_3-3-4-宽字符串" aria-label="Permalink to "3.3.4 宽字符串""></a></h3><ul><li>如果给字符串加上 <code>L</code> 前缀,就变成了宽字符串,即:它包含的每个字符都是宽字符,一律采用 UTF-16 或者 UTF-32 编码。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 输出宽字符串可以使用 <wchar.h> 头文件中的 wprintf 函数,对应的格式控制符是<code>%ls</code>。</li><li>② 不加<code>L</code>前缀的窄字符串也可以处理中文,我们之前就在 <code>printf</code> 函数中,使用格式占位符 <code>%s</code> 输出含有中文的字符串,至于为什么,看下文讲解。</li></ul></div><ul><li>示例:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <locale.h></span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stddef.h></span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <wchar.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> /* 存储宽字符,如:中文 */</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">[]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"中国人"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"你好"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 将本地环境设置为简体中文</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> setlocale</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(LC_ALL, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"zh_CN.UTF-8"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 使用通用的 wprintf 输出字符串</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> wprintf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%ls</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %ls\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, a, b);</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br></div></div><h2 id="_3-4-c-语言到底使用什么编码" tabindex="-1">3.4 C 语言到底使用什么编码? <a class="header-anchor" href="#_3-4-c-语言到底使用什么编码" aria-label="Permalink to "3.4 C 语言到底使用什么编码?""></a></h2><h3 id="_3-4-1-概述" tabindex="-1">3.4.1 概述 <a class="header-anchor" href="#_3-4-1-概述" aria-label="Permalink to "3.4.1 概述""></a></h3><ul><li>在 C 语言中,只有 <code>char</code> 类型的<code>窄字符</code>才会使用 ASCII 编码。而 <code>char</code> 类型的<code>窄字符串</code>、<code>wchar_t</code> 类型的<code>宽字符</code>和<code>宽字符串</code>都不使用 ASCII 编码。</li><li><code>wchar_t</code> 类型的<code>宽字符</code>和<code>宽字符串</code>使用 UTF-16 或者 UTF-32 编码,这个在上文已经讲解了,现在只剩下 <code>char</code> 类型的<code>窄字符串</code>没有讲解了,这也是下文的重点。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 其实,对于<code>char</code> 类型的窄字符串,C 语言并没有规定使用哪一种特定的编码,只要选用的编码能够适应当前的环境即可。换言之,<code>char</code> 类型的窄字符串的编码与操作系统以及编译器有关。</li><li>② 但是,<code>char</code> 类型的窄字符串一定不是 ASCII 编码,因为 ASCII 编码只能显示拉丁体系的文字,而不能输出中文、日文、韩文等。</li><li>③ 讨论窄字符串的编码要从以下两个方面下手。</li></ul></div><h3 id="_3-4-2-源文件使用什么编码" tabindex="-1">3.4.2 源文件使用什么编码? <a class="header-anchor" href="#_3-4-2-源文件使用什么编码" aria-label="Permalink to "3.4.2 源文件使用什么编码?""></a></h3><ul><li>源文件用来保存我们编写的代码,它最终会被存储到本地硬盘,或者远程服务器,这个时候就要尽量压缩文件体积,以节省硬盘空间或者网络流量,而代码中大部分的字符都是 ASCII 编码中的字符,用一个字节足以容纳,所以 UTF-8 编码是一个不错的选择。</li><li>UTF-8 兼容 ASCII,代码中的大部分字符可以用一个字节保存。另外,UTF-8 基于 Unicode,支持全世界的字符,我们编写的代码可以给全球的程序员使用,真正做到技术无国界。</li><li>常见的 IDE 或者编辑器,如:Sublime Text、Vim 等,在创建源文件的时候一般默认就是 UTF-8 编码。就算不是,我们也会推荐设置为 UTF-8 编码,如下所示:</li></ul><p><img src="`+ns+`" alt="" loading="lazy"></p><ul><li>对于 C 语言编译器来说,它往往支持多种编码格式的源文件。微软的 MSVC 、GCC 和 LLVM/Clang 都支持 UTF-8 和本地编码的源文件。</li></ul><h3 id="_3-4-3-窄字符串使用什么编码" tabindex="-1">3.4.3 窄字符串使用什么编码? <a class="header-anchor" href="#_3-4-3-窄字符串使用什么编码" aria-label="Permalink to "3.4.3 窄字符串使用什么编码?""></a></h3><ul><li>前文提到,可以使用 puts 函数或 printf 函数来输出窄字符串,如下所示:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stdio.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 存储字符串</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">[]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "我"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">str2 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "爱你"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> puts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(str);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 我</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> puts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(str2);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 爱你</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 存储字符串</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> str3</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">[]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "你"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">str4 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "是好人"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, str3);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 你</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, str4);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 是好人</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br></div></div><ul><li>像 <code>"我"</code>、<code>"爱你"</code>、<code>"你"</code>、<code>"是好人"</code>就是需要被处理的窄字符串,当程序运行的时候,它们会被加载进内存。并且,这些字符串中是包含中文的,所以一定不会使用 ASCII 编码。</li><li>其实,对于代码中需要被处理的窄字符串,不同的编译器差别还是挺大的: <ul><li>微软的 MSVC 编译器使用本地编码来保存这些字符。对于简体中文版的 Windows,使用的是 GBK 编码。</li><li>GCC、LLVM/Clang 编译器使用和源文件相同的编码来保存这些字符:如果源文件使用的是 UTF-8 编码,那么这些字符也使用 UTF-8 编码;如果源文件使用的是 GBK 编码,那么这些字符也使用 GBK 编码。</li></ul></li></ul><h3 id="_3-3-4-总结" tabindex="-1">3.3.4 总结 <a class="header-anchor" href="#_3-3-4-总结" aria-label="Permalink to "3.3.4 总结""></a></h3><ul><li>① 对于 <code>char</code> 类型的窄字符,在 C 语言中,使用的是 <code>ASCII</code> 编码。</li><li>② 对于 <code>wchar_t</code> 类型的<code>宽字符</code>和<code>宽字符串</code>,在 C 语言中,使用的 <code>UTF-16</code> 编码或者 <code>UTF-32</code> 编码,它们都是基于 Unicode 字符集的。</li><li>③ 对于 <code>char</code> 类型的<code>窄字符串</code>,微软的 MSVC 编译器使用本地编码,GCC、LLVM/Clang 使用和源文件编码相同的编码。</li><li>④ 处理窄字符和处理宽字符使用的函数也不一样,如下所示: <ul><li><code><stdio.h></code> 头文件中的 <code>putchar</code>、<code>puts</code>、<code>printf</code> 函数只能用来处理窄字符。</li><li><code><wchar.h></code> 头文件中的 <code>putwchar</code>、<code>wprintf</code> 函数只能用来处理宽字符。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① C 语言作为一门较为底层和古老的语言,对于字符的处理,之所以有这么多种方式,是因为历史遗留的原因和早期计算机资源有限的背景密切相关。</li><li>② 现代化的编程语言,如:C++ 、Java、Python 等都对字符串处理进行了改进和抽象,如:C++ 中的 <code>std::string</code> 和 Java 中的 <code>String</code>。并且,现代编程语言的字符串类型通常会自动管理内存,这样开发者就不需要手动处理字符串的内存分配和释放,从而减少了内存泄漏和缓冲区溢出等问题。当然,现代编程语言通常内置了对各种字符编码的支持,能够方便地处理不同语言的字符,如:Java 的 <code>String</code> 类和 Python 的 <code>str</code> 类型都默认支持 Unicode,可以轻松处理中文等多字节字符。</li></ul></div><h3 id="_3-3-5-编码字符集和运行字符集" tabindex="-1">3.3.5 编码字符集和运行字符集 <a class="header-anchor" href="#_3-3-5-编码字符集和运行字符集" aria-label="Permalink to "3.3.5 编码字符集和运行字符集""></a></h3><ul><li>源文件使用的字符集,通常称为<code>编码字符集</code>,即:写代码的时候所使用的字符集。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>源文件需要保存到硬盘,或者在网络上传输,使用的编码要尽量节省存储空间,同时要方便跨国交流,所以一般使用 UTF-8,这就是选择编码字符集的标准。</p></div><ul><li>程序中的字符或者字符串使用的字符集,通常称为<code>运行字符集</code>,即:程序运行时所使用的字符集。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>程序中的字符或者字符串,在程序运行后必须被载入到内存,才能进行后续的处理,对于这些字符来说,要尽量选用能够提高处理速度的编码,如:UTF-16 和 UTF-32 编码就能够快速定位(查找)字符。</p></div><ul><li>编码字符集是站在存储和传输的角度,而运行字符集是站在处理或者操作的角度,所以它们并不一定相同。</li></ul>`,371);function us(bs,ms,Cs,As,Bs,Ds){return l(),n("div",null,[ps,s("p",null,[s("mjx-container",ts,[(l(),n("svg",hs,ks)),ds])]),s("ul",null,[s("li",null,[s("p",null,[i("那么,结果就是:"),s("mjx-container",rs,[(l(),n("svg",cs,gs)),os])])]),Fs]),ys])}const qs=p(ls,[["render",us]]);export{Ts as __pageData,qs as default};
|
1
assets/notes_01_c-basic_03_xdx_index.md.8BENFVze.lean.js
Normal file
1
assets/notes_01_c-basic_03_xdx_index.md.8BENFVze.lean.js
Normal file
@ -0,0 +1 @@
|
||||
import{_ as p,c as n,j as s,a as i,a6 as a,o as l}from"./chunks/framework.hMCIpNYY.js";const t="/c/assets/1.L8V3GBrc.png",h="/c/assets/2.nqdAY_P3.png",e="/c/assets/3.D7eNbwzQ.jpg",k="/c/assets/4.DElD8M7P.svg",d="/c/assets/5.BE2mwvAQ.svg",r="/c/assets/6.aMDLQtj3.svg",c="/c/assets/7.eAeDlr0I.svg",E="/c/assets/8.CiYoL9Pa.svg",g="/c/assets/9.f3_OgcWU.svg",o="/c/assets/10.Dx5GM3xz.svg",F="/c/assets/11.DNH2vSdC.svg",y="/c/assets/12.NlBmD7pA.png",u="/c/assets/13.ZiBq6Pno.png",b="/c/assets/14.DAgmsf-w.png",m="/c/assets/15.B2iC37fw.png",C="/c/assets/16.BlE3ZFud.png",A="/c/assets/17.CBpay1zM.svg",B="/c/assets/18.g66usGgc.svg",D="/c/assets/19.BW4hoq9o.svg",v="/c/assets/20.DBXyt0gx.svg",T="/c/assets/21.QOjKI_7K.svg",q="/c/assets/22.BPFvANo_.svg",Q="/c/assets/23.BSJo8a0j.svg",f="/c/assets/24.r8ZG8Rvh.svg",_="/c/assets/25.rY0SPMAM.svg",x="/c/assets/26.CX-aIacs.svg",w="/c/assets/27.B6oI9aDx.svg",L="/c/assets/28.BK--PMbQ.svg",z="/c/assets/29.CJ87msb8.svg",U="/c/assets/30.CjsU-QJv.svg",I="/c/assets/31.s4BF2CMv.svg",P="/c/assets/32.DCGI6iJG.svg",N="/c/assets/33.C1jQxCuu.svg",H="/c/assets/35.CGTVELeO.png",M="/c/assets/36.Bz4_lEH0.gif",S="/c/assets/37.CcDWE4nn.png",V="/c/assets/38.B7y2_JVX.gif",O="/c/assets/39.Btcc3rs2.gif",Z="/c/assets/40.CR4ARW8y.png",R="/c/assets/39.Btcc3rs2.gif",G="/c/assets/42.DOX3ymYP.gif",J="/c/assets/43.Cie9_tkP.gif",j="/c/assets/44.DLjH9Ges.png",X="/c/assets/45.DhSh546m.gif",W="/c/assets/46.CCFwxiA0.gif",K="/c/assets/47.DCdP5ufU.gif",Y="/c/assets/48.CjdgNuy4.gif",$="/c/assets/49.Bg9sWT0a.gif",ss="/c/assets/50.Ma73wRvf.gif",is="/c/assets/51.rJLsU7Sw.gif",as="/c/assets/52.3DsEIiSv.gif",ns="/c/assets/53.t8GRVYsu.png",Ts=JSON.parse('{"title":"第一章:数据类型(⭐)","description":"","frontmatter":{},"headers":[],"relativePath":"notes/01_c-basic/03_xdx/index.md","filePath":"notes/01_c-basic/03_xdx/index.md","lastUpdated":1724741069000}'),ls={name:"notes/01_c-basic/03_xdx/index.md"},ps=a("",105),ts={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},hs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.912ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.075ex",height:"2.893ex",role:"img",focusable:"false",viewBox:"0 -875.7 6663.1 1278.6","aria-hidden":"true"},es=a("",1),ks=[es],ds=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("msub",null,[s("mi",null,"S"),s("mi",null,"n")]),s("mo",null,"="),s("msub",null,[s("mi",null,"a"),s("mn",null,"1")]),s("mo",null,"×"),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("msup",null,[s("mi",null,"r"),s("mi",null,"n")])]),s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mi",null,"r")])])])],-1),rs={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},cs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.912ex"},xmlns:"http://www.w3.org/2000/svg",width:"28.694ex",height:"3.146ex",role:"img",focusable:"false",viewBox:"0 -987.7 12682.9 1390.6","aria-hidden":"true"},Es=a("",1),gs=[Es],os=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("msub",null,[s("mi",null,"S"),s("mn",null,"8")]),s("mo",null,"="),s("mn",null,"1"),s("mo",null,"×"),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("msup",null,[s("mn",null,"2"),s("mn",null,"8")])]),s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mn",null,"2")])]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mn",null,"256")]),s("mrow",null,[s("mo",null,"−"),s("mn",null,"1")])]),s("mo",null,"="),s("mn",null,"255")])],-1),Fs=s("li",null,[s("p",null,[i("但是,貌似还是很复杂,我们可以换个思路,就是让 "),s("code",null,"1111 1111"),i(" 先 "),s("code",null,"+1"),i(" ,然后再 "),s("code",null,"-1"),i(",这样一增一减正好抵消掉,并且不会影响最终的结果,如下所示:")])],-1),ys=a("",371);function us(bs,ms,Cs,As,Bs,Ds){return l(),n("div",null,[ps,s("p",null,[s("mjx-container",ts,[(l(),n("svg",hs,ks)),ds])]),s("ul",null,[s("li",null,[s("p",null,[i("那么,结果就是:"),s("mjx-container",rs,[(l(),n("svg",cs,gs)),os])])]),Fs]),ys])}const qs=p(ls,[["render",us]]);export{Ts as __pageData,qs as default};
|
@ -1 +0,0 @@
|
||||
import{_ as p,c as n,j as s,a as i,a6 as a,o as l}from"./chunks/framework.hMCIpNYY.js";const t="/c/assets/1.L8V3GBrc.png",h="/c/assets/2.nqdAY_P3.png",e="/c/assets/3.D7eNbwzQ.jpg",k="/c/assets/4.DElD8M7P.svg",d="/c/assets/5.BE2mwvAQ.svg",r="/c/assets/6.aMDLQtj3.svg",c="/c/assets/7.eAeDlr0I.svg",E="/c/assets/8.CiYoL9Pa.svg",g="/c/assets/9.f3_OgcWU.svg",o="/c/assets/10.Dx5GM3xz.svg",F="/c/assets/11.DNH2vSdC.svg",y="/c/assets/12.NlBmD7pA.png",u="/c/assets/13.ZiBq6Pno.png",b="/c/assets/14.DAgmsf-w.png",m="/c/assets/15.B2iC37fw.png",C="/c/assets/16.BlE3ZFud.png",A="/c/assets/17.CBpay1zM.svg",B="/c/assets/18.g66usGgc.svg",D="/c/assets/19.BW4hoq9o.svg",v="/c/assets/20.DBXyt0gx.svg",T="/c/assets/21.QOjKI_7K.svg",Q="/c/assets/22.BPFvANo_.svg",q="/c/assets/23.BSJo8a0j.svg",f="/c/assets/24.r8ZG8Rvh.svg",_="/c/assets/25.rY0SPMAM.svg",x="/c/assets/26.CX-aIacs.svg",w="/c/assets/27.B6oI9aDx.svg",L="/c/assets/28.BK--PMbQ.svg",z="/c/assets/29.CJ87msb8.svg",H="/c/assets/30.CjsU-QJv.svg",I="/c/assets/31.s4BF2CMv.svg",U="/c/assets/32.DCGI6iJG.svg",P="/c/assets/33.C1jQxCuu.svg",N="/c/assets/35.CGTVELeO.png",M="/c/assets/36.Bz4_lEH0.gif",S="/c/assets/37.CcDWE4nn.png",V="/c/assets/38.B7y2_JVX.gif",O="/c/assets/39.Btcc3rs2.gif",Z="/c/assets/40.CR4ARW8y.png",R="/c/assets/39.Btcc3rs2.gif",G="/c/assets/42.DOX3ymYP.gif",j="/c/assets/43.Cie9_tkP.gif",J="/c/assets/44.DLjH9Ges.png",X="/c/assets/45.DhSh546m.gif",W="/c/assets/46.CCFwxiA0.gif",K="/c/assets/47.DCdP5ufU.gif",$="/c/assets/48.CjdgNuy4.gif",Y="/c/assets/49.Bg9sWT0a.gif",ss="/c/assets/50.Ma73wRvf.gif",is="/c/assets/51.rJLsU7Sw.gif",as="/c/assets/52.3DsEIiSv.gif",vs=JSON.parse('{"title":"第一章:数据类型(⭐)","description":"","frontmatter":{},"headers":[],"relativePath":"notes/01_c-basic/03_xdx/index.md","filePath":"notes/01_c-basic/03_xdx/index.md","lastUpdated":1724728274000}'),ns={name:"notes/01_c-basic/03_xdx/index.md"},ls=a("",105),ps={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},ts={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.912ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.075ex",height:"2.893ex",role:"img",focusable:"false",viewBox:"0 -875.7 6663.1 1278.6","aria-hidden":"true"},hs=a("",1),es=[hs],ks=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("msub",null,[s("mi",null,"S"),s("mi",null,"n")]),s("mo",null,"="),s("msub",null,[s("mi",null,"a"),s("mn",null,"1")]),s("mo",null,"×"),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("msup",null,[s("mi",null,"r"),s("mi",null,"n")])]),s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mi",null,"r")])])])],-1),ds={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},rs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.912ex"},xmlns:"http://www.w3.org/2000/svg",width:"28.694ex",height:"3.146ex",role:"img",focusable:"false",viewBox:"0 -987.7 12682.9 1390.6","aria-hidden":"true"},cs=a("",1),Es=[cs],gs=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("msub",null,[s("mi",null,"S"),s("mn",null,"8")]),s("mo",null,"="),s("mn",null,"1"),s("mo",null,"×"),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("msup",null,[s("mn",null,"2"),s("mn",null,"8")])]),s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mn",null,"2")])]),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mn",null,"1"),s("mo",null,"−"),s("mn",null,"256")]),s("mrow",null,[s("mo",null,"−"),s("mn",null,"1")])]),s("mo",null,"="),s("mn",null,"255")])],-1),os=s("li",null,[s("p",null,[i("但是,貌似还是很复杂,我们可以换个思路,就是让 "),s("code",null,"1111 1111"),i(" 先 "),s("code",null,"+1"),i(" ,然后再 "),s("code",null,"-1"),i(",这样一增一减正好抵消掉,并且不会影响最终的结果,如下所示:")])],-1),Fs=a("",324);function ys(us,bs,ms,Cs,As,Bs){return l(),n("div",null,[ls,s("p",null,[s("mjx-container",ps,[(l(),n("svg",ts,es)),ks])]),s("ul",null,[s("li",null,[s("p",null,[i("那么,结果就是:"),s("mjx-container",ds,[(l(),n("svg",rs,Es)),gs])])]),os]),Fs])}const Ts=p(ns,[["render",ys]]);export{vs as __pageData,Ts as default};
|
@ -1 +1 @@
|
||||
{"index.md":"Dga0tMF5","notes_01_c-basic_00_xdx_index.md":"BRC7slaL","notes_01_c-basic_01_xdx_index.md":"Fg4OXydV","notes_01_c-basic_02_xdx_index.md":"CC2Mg9VD","notes_01_c-basic_03_xdx_index.md":"Cw3Z19MO","notes_01_c-basic_04_xdx_index.md":"ySxH8sG-","notes_01_c-basic_05_xdx_index.md":"DUbOwEts","notes_01_c-basic_06_xdx_index.md":"CV_r2WNu","notes_01_c-basic_07_xdx_index.md":"CE9q5cmu","notes_04_linux_01_xdx_index.md":"C9IatKsj","notes_about_index.md":"DLuQgC_8","notes_index.md":"CeV-uJ5V"}
|
||||
{"index.md":"Dga0tMF5","notes_01_c-basic_00_xdx_index.md":"BRC7slaL","notes_01_c-basic_01_xdx_index.md":"Fg4OXydV","notes_01_c-basic_02_xdx_index.md":"CC2Mg9VD","notes_01_c-basic_03_xdx_index.md":"8BENFVze","notes_01_c-basic_04_xdx_index.md":"ySxH8sG-","notes_01_c-basic_05_xdx_index.md":"DUbOwEts","notes_01_c-basic_06_xdx_index.md":"CV_r2WNu","notes_01_c-basic_07_xdx_index.md":"CE9q5cmu","notes_04_linux_01_xdx_index.md":"C9IatKsj","notes_about_index.md":"DLuQgC_8","notes_index.md":"CeV-uJ5V"}
|
||||
|
@ -8,9 +8,9 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/index.md.Dga0tMF5.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
@ -23,7 +23,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar home top" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle" data-v-6aa21345 data-v-ab179fa1><a class="title" href="/c/" data-v-ab179fa1><!--[--><!--]--><!--[--><img class="VPImage logo" src="/c/logo.svg" alt data-v-8426fc1a><!--]--><span data-v-ab179fa1>许大仙</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/coa6/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>计组6件套</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-dc692963 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><!----><span data-v-b6c34ac9>编程语言</span><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><div class="items" data-v-b98bc113><!--[--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link" href="/c/notes/" data-v-43f1e123><!--[-->c/c++<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/web-design/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->前端<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/java/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Java<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/big-data/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->大数据<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/linux/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->云原生<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/go/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Go<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/python/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Python<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/db/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>数据库</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/open-software/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>开源软件</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/c/notes/about/" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>关于我</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Aurorxa" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>深浅模式</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Aurorxa" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><!----><!----><div class="VPContent is-home" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPHome" data-v-1428d186 data-v-686f80a6><!--[--><!--]--><div class="VPHero has-image VPHomeHero" data-v-686f80a6 data-v-303bb580><div class="container" data-v-303bb580><div class="main" data-v-303bb580><!--[--><!--]--><!--[--><h1 class="name" data-v-303bb580><span class="clip" data-v-303bb580>许大仙同学</span></h1><!----><p class="tagline" data-v-303bb580>『这个世纪疯狂,没人性,腐败;你却一直清醒,温柔,一尘不染。』</p><!--]--><!--[--><!--]--><div class="actions" data-v-303bb580><!--[--><div class="action" data-v-303bb580><a class="VPButton medium brand" href="https://aexiar.github.io" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>首页</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://aexiar.github.io/coa6/notes/" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>计组6件套</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="/c/notes/" data-v-303bb580 data-v-cad61b99>c/c++</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://aexiar.github.io/web-design/notes/" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>前端</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://aexiar.github.io/java/notes/" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>Java</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://aexiar.github.io/big-data/notes/" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>大数据</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://aexiar.github.io/linux/notes/" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>云原生</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://aexiar.github.io/go/notes/" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>Go</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://aexiar.github.io/python/notes/" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>Python</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://aexiar.github.io/db/notes/" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>数据库</a></div><div class="action" data-v-303bb580><a class="VPButton medium alt" href="https://aexiar.github.io/open-software/notes/" target="_blank" rel="noreferrer" data-v-303bb580 data-v-cad61b99>开源软件</a></div><!--]--></div><!--[--><!--]--></div><div class="image" data-v-303bb580><div class="image-container" data-v-303bb580><div class="image-bg" data-v-303bb580></div><!--[--><!--[--><img class="VPImage image-src" src="/c/logo.svg" alt="许大仙" data-v-8426fc1a><!--]--><!--]--></div></div></div></div><!--[--><!--]--><!--[--><!--]--><div class="VPFeatures VPHomeFeatures" data-v-686f80a6 data-v-a6181336><div class="container" data-v-a6181336><div class="items" data-v-a6181336><!--[--><div class="grid-3 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><div class="icon" data-v-a3976bdc>🧠</div><h2 class="title" data-v-a3976bdc>学习思路</h2><p class="details" data-v-a3976bdc>学习思路就这么几条:模仿、遍历、分治、动态规划、……</p><!----></article><!--]--></div></div><div class="grid-3 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><div class="icon" data-v-a3976bdc>✍️</div><h2 class="title" data-v-a3976bdc>学习手法</h2><p class="details" data-v-a3976bdc>学习手法就这么几种:缓存、索引、信号/事件、回调/消息循环/dispatcher、……</p><!----></article><!--]--></div></div><div class="grid-3 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><div class="icon" data-v-a3976bdc>🚨</div><h2 class="title" data-v-a3976bdc>注意事项</h2><p class="details" data-v-a3976bdc>注意事项就这么几点:边界值、等价类、数据完整性原子性、死锁、空转、……</p><!----></article><!--]--></div></div><!--]--></div></div></div><!--[--><!--]--><div class="vp-doc container" style="" data-v-686f80a6 data-v-8e2d4988><!--[--><div style="position:relative;" data-v-686f80a6><div></div></div><!--]--></div></div></div><footer class="VPFooter" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
File diff suppressed because one or more lines are too long
@ -8,9 +8,9 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_01_xdx_index.md.Fg4OXydV.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
@ -319,7 +319,7 @@
|
||||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">[boot]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">systemd=true</span></span>
|
||||
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">EOF</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><p><img src="/c/assets/177.FJeffiE3.gif" alt="" loading="lazy"></p><ul><li>③ 重启 WSL 实例:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">wsl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --shutdown</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # 在 win 中的 cmd 或 PowerShell 执行该命令</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/178.Bee0LcNX.gif" alt="" loading="lazy"></p><ul><li>④ 查看是否启用成功:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">ps</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -p</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 1</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> comm=</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/179.BDqd1eDo.png" alt="" loading="lazy"></p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-27T03:11:14.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/c/notes/01_c-basic/00_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>上一篇</span><span class="title" data-v-e257564d>编程基础</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/02_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>变量和进制</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -8,9 +8,9 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_02_xdx_index.md.CC2Mg9VD.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
@ -292,7 +292,7 @@
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br></div></div><ul><li>其实,C 语言的底层逻辑很简单,C 语言压根不关心你定义的是有符号数还是无符号数,它只关心内存(如果定义的是有符号数,那就按照有符号数的规则来存储;如果定义的是无符号数,那就按照无符号数的规则来存储)。换言之,有符号数可以按照无符号数的规则来输出,无符号数也可以按照有符号数的规则来输出,至于输出结果对不对,那是程序员的事情,和 C 语言没有任何关系。</li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 实际开发中,<code>printf</code> 函数中的常量、变量或表达式,需要和格式占位符一一对应;否则,将会出现数据错误的现象。</li><li>② 正因为上述的原因,很多现代化的编程语言,如:Java 等,直接取消了无符号的概念。但是,很多数据库是使用 C 语言开发的,如:MySQL 等,就提供了创建数据表的字段为无符号类型的功能,即:<code>UNSIGNED</code>(正整数) ,不要感觉困惑!!!</li><li>③ 对于 <code>1000 0000 …… 0000 0000</code> 这个特殊的补码,无法按照上述的方法转换为原码,所以计算机直接规定这个补码对应的值就是 <code>-2³¹</code>,至于为什么,下节我们会详细分析。</li></ul></div></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-26T06:06:37.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/c/notes/01_c-basic/01_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>上一篇</span><span class="title" data-v-e257564d>C 语言入门</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/03_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>数据类型和运算符</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -8,11 +8,11 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_03_xdx_index.md.Cw3Z19MO.lean.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_03_xdx_index.md.8BENFVze.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
|
||||
<script id="register-sw">"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js");</script>
|
||||
@ -878,8 +878,84 @@
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"result = </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%d\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, result);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // result = 110</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><h2 id="_2-8-运算符优先级" tabindex="-1">2.8 运算符优先级 <a class="header-anchor" href="#_2-8-运算符优先级" aria-label="Permalink to "2.8 运算符优先级""></a></h2><ul><li>C 语言中运算符的优先级,如下所示:</li></ul><table tabindex="0"><thead><tr><th><strong>优先级</strong></th><th><strong>运算符</strong></th><th><strong>名称或含义</strong></th><th><strong>结合方向</strong></th></tr></thead><tbody><tr><td><strong>1</strong></td><td><code>[]</code></td><td>数组下标</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>()</code></td><td>圆括号</td><td></td></tr><tr><td></td><td><code>.</code></td><td>成员选择(对象)</td><td></td></tr><tr><td></td><td><code>-></code></td><td>成员选择(指针)</td><td></td></tr><tr><td><strong>2</strong></td><td><code>-</code></td><td>负号运算符</td><td>⬅️(从右到左)</td></tr><tr><td></td><td><code>(类型)</code></td><td>强制类型转换</td><td></td></tr><tr><td></td><td><code>++</code></td><td>自增运算符</td><td></td></tr><tr><td></td><td><code>--</code></td><td>自减运算符</td><td></td></tr><tr><td></td><td><code>*</code></td><td>取值运算符</td><td></td></tr><tr><td></td><td><code>&</code></td><td>取地址运算符</td><td></td></tr><tr><td></td><td><code>!</code></td><td>逻辑非运算符</td><td></td></tr><tr><td></td><td><code>~</code></td><td>按位取反运算符</td><td></td></tr><tr><td></td><td><code>sizeof</code></td><td>长度运算符</td><td></td></tr><tr><td><strong>3</strong></td><td><code>/</code></td><td>除</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>*</code></td><td>乘</td><td></td></tr><tr><td></td><td><code>%</code></td><td>余数(取模)</td><td></td></tr><tr><td><strong>4</strong></td><td><code>+</code></td><td>加</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>-</code></td><td>减</td><td></td></tr><tr><td><strong>5</strong></td><td><code><<</code></td><td>左移</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>>></code></td><td>右移</td><td></td></tr><tr><td><strong>6</strong></td><td><code>></code></td><td>大于</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>>=</code></td><td>大于等于</td><td></td></tr><tr><td></td><td><code><</code></td><td>小于</td><td></td></tr><tr><td></td><td><code><=</code></td><td>小于等于</td><td></td></tr><tr><td><strong>7</strong></td><td><code>==</code></td><td>等于</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>!=</code></td><td>不等于</td><td></td></tr><tr><td><strong>8</strong></td><td><code>&</code></td><td>按位与</td><td>➡️(从左到右)</td></tr><tr><td><strong>9</strong></td><td><code>^</code></td><td>按位异或</td><td>➡️(从左到右)</td></tr><tr><td><strong>10</strong></td><td><code>|</code></td><td>按位或</td><td>➡️(从左到右)</td></tr><tr><td><strong>11</strong></td><td><code>&&</code></td><td>逻辑与</td><td>➡️(从左到右)</td></tr><tr><td><strong>12</strong></td><td><code>||</code></td><td>逻辑或</td><td>➡️(从左到右)</td></tr><tr><td><strong>13</strong></td><td><code>?:</code></td><td>条件运算符</td><td>⬅️(从右到左)</td></tr><tr><td><strong>14</strong></td><td><code>=</code></td><td>赋值运算符</td><td>⬅️(从右到左)</td></tr><tr><td></td><td><code>/=</code></td><td>除后赋值</td><td></td></tr><tr><td></td><td><code>*=</code></td><td>乘后赋值</td><td></td></tr><tr><td></td><td><code>%=</code></td><td>取模后赋值</td><td></td></tr><tr><td></td><td><code>+=</code></td><td>加后赋值</td><td></td></tr><tr><td></td><td><code>-=</code></td><td>减后赋值</td><td></td></tr><tr><td></td><td><code><<=</code></td><td>左移后赋值</td><td></td></tr><tr><td></td><td><code>>>=</code></td><td>右移后赋值</td><td></td></tr><tr><td></td><td><code>&=</code></td><td>按位与后赋值</td><td></td></tr><tr><td></td><td><code>^=</code></td><td>按位异或后赋值</td><td></td></tr><tr><td></td><td><code>|=</code></td><td>按位或后赋值</td><td></td></tr><tr><td><strong>15</strong></td><td><code>,</code></td><td>逗号运算符</td><td>➡️(从左到右)</td></tr></tbody></table><div class="warning custom-block github-alert"><p class="custom-block-title">WARNING</p><p></p><ul><li>① 不要过多的依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,尽量<code>使用小括号来控制</code>表达式的执行顺序。</li><li>② 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它<code>分成几步</code>来完成。</li><li>③ 运算符优先级不用刻意地去记忆,总体上:一元运算符 > 算术运算符 > 关系运算符 > 逻辑运算符 > 三元运算符 > 赋值运算符。</li></ul></div><h1 id="第三章-附录" tabindex="-1">第三章:附录 <a class="header-anchor" href="#第三章-附录" aria-label="Permalink to "第三章:附录""></a></h1><h2 id="_3-1-字符集和字符集编码" tabindex="-1">3.1 字符集和字符集编码 <a class="header-anchor" href="#_3-1-字符集和字符集编码" aria-label="Permalink to "3.1 字符集和字符集编码""></a></h2><h3 id="_3-3-1-概述" tabindex="-1">3.3.1 概述 <a class="header-anchor" href="#_3-3-1-概述" aria-label="Permalink to "3.3.1 概述""></a></h3><ul><li>字符集和字符集编码(简称编码)计算机系统中处理文本数据的两个基本概念,它们密切相关但又有区别。</li><li>字符集(Character Set)是一组字符的集合,其中每个字符都被分配了一个<code>唯一的编号</code>(通常是数字)。字符可以是字母、数字、符号、控制代码(如换行符)等。<code>字符集定义了可以表示的字符的范围</code>,但它并不直接定义如何将这些字符存储在计算机中。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>ASCII(美国信息交换标准代码)是最早期和最简单的字符集之一,它只包括了英文字母、数字和一些特殊字符,共 128 个字符。每个字符都分配给了一个从 0 到 127 的数字。</p></div><ul><li>字符集编码(Character Encoding,简称编码)是一种方案或方法,<code>它定义了如何将字符集中的字符转换为计算机存储和传输的数据(通常是一串二进制数字)</code>。简而言之,编码是字符到二进制数据之间的映射规则。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>ASCII 编码方案定义了如何将 ASCII 字符集中的每个字符表示为 7 位的二进制数字。例如:大写字母<code>'A'</code>在 ASCII 编码中表示为二进制的<code>1000001</code>,十进制的 <code>65</code> 。</p></div><ul><li><code>字符集</code>和<code>字符集编码</code>之间的关系如下:</li></ul><p><img src="/c/assets/35.CGTVELeO.png" alt="" loading="lazy"></p><ul><li>Linux 中安装帮助手册:</li></ul><p><img src="/c/assets/36.Bz4_lEH0.gif" alt="" loading="lazy"></p><h3 id="_3-3-2-ascii-编码" tabindex="-1">3.3.2 ASCII 编码 <a class="header-anchor" href="#_3-3-2-ascii-编码" aria-label="Permalink to "3.3.2 ASCII 编码""></a></h3><ul><li>从<code>冯·诺依曼</code>体系结构中,我们知道,计算机中所有的<code>数据</code>和<code>指令</code>都是以<code>二进制</code>的形式表示的;所以,计算机中对于文本数据的数据也是以二进制来存储的,那么对应的流程如下:</li></ul><p><img src="/c/assets/37.CcDWE4nn.png" alt="" loading="lazy"></p><ul><li>我们知道,计算机是上个世纪 60 年代在美国研制成功的,为了实现字符和二进制的转换,美国就制定了一套字符编码,即英语字符和二进制位之间的关系,即 ASCII (American Standard Code for Information Interchange)编码: <ul><li>ASCII 编码只包括了英文字符、数字和一些特殊字符,一共 128 个字符,并且每个字符都分配了唯一的数字,范围是 0 - 127。</li><li>ASCII 编码中的每个字符都使用 7 位的二进制数字表示;但是,计算机中的存储的最小单位是 1 B = 8 位,那么最高位统一规定为 0 。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 其实,早期是没有字符集的概念的,只是后来为了解决乱码问题,而产生了字符集的概念。</li><li>② 对于英文体系来说,<code>a-zA-Z0-9</code>以及一些<code>特殊字符</code>一共 <code>128</code> 就可以满足实际存储需求;所以,在也是为什么 ASCII 码使用 7 位二进制(2^7 = 128 )来存储的。</li></ul></div><ul><li>在操作系统中,就内置了对应的编码表,Linux 也不例外;可以使用如下的命令查看:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">man</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ascii</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/38.B7y2_JVX.gif" alt="" loading="lazy"></p><ul><li>其对应的 ASCII 编码表,如下所示:</li></ul><p><img src="/c/assets/39.Btcc3rs2.gif" alt="" loading="lazy"></p><ul><li>但是,随着计算机的发展,计算机开始了东征之路,由美国传播到东方:</li></ul><p><img src="/c/assets/40.CR4ARW8y.png" alt="" loading="lazy"></p><ul><li>先是传播到了欧洲,欧洲在兼容 ASCII 编码的基础上,推出了 ISO8859-1 编码,即: <ul><li>ISO8859-1 编码包括基本的拉丁字母表、数字、标点符号,以及西欧语言中特有的一些字符,如:法语中的 <code>è</code>、德语中的 <code>ü</code> 等。</li><li>ISO 8859-1 为每个字符分配一个单字节(8 位)编码,意味着它可以表示最多 256 (2^8)个不同的字符(编号从 0 到 255)。</li><li>ISO 8859-1 的前 128 个字符与 ASCII 编码完全一致,这使得 ASCII 编码的文本可以无缝转换为 ISO 8859-1 编码。</li></ul></li></ul><p><img src="/c/assets/39.Btcc3rs2.gif" alt="" loading="lazy"></p><p><img src="/c/assets/42.DOX3ymYP.gif" alt="" loading="lazy"></p><ul><li>计算机继续传播到了亚洲,亚洲(双字节)各个国家分别给出了自己国家对应的字符集编码,如: <ul><li>日本推出了 Shift-JIS 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围: <ul><li>第一个字节:129 - 159 和 224 - 239 。</li><li>第二个字节:64 - 126 和 128 - 252 。</li></ul></li></ul></li><li>韩国推出了 EUC-KR 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围:从 41281 - 65278。</li></ul></li><li>中国推出了 GBK 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围:33088 - 65278 。</li></ul></li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 通过上面日本、韩国、中国的编码十进制范围,我们可以看到,虽然这些编码系统在技术上的编码范围存在重叠(特别是在高位字节区域),但因为它们各自支持的字符集完全不同,所以实际上它们并不直接冲突。</li><li>② 但是,如果一个中国人通过 GBK 编码写的文章,通过邮件发送给韩国人,因为韩国和中国在字符集编码上的高位字节有重叠部分,必然会造成歧义。</li></ul></div><h3 id="_3-3-3-unicode-编码" tabindex="-1">3.3.3 Unicode 编码 <a class="header-anchor" href="#_3-3-3-unicode-编码" aria-label="Permalink to "3.3.3 Unicode 编码""></a></h3><ul><li><p>在 Unicode 之前,世界上存在着数百种不同的编码系统,每一种编码系统都是为了支持特定语言或一组语言的字符集。这些编码系统,包括:ASCII、ISO 8859 系列、GBK、Shift-JIS、EUC-KR 等,它们各自有不同的字符范围和编码方式。这种多样性虽然在局部范围内解决了字符表示的问题,但也带来了以下几个方面的挑战:</p><ul><li><code>编码冲突</code>:由于不同的编码系统可以为相同的字节值分配不同的字符,因此在不同编码之间转换文本时,如果没有正确处理编码信息,就很容易产生乱码。这种编码冲突在尝试处理多种语言的文本时尤为突出。</li><li><code>编码的复杂性</code>:随着全球化的发展,软件和系统需要支持越来越多的语言,这就要求开发者和系统同时处理多种不同的编码系统。这不仅增加了开发和维护的复杂性,而且也增加了出错的风险。</li><li><code>资源限制</code>:在早期计算机技术中,内存和存储资源相对有限。不同的编码标准要求系统存储多套字符集数据,这无疑增加了对有限资源的消耗。</li><li>……</li></ul></li><li><p>针对上述的种种问题,为了推行全球化,Unicode 应运而生,Unicode 的核心规则和设计原则是建立一个全球统一的字符集,使得世界上所有的文字和符号都能被唯一地识别和使用,无论使用者位于何地或使用何种语言。这套规则包括了字符的编码、表示、处理和转换机制,旨在确保不同系统和软件间能够无缝交换和处理文本数据。</p><ul><li><code>通用字符集 (UCS)</code>:Unicode 为每一个字符分配一个唯一的编号(称为<code>“码点”</code>)。这些码点被组织在一个统一的字符集中,官方称之为 “通用字符集”(Universal Character Set,UCS)。码点通常表示为 <code>U+</code> 后跟一个十六进制数,例如:<code>U+0041</code> 代表大写的英文字母 <code>“A”</code>。</li><li><code>编码平面和区段</code>:Unicode 码点被划分为多个 “平面(Planes)”,每个平面包含 65536(16^4)个码点。目前,Unicode定义了 17 个平面(从 0 到16),每个平面被分配了一个编号,从 “基本多文种平面(BMP)” 的 0 开始,到 16 号平面结束。这意味着 Unicode 理论上可以支持超过 110万(17*65536)个码点。</li></ul></li><li><p>Unicode 仅仅只是字符集,给每个字符设置了唯一的数字编号而已,却没有给出这些数字编号实际如何存储,可以通过如下命令查看:</p></li></ul><p><img src="/c/assets/43.Cie9_tkP.gif" alt="" loading="lazy"></p><ul><li>为了在计算机系统中表示 Unicode 字符,定义了几种编码方案,这些方案包括 UTF-8、UTF-16 和 UTF-32 等。 <ul><li><strong>UTF-8</strong>:使用 1 - 4 个字节表示每个 Unicode 字符,兼容 ASCII,是网络上最常用的编码。</li><li><strong>UTF-16</strong>:使用 2 - 4 个字节表示每个 Unicode 字符,适合于需要经常处理基本多文种平面之外字符的应用。</li><li><strong>UTF-32</strong>:使用固定的 4 个字节表示每个 Unicode 字符,简化了字符处理,但增加了存储空间的需求。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 只有 UTF-8 兼容 ASCII,UTF-32 和 UTF-16 都不兼容 ASCII,因为它们没有单字节编码。 <ul><li>UTF-8 使用尽量少的字节来存储一个字符,不但能够节省存储空间,而且在网络传输时也能节省流量,所以很多纯文本类型的文件,如:各种编程语言的源文件、各种日志文件和配置文件等以及绝大多数的网页,如:百度、新浪、163 等都采用 UTF-8 编码。但是,UTF-8 的缺点是效率低,不但在存储和读取时都要经过转换,而且在处理字符串时也非常麻烦。例如:要在一个 UTF-8 编码的字符串中找到第 10 个字符,就得从头开始一个一个地检索字符,这是一个很耗时的过程,因为 UTF-8 编码的字符串中每个字符占用的字节数不一样,如果不从头遍历每个字符,就不知道第 10 个字符位于第几个字节处,就无法定位。不过,随着算法的逐年精进,UTF-8 字符串的定位效率也越来越高了,往往不再是槽点了。</li><li>UTF-32 是“以空间换效率”,正好弥补了 UTF-8 的缺点,UTF-32 的优势就是效率高:UTF-32 在存储和读取字符时不需要任何转换,在处理字符串时也能最快速地定位字符。例如:在一个 UTF-32 编码的字符串中查找第 10 个字符,很容易计算出它位于第 37 个字节处,直接获取就行,不用再逐个遍历字符了,没有比这更快的定位字符的方法了。但是,UTF-32 的缺点也很明显,就是太占用存储空间了,在网络传输时也会消耗很多流量。我们平常使用的字符编码值一般都比较小,用一两个字节存储足以,用四个字节简直是暴殄天物,甚至说是不能容忍的,所以 UTF-32 在应用上不如 UTF-8 和 UTF-16 广泛。</li><li>UTF-16 可以看做是 UTF-8 和 UTF-32 的折中方案,它平衡了存储空间和处理效率的矛盾。对于常用的字符,用两个字节存储足以,这个时候 UTF-16 是不需要转换的,直接存储字符的编码值即可。</li></ul></li><li>② 总而言之,<strong>UTF-8</strong> 编码兼容性强,适合大多数应用,特别是英文文本处理。<strong>UTF-16</strong> 编码适合处理大量亚洲字符,但在处理英文或其他拉丁字符时相对浪费空间。<strong>UTF-32</strong>编码简单直接,但非常浪费空间,适合需要固定字符宽度的特殊场景。</li><li>③ 在实际应用中,UTF-8 通常是最常用的编码方式,因为它在兼容性和空间效率之间提供了良好的平衡。</li><li>④ Windows 内核、.NET Framework、Java String 内部采用的都是 <code>UTF-16</code> 编码,主要原因是为了在兼顾字符处理效率的同时,能够有效处理多种语言的字符集,即:历史遗留问题、兼容性要求和多语言支持的需要。</li><li>⑤ 不过,UNIX 家族的操作系统(Linux、Mac OS、iOS 等)内核都采用 <code>UTF-8</code> 编码,主要是为了兼容性和灵活性,因为 UTF-8 编码可以无缝处理 ASCII 字符,同时也能够支持多字节的 Unicode 字符,即:为了最大限度地兼容 ASCII,同时保持系统的简单性、灵活性和效率。</li></ul></div><ul><li><code>Unicode 字符集</code>和对应的<code>UTF-8 字符编码</code>之间的关系,如下所示:</li></ul><p><img src="/c/assets/44.DLjH9Ges.png" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p><code>宽字符</code>和<code>窄字符</code>是编程和计算机系统中对字符类型的一种分类,主要用于描述字符在内存中的表示形式及其与编码方式的关系。</p><ul><li>① <code>窄字符</code>通常指使用单个字节(8 位)来表示的字符。在许多传统的编码系统中,窄字符通常代表 ASCII 字符或其它单字节字符集中的字符。换言之,<code>窄字符</code>适合处理简单的单字节字符集,如:ASCII,适用于处理西方语言的应用。</li><li>② <code>宽字符</code>指使用多个字节(通常是两个或更多)来表示的字符。这些字符通常用于表示比 ASCII 范围更广的字符集,如 Unicode 字符。换言之,<code>宽字符</code>适合处理多字节字符集,如:UTF-32、UTF-16 等,适用于需要处理多种语言和符号的国际化应用。</li></ul><p>在现代编程中,<code>窄字符</code>通常与 <code>UTF-8</code> 编码关联,特别是在处理文本输入、输出和网络传输时。尽管 <code>UTF-8</code> 是变长编码,由于其高效的空间利用和对 <code>ASCII</code> 的优化,通常与<code>窄字符</code>概念关联。而<code>宽字符</code>通常与 <code>UTF-16</code> 编码或 <code>UTF-32</code>编码关联,这些编码使用更大的固定或半固定长度来表示字符,适合处理更大的字符集。</p></div><h2 id="_3-2-wsl2-中设置默认编码为中文" tabindex="-1">3.2 WSL2 中设置默认编码为中文 <a class="header-anchor" href="#_3-2-wsl2-中设置默认编码为中文" aria-label="Permalink to "3.2 WSL2 中设置默认编码为中文""></a></h2><h3 id="_3-2-1-概述" tabindex="-1">3.2.1 概述 <a class="header-anchor" href="#_3-2-1-概述" aria-label="Permalink to "3.2.1 概述""></a></h3><ul><li>查看 WSL2 的 Linux 发行版的默认编码:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">echo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $LANG</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/45.DhSh546m.gif" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p><code>C.UTF-8</code> 是一种字符编码设置,结合了 <code>C</code> 区域设定和 <code>UTF-8</code> 字符编码。</p><ul><li>① <strong>C 区域设定</strong>:这是一个标准的、最小化的区域设置,通常用于系统默认的语言环境。<code>C</code> 区域设定下,所有字符都被认为是 ASCII 字符集的一部分,这意味着仅支持基本的英文字符和符号。在 <code>C</code> 区域设定中,字符串的排序和比较是基于简单的二进制值比较,这与本地化的语言设置相比相对简单。</li><li>② <strong>UTF-8 编码</strong>:UTF-8 是一种变长的字符编码方式,可以编码所有的 Unicode 字符。它是一种广泛使用的字符编码,能够支持多种语言和符号。每个 UTF-8 字符可以由1到4个字节表示,这使得它兼容 ASCII(对于标准 ASCII 字符,UTF-8 只使用一个字节)。</li></ul><p>因此,<code>C.UTF-8</code> 结合了 <code>C</code> 区域设定和 UTF-8 字符编码的优势。使用 <code>C.UTF-8</code> 时,系统默认语言环境保持简单和高效,同时支持更广泛的字符集,特别是多语言和非英语字符。这样可以在需要兼容性的同时,提供对全球化字符的支持。</p></div><h3 id="_3-2-2-almalinux9-设置默认编码" tabindex="-1">3.2.2 AlmaLinux9 设置默认编码 <a class="header-anchor" href="#_3-2-2-almalinux9-设置默认编码" aria-label="Permalink to "3.2.2 AlmaLinux9 设置默认编码""></a></h3><ul><li>① 搜索中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">dnf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> search</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/46.CCFwxiA0.gif" alt="" loading="lazy"></p><ul><li>② 安装中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">dnf</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> glibc-langpack-zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/47.DCdP5ufU.gif" alt="" loading="lazy"></p><ul><li>③ 切换语言环境为中文:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">localectl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set-locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANG=zh_CN.UTF-8</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/48.CjdgNuy4.gif" alt="" loading="lazy"></p><ul><li>④ 手动加载配置文件,使其生效:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/locale.conf</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/49.Bg9sWT0a.gif" alt="" loading="lazy"></p><h3 id="_3-2-3-ubuntu-22-04-设置默认编码" tabindex="-1">3.2.3 Ubuntu 22.04 设置默认编码 <a class="header-anchor" href="#_3-2-3-ubuntu-22-04-设置默认编码" aria-label="Permalink to "3.2.3 Ubuntu 22.04 设置默认编码""></a></h3><ul><li>① 安装中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> language-pack-zh-hans</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/50.Ma73wRvf.gif" alt="" loading="lazy"></p><ul><li>② 切换环境为中文:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">update-locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANG=zh_CN.UTF-8</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANGUAGE=zh_CN:zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/51.rJLsU7Sw.gif" alt="" loading="lazy"></p><ul><li>③ 手动加载配置文件,使其生效:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/default/locale</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/52.3DsEIiSv.gif" alt="" loading="lazy"></p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-27T03:11:14.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/c/notes/01_c-basic/02_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>上一篇</span><span class="title" data-v-e257564d>变量和进制</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/04_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>大话小数</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><h2 id="_2-8-运算符优先级" tabindex="-1">2.8 运算符优先级 <a class="header-anchor" href="#_2-8-运算符优先级" aria-label="Permalink to "2.8 运算符优先级""></a></h2><ul><li>C 语言中运算符的优先级,如下所示:</li></ul><table tabindex="0"><thead><tr><th><strong>优先级</strong></th><th><strong>运算符</strong></th><th><strong>名称或含义</strong></th><th><strong>结合方向</strong></th></tr></thead><tbody><tr><td><strong>1</strong></td><td><code>[]</code></td><td>数组下标</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>()</code></td><td>圆括号</td><td></td></tr><tr><td></td><td><code>.</code></td><td>成员选择(对象)</td><td></td></tr><tr><td></td><td><code>-></code></td><td>成员选择(指针)</td><td></td></tr><tr><td><strong>2</strong></td><td><code>-</code></td><td>负号运算符</td><td>⬅️(从右到左)</td></tr><tr><td></td><td><code>(类型)</code></td><td>强制类型转换</td><td></td></tr><tr><td></td><td><code>++</code></td><td>自增运算符</td><td></td></tr><tr><td></td><td><code>--</code></td><td>自减运算符</td><td></td></tr><tr><td></td><td><code>*</code></td><td>取值运算符</td><td></td></tr><tr><td></td><td><code>&</code></td><td>取地址运算符</td><td></td></tr><tr><td></td><td><code>!</code></td><td>逻辑非运算符</td><td></td></tr><tr><td></td><td><code>~</code></td><td>按位取反运算符</td><td></td></tr><tr><td></td><td><code>sizeof</code></td><td>长度运算符</td><td></td></tr><tr><td><strong>3</strong></td><td><code>/</code></td><td>除</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>*</code></td><td>乘</td><td></td></tr><tr><td></td><td><code>%</code></td><td>余数(取模)</td><td></td></tr><tr><td><strong>4</strong></td><td><code>+</code></td><td>加</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>-</code></td><td>减</td><td></td></tr><tr><td><strong>5</strong></td><td><code><<</code></td><td>左移</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>>></code></td><td>右移</td><td></td></tr><tr><td><strong>6</strong></td><td><code>></code></td><td>大于</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>>=</code></td><td>大于等于</td><td></td></tr><tr><td></td><td><code><</code></td><td>小于</td><td></td></tr><tr><td></td><td><code><=</code></td><td>小于等于</td><td></td></tr><tr><td><strong>7</strong></td><td><code>==</code></td><td>等于</td><td>➡️(从左到右)</td></tr><tr><td></td><td><code>!=</code></td><td>不等于</td><td></td></tr><tr><td><strong>8</strong></td><td><code>&</code></td><td>按位与</td><td>➡️(从左到右)</td></tr><tr><td><strong>9</strong></td><td><code>^</code></td><td>按位异或</td><td>➡️(从左到右)</td></tr><tr><td><strong>10</strong></td><td><code>|</code></td><td>按位或</td><td>➡️(从左到右)</td></tr><tr><td><strong>11</strong></td><td><code>&&</code></td><td>逻辑与</td><td>➡️(从左到右)</td></tr><tr><td><strong>12</strong></td><td><code>||</code></td><td>逻辑或</td><td>➡️(从左到右)</td></tr><tr><td><strong>13</strong></td><td><code>?:</code></td><td>条件运算符</td><td>⬅️(从右到左)</td></tr><tr><td><strong>14</strong></td><td><code>=</code></td><td>赋值运算符</td><td>⬅️(从右到左)</td></tr><tr><td></td><td><code>/=</code></td><td>除后赋值</td><td></td></tr><tr><td></td><td><code>*=</code></td><td>乘后赋值</td><td></td></tr><tr><td></td><td><code>%=</code></td><td>取模后赋值</td><td></td></tr><tr><td></td><td><code>+=</code></td><td>加后赋值</td><td></td></tr><tr><td></td><td><code>-=</code></td><td>减后赋值</td><td></td></tr><tr><td></td><td><code><<=</code></td><td>左移后赋值</td><td></td></tr><tr><td></td><td><code>>>=</code></td><td>右移后赋值</td><td></td></tr><tr><td></td><td><code>&=</code></td><td>按位与后赋值</td><td></td></tr><tr><td></td><td><code>^=</code></td><td>按位异或后赋值</td><td></td></tr><tr><td></td><td><code>|=</code></td><td>按位或后赋值</td><td></td></tr><tr><td><strong>15</strong></td><td><code>,</code></td><td>逗号运算符</td><td>➡️(从左到右)</td></tr></tbody></table><div class="warning custom-block github-alert"><p class="custom-block-title">WARNING</p><p></p><ul><li>① 不要过多的依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,尽量<code>使用小括号来控制</code>表达式的执行顺序。</li><li>② 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它<code>分成几步</code>来完成。</li><li>③ 运算符优先级不用刻意地去记忆,总体上:一元运算符 > 算术运算符 > 关系运算符 > 逻辑运算符 > 三元运算符 > 赋值运算符。</li></ul></div><h1 id="第三章-附录" tabindex="-1">第三章:附录 <a class="header-anchor" href="#第三章-附录" aria-label="Permalink to "第三章:附录""></a></h1><h2 id="_3-1-字符集和字符集编码" tabindex="-1">3.1 字符集和字符集编码 <a class="header-anchor" href="#_3-1-字符集和字符集编码" aria-label="Permalink to "3.1 字符集和字符集编码""></a></h2><h3 id="_3-3-1-概述" tabindex="-1">3.3.1 概述 <a class="header-anchor" href="#_3-3-1-概述" aria-label="Permalink to "3.3.1 概述""></a></h3><ul><li>字符集和字符集编码(简称编码)计算机系统中处理文本数据的两个基本概念,它们密切相关但又有区别。</li><li>字符集(Character Set)是一组字符的集合,其中每个字符都被分配了一个<code>唯一的编号</code>(通常是数字)。字符可以是字母、数字、符号、控制代码(如换行符)等。<code>字符集定义了可以表示的字符的范围</code>,但它并不直接定义如何将这些字符存储在计算机中。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>ASCII(美国信息交换标准代码)是最早期和最简单的字符集之一,它只包括了英文字母、数字和一些特殊字符,共 128 个字符。每个字符都分配给了一个从 0 到 127 的数字。</p></div><ul><li>字符集编码(Character Encoding,简称编码)是一种方案或方法,<code>它定义了如何将字符集中的字符转换为计算机存储和传输的数据(通常是一串二进制数字)</code>。简而言之,编码是字符到二进制数据之间的映射规则。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>ASCII 编码方案定义了如何将 ASCII 字符集中的每个字符表示为 7 位的二进制数字。例如:大写字母<code>'A'</code>在 ASCII 编码中表示为二进制的<code>1000001</code>,十进制的 <code>65</code> 。</p></div><ul><li><code>字符集</code>和<code>字符集编码</code>之间的关系如下:</li></ul><p><img src="/c/assets/35.CGTVELeO.png" alt="" loading="lazy"></p><ul><li>Linux 中安装帮助手册:</li></ul><p><img src="/c/assets/36.Bz4_lEH0.gif" alt="" loading="lazy"></p><h3 id="_3-3-2-ascii-编码" tabindex="-1">3.3.2 ASCII 编码 <a class="header-anchor" href="#_3-3-2-ascii-编码" aria-label="Permalink to "3.3.2 ASCII 编码""></a></h3><ul><li>从<code>冯·诺依曼</code>体系结构中,我们知道,计算机中所有的<code>数据</code>和<code>指令</code>都是以<code>二进制</code>的形式表示的;所以,计算机中对于文本数据的数据也是以二进制来存储的,那么对应的流程如下:</li></ul><p><img src="/c/assets/37.CcDWE4nn.png" alt="" loading="lazy"></p><ul><li>我们知道,计算机是上个世纪 60 年代在美国研制成功的,为了实现字符和二进制的转换,美国就制定了一套字符编码,即英语字符和二进制位之间的关系,即 ASCII (American Standard Code for Information Interchange)编码: <ul><li>ASCII 编码只包括了英文字符、数字和一些特殊字符,一共 128 个字符,并且每个字符都分配了唯一的数字,范围是 0 - 127。</li><li>ASCII 编码中的每个字符都使用 7 位的二进制数字表示;但是,计算机中的存储的最小单位是 1 B = 8 位,那么最高位统一规定为 0 。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 其实,早期是没有字符集的概念的,只是后来为了解决乱码问题,而产生了字符集的概念。</li><li>② 对于英文体系来说,<code>a-zA-Z0-9</code>以及一些<code>特殊字符</code>一共 <code>128</code> 就可以满足实际存储需求;所以,在也是为什么 ASCII 码使用 7 位二进制(2^7 = 128 )来存储的。</li></ul></div><ul><li>在操作系统中,就内置了对应的编码表,Linux 也不例外;可以使用如下的命令查看:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">man</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ascii</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/38.B7y2_JVX.gif" alt="" loading="lazy"></p><ul><li>其对应的 ASCII 编码表,如下所示:</li></ul><p><img src="/c/assets/39.Btcc3rs2.gif" alt="" loading="lazy"></p><ul><li>但是,随着计算机的发展,计算机开始了东征之路,由美国传播到东方:</li></ul><p><img src="/c/assets/40.CR4ARW8y.png" alt="" loading="lazy"></p><ul><li>先是传播到了欧洲,欧洲在兼容 ASCII 编码的基础上,推出了 ISO8859-1 编码,即: <ul><li>ISO8859-1 编码包括基本的拉丁字母表、数字、标点符号,以及西欧语言中特有的一些字符,如:法语中的 <code>è</code>、德语中的 <code>ü</code> 等。</li><li>ISO 8859-1 为每个字符分配一个单字节(8 位)编码,意味着它可以表示最多 256 (2^8)个不同的字符(编号从 0 到 255)。</li><li>ISO 8859-1 的前 128 个字符与 ASCII 编码完全一致,这使得 ASCII 编码的文本可以无缝转换为 ISO 8859-1 编码。</li></ul></li></ul><p><img src="/c/assets/39.Btcc3rs2.gif" alt="" loading="lazy"></p><p><img src="/c/assets/42.DOX3ymYP.gif" alt="" loading="lazy"></p><ul><li>计算机继续传播到了亚洲,亚洲(双字节)各个国家分别给出了自己国家对应的字符集编码,如: <ul><li>日本推出了 Shift-JIS 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围: <ul><li>第一个字节:129 - 159 和 224 - 239 。</li><li>第二个字节:64 - 126 和 128 - 252 。</li></ul></li></ul></li><li>韩国推出了 EUC-KR 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围:从 41281 - 65278。</li></ul></li><li>中国推出了 GBK 编码: <ul><li>单字节 ASCII 范围:0 - 127。</li><li>双字节范围:33088 - 65278 。</li></ul></li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 通过上面日本、韩国、中国的编码十进制范围,我们可以看到,虽然这些编码系统在技术上的编码范围存在重叠(特别是在高位字节区域),但因为它们各自支持的字符集完全不同,所以实际上它们并不直接冲突。</li><li>② 但是,如果一个中国人通过 GBK 编码写的文章,通过邮件发送给韩国人,因为韩国和中国在字符集编码上的高位字节有重叠部分,必然会造成歧义。</li></ul></div><h3 id="_3-3-3-unicode-编码" tabindex="-1">3.3.3 Unicode 编码 <a class="header-anchor" href="#_3-3-3-unicode-编码" aria-label="Permalink to "3.3.3 Unicode 编码""></a></h3><ul><li><p>在 Unicode 之前,世界上存在着数百种不同的编码系统,每一种编码系统都是为了支持特定语言或一组语言的字符集。这些编码系统,包括:ASCII、ISO 8859 系列、GBK、Shift-JIS、EUC-KR 等,它们各自有不同的字符范围和编码方式。这种多样性虽然在局部范围内解决了字符表示的问题,但也带来了以下几个方面的挑战:</p><ul><li><code>编码冲突</code>:由于不同的编码系统可以为相同的字节值分配不同的字符,因此在不同编码之间转换文本时,如果没有正确处理编码信息,就很容易产生乱码。这种编码冲突在尝试处理多种语言的文本时尤为突出。</li><li><code>编码的复杂性</code>:随着全球化的发展,软件和系统需要支持越来越多的语言,这就要求开发者和系统同时处理多种不同的编码系统。这不仅增加了开发和维护的复杂性,而且也增加了出错的风险。</li><li><code>资源限制</code>:在早期计算机技术中,内存和存储资源相对有限。不同的编码标准要求系统存储多套字符集数据,这无疑增加了对有限资源的消耗。</li><li>……</li></ul></li><li><p>针对上述的种种问题,为了推行全球化,Unicode 应运而生,Unicode 的核心规则和设计原则是建立一个全球统一的字符集,使得世界上所有的文字和符号都能被唯一地识别和使用,无论使用者位于何地或使用何种语言。这套规则包括了字符的编码、表示、处理和转换机制,旨在确保不同系统和软件间能够无缝交换和处理文本数据。</p><ul><li><code>通用字符集 (UCS)</code>:Unicode 为每一个字符分配一个唯一的编号(称为<code>“码点”</code>)。这些码点被组织在一个统一的字符集中,官方称之为 “通用字符集”(Universal Character Set,UCS)。码点通常表示为 <code>U+</code> 后跟一个十六进制数,例如:<code>U+0041</code> 代表大写的英文字母 <code>“A”</code>。</li><li><code>编码平面和区段</code>:Unicode 码点被划分为多个 “平面(Planes)”,每个平面包含 65536(16^4)个码点。目前,Unicode定义了 17 个平面(从 0 到16),每个平面被分配了一个编号,从 “基本多文种平面(BMP)” 的 0 开始,到 16 号平面结束。这意味着 Unicode 理论上可以支持超过 110万(17*65536)个码点。</li></ul></li><li><p>Unicode 仅仅只是字符集,给每个字符设置了唯一的数字编号而已,却没有给出这些数字编号实际如何存储,可以通过如下命令查看:</p></li></ul><p><img src="/c/assets/43.Cie9_tkP.gif" alt="" loading="lazy"></p><ul><li>为了在计算机系统中表示 Unicode 字符,定义了几种编码方案,这些方案包括 UTF-8、UTF-16 和 UTF-32 等。 <ul><li><strong>UTF-8</strong>:使用 1 - 4 个字节表示每个 Unicode 字符,兼容 ASCII,是网络上最常用的编码。</li><li><strong>UTF-16</strong>:使用 2 - 4 个字节表示每个 Unicode 字符,适合于需要经常处理基本多文种平面之外字符的应用。</li><li><strong>UTF-32</strong>:使用固定的 4 个字节表示每个 Unicode 字符,简化了字符处理,但增加了存储空间的需求。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 只有 UTF-8 兼容 ASCII,UTF-32 和 UTF-16 都不兼容 ASCII,因为它们没有单字节编码。 <ul><li>UTF-8 使用尽量少的字节来存储一个字符,不但能够节省存储空间,而且在网络传输时也能节省流量,所以很多纯文本类型的文件,如:各种编程语言的源文件、各种日志文件和配置文件等以及绝大多数的网页,如:百度、新浪、163 等都采用 UTF-8 编码。但是,UTF-8 的缺点是效率低,不但在存储和读取时都要经过转换,而且在处理字符串时也非常麻烦。例如:要在一个 UTF-8 编码的字符串中找到第 10 个字符,就得从头开始一个一个地检索字符,这是一个很耗时的过程,因为 UTF-8 编码的字符串中每个字符占用的字节数不一样,如果不从头遍历每个字符,就不知道第 10 个字符位于第几个字节处,就无法定位。不过,随着算法的逐年精进,UTF-8 字符串的定位效率也越来越高了,往往不再是槽点了。</li><li>UTF-32 是“以空间换效率”,正好弥补了 UTF-8 的缺点,UTF-32 的优势就是效率高:UTF-32 在存储和读取字符时不需要任何转换,在处理字符串时也能最快速地定位字符。例如:在一个 UTF-32 编码的字符串中查找第 10 个字符,很容易计算出它位于第 37 个字节处,直接获取就行,不用再逐个遍历字符了,没有比这更快的定位字符的方法了。但是,UTF-32 的缺点也很明显,就是太占用存储空间了,在网络传输时也会消耗很多流量。我们平常使用的字符编码值一般都比较小,用一两个字节存储足以,用四个字节简直是暴殄天物,甚至说是不能容忍的,所以 UTF-32 在应用上不如 UTF-8 和 UTF-16 广泛。</li><li>UTF-16 可以看做是 UTF-8 和 UTF-32 的折中方案,它平衡了存储空间和处理效率的矛盾。对于常用的字符,用两个字节存储足以,这个时候 UTF-16 是不需要转换的,直接存储字符的编码值即可。</li></ul></li><li>② 总而言之,<strong>UTF-8</strong> 编码兼容性强,适合大多数应用,特别是英文文本处理。<strong>UTF-16</strong> 编码适合处理大量亚洲字符,但在处理英文或其他拉丁字符时相对浪费空间。<strong>UTF-32</strong>编码简单直接,但非常浪费空间,适合需要固定字符宽度的特殊场景。</li><li>③ 在实际应用中,UTF-8 通常是最常用的编码方式,因为它在兼容性和空间效率之间提供了良好的平衡。</li></ul></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① Windows 内核、.NET Framework、Java String 内部采用的都是 <code>UTF-16</code> 编码,主要原因是为了在兼顾字符处理效率的同时,能够有效处理多种语言的字符集,即:历史遗留问题、兼容性要求和多语言支持的需要。</li><li>② 不过,UNIX 家族的操作系统(Linux、Mac OS、iOS 等)内核都采用 <code>UTF-8</code> 编码,主要是为了兼容性和灵活性,因为 UTF-8 编码可以无缝处理 ASCII 字符,同时也能够支持多字节的 Unicode 字符,即:为了最大限度地兼容 ASCII,同时保持系统的简单性、灵活性和效率。</li></ul></div><ul><li><code>Unicode 字符集</code>和对应的<code>UTF-8 字符编码</code>之间的关系,如下所示:</li></ul><p><img src="/c/assets/44.DLjH9Ges.png" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p><code>宽字符</code>和<code>窄字符</code>是编程和计算机系统中对字符类型的一种分类,主要用于描述字符在内存中的表示形式及其与编码方式的关系。</p><ul><li>① <code>窄字符</code>通常指使用单个字节(8 位)来表示的字符。在许多传统的编码系统中,窄字符通常代表 ASCII 字符或其它单字节字符集中的字符。换言之,<code>窄字符</code>适合处理简单的单字节字符集,如:ASCII,适用于处理西方语言的应用。</li><li>② <code>宽字符</code>指使用多个字节(通常是两个或更多)来表示的字符。这些字符通常用于表示比 ASCII 范围更广的字符集,如 Unicode 字符。换言之,<code>宽字符</code>适合处理多字节字符集,如:UTF-32、UTF-16 等,适用于需要处理多种语言和符号的国际化应用。</li></ul><p>在现代编程中,<code>窄字符</code>通常与 <code>UTF-8</code> 编码关联,特别是在处理文本输入、输出和网络传输时。尽管 <code>UTF-8</code> 是变长编码,由于其高效的空间利用和对 <code>ASCII</code> 的优化,通常与<code>窄字符</code>概念关联。而<code>宽字符</code>通常与 <code>UTF-16</code> 编码或 <code>UTF-32</code>编码关联,这些编码使用更大的固定或半固定长度来表示字符,适合处理更大的字符集。</p></div><h2 id="_3-2-wsl2-中设置默认编码为中文" tabindex="-1">3.2 WSL2 中设置默认编码为中文 <a class="header-anchor" href="#_3-2-wsl2-中设置默认编码为中文" aria-label="Permalink to "3.2 WSL2 中设置默认编码为中文""></a></h2><h3 id="_3-2-1-概述" tabindex="-1">3.2.1 概述 <a class="header-anchor" href="#_3-2-1-概述" aria-label="Permalink to "3.2.1 概述""></a></h3><ul><li>查看 WSL2 的 Linux 发行版的默认编码:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">echo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $LANG</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/45.DhSh546m.gif" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p><code>C.UTF-8</code> 是一种字符编码设置,结合了 <code>C</code> 区域设定和 <code>UTF-8</code> 字符编码。</p><ul><li>① <strong>C 区域设定</strong>:这是一个标准的、最小化的区域设置,通常用于系统默认的语言环境。<code>C</code> 区域设定下,所有字符都被认为是 ASCII 字符集的一部分,这意味着仅支持基本的英文字符和符号。在 <code>C</code> 区域设定中,字符串的排序和比较是基于简单的二进制值比较,这与本地化的语言设置相比相对简单。</li><li>② <strong>UTF-8 编码</strong>:UTF-8 是一种变长的字符编码方式,可以编码所有的 Unicode 字符。它是一种广泛使用的字符编码,能够支持多种语言和符号。每个 UTF-8 字符可以由1到4个字节表示,这使得它兼容 ASCII(对于标准 ASCII 字符,UTF-8 只使用一个字节)。</li></ul><p>因此,<code>C.UTF-8</code> 结合了 <code>C</code> 区域设定和 UTF-8 字符编码的优势。使用 <code>C.UTF-8</code> 时,系统默认语言环境保持简单和高效,同时支持更广泛的字符集,特别是多语言和非英语字符。这样可以在需要兼容性的同时,提供对全球化字符的支持。</p></div><h3 id="_3-2-2-almalinux9-设置默认编码" tabindex="-1">3.2.2 AlmaLinux9 设置默认编码 <a class="header-anchor" href="#_3-2-2-almalinux9-设置默认编码" aria-label="Permalink to "3.2.2 AlmaLinux9 设置默认编码""></a></h3><ul><li>① 搜索中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">dnf</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> search</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/46.CCFwxiA0.gif" alt="" loading="lazy"></p><ul><li>② 安装中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">dnf</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> glibc-langpack-zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/47.DCdP5ufU.gif" alt="" loading="lazy"></p><ul><li>③ 切换语言环境为中文:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">localectl</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> set-locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANG=zh_CN.UTF-8</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/48.CjdgNuy4.gif" alt="" loading="lazy"></p><ul><li>④ 手动加载配置文件,使其生效:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/locale.conf</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/49.Bg9sWT0a.gif" alt="" loading="lazy"></p><h3 id="_3-2-3-ubuntu-22-04-设置默认编码" tabindex="-1">3.2.3 Ubuntu 22.04 设置默认编码 <a class="header-anchor" href="#_3-2-3-ubuntu-22-04-设置默认编码" aria-label="Permalink to "3.2.3 Ubuntu 22.04 设置默认编码""></a></h3><ul><li>① 安装中文语言包:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> update</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> && </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">apt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> language-pack-zh-hans</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -y</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/50.Ma73wRvf.gif" alt="" loading="lazy"></p><ul><li>② 切换环境为中文:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">update-locale</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANG=zh_CN.UTF-8</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> LANGUAGE=zh_CN:zh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/51.rJLsU7Sw.gif" alt="" loading="lazy"></p><ul><li>③ 手动加载配置文件,使其生效:</li></ul><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">source</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /etc/default/locale</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/c/assets/52.3DsEIiSv.gif" alt="" loading="lazy"></p><h2 id="_3-3-在-c-语言中使用中文字符" tabindex="-1">3.3 在 C 语言中使用中文字符 <a class="header-anchor" href="#_3-3-在-c-语言中使用中文字符" aria-label="Permalink to "3.3 在 C 语言中使用中文字符""></a></h2><h3 id="_3-3-1-概述-1" tabindex="-1">3.3.1 概述 <a class="header-anchor" href="#_3-3-1-概述-1" aria-label="Permalink to "3.3.1 概述""></a></h3><ul><li>大部分 C 语言文章或教材对中文字符的处理讳莫如深,甚至只字不提,导致很多初学者认为 C 语言只能处理英文,而不支持中文。</li><li>其实,这是不对的。C 语言作为一门系统级别的编程语言,理应支持世界上任何一个国家的文字,如:中文、日文、韩文等。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>如果 C 语言不支持中文,那么简体中文 Windows 操作系统将无从谈起,我们只能被迫使用英文 Windows 操作系统,这对计算机的传播而言将会是一种巨大的阻碍。</p></div><h3 id="_3-3-2-中文字符的存储" tabindex="-1">3.3.2 中文字符的存储 <a class="header-anchor" href="#_3-3-2-中文字符的存储" aria-label="Permalink to "3.3.2 中文字符的存储""></a></h3><ul><li>要想正确的存储中文字符,需要解决如下的两个问题: <ul><li>① 足够长的数据类型:char 的长度是 1 个字节,只能存储拉丁体系的问题,并不能存储中文字符,所以至少需要 2 个字节的内存空间。</li><li>② 包含中文的字符集:C 语言规定,对于中文、日文、韩文等非 ASCII 编码之外的单个字符,需要有专门的字符类型,也就是需要使用宽字符的编码方式。而常见的宽字符的编码有 UTF-16 和 UTF-32,它们都是基于 Unicode 字符集的,都能够支持全球的文字。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>上文提及过,在现代编程中,<code>窄字符</code>通常与 <code>UTF-8</code> 编码关联,特别是在处理文本输入、输出和网络传输时。尽管 <code>UTF-8</code> 是变长编码,由于其高效的空间利用和对 <code>ASCII</code> 的优化,通常与<code>窄字符</code>概念关联。而<code>宽字符</code>通常与 <code>UTF-16</code> 编码或 <code>UTF-32</code>编码关联,这些编码使用更大的固定或半固定长度来表示字符,适合处理更大的字符集。</p></div><ul><li>在真正实现的时候,微软的 MSVC 编译器采用 UTF-16 编码,即:使用 2 个字节来存储一个字符,使用 unsigned short 类型就可以容纳。而 GCC、LLVM/Clang 采用 UTF-32 编码,使用 4 个字节存储字符,用 unsigned int 类型就可以容纳。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>不同的编译器可以使用不同的整数类型,来存储宽字符,这对于跨平台开发来说,非常不友好。</p></div><ul><li>为了解决上述的问题,C 语言推出了一种全新的类型 <code>wchar_t</code> 类型,用来存储宽字符类型。 <ul><li>在微软的 MSVC 编译器中,它的长度是 2 个字节。</li><li>在 GCC、LLVM/Clang 中,它的长度是 4 个字节。</li></ul></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① <code>wchar_t</code> 中的 <code>w</code>是 wide 的首字母,<code>t</code> 是 type 的首字母,所以 <code>wchar_t</code> 就是宽字符类型,足够见名知意。</li><li>② <code>wchar_t</code> 是用 typedef 关键字定义的一个别名,后文讲解,<code>wchar_t</code> 在不同的编译器下长度不一样。</li><li>③ <code>wchar_t</code> 类型位于 <code><wchar.h></code> 头文件中,它使得代码在具有良好移植性的同时,也节省了不少内存,以后我们就用它来存储宽字符。</li></ul></div><ul><li>对于普通的拉丁体系的字符,我们使用 <code>''</code> 括起来,来表示字符,如:<code>'A'</code>、<code>'&'</code> 等。但是,如果要想表示宽字符,就需要加上 <code>L</code> 前缀了,如:<code>L'A'</code>、<code>L'中'</code>。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>宽字符字面量中的 <code>L</code> 是 <code>Long</code> 的缩写,意思是比普通的字符(char)要长。</p></div><ul><li>示例:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stddef.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> /* 存储宽字符,如:中文 */</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> d </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> e </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br></div></div><h3 id="_3-3-3-中文字符的输出" tabindex="-1">3.3.3 中文字符的输出 <a class="header-anchor" href="#_3-3-3-中文字符的输出" aria-label="Permalink to "3.3.3 中文字符的输出""></a></h3><ul><li>对于宽字符,就不能使用 <code>putchar</code> 函数和 <code>printf</code> 函数来进行输出了,需要使用 <code>putwchar</code> 函数和 <code>wprintf</code> 函数。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① <code>putchar</code> 函数和 <code>printf</code> 函数,只能输出窄字符,即:<code>char</code> 类型表示的字符。</li><li>② <code>putwchar</code> 函数可以用来输出宽字符,用法和 <code>putchar</code> 函数类似。</li><li>③ <code>wprintf</code>函数可以用来输出宽字符,用法和 <code>printf</code> 函数类型,只不过格式占位符是 <code>%lc</code> 。</li><li>④ 在输出宽字符之前,还需要使用 <code>setlocale</code> 函数进行本地化设置,告诉程序如何才能正确地处理各个国家的语言文化。</li></ul></div><ul><li>示例:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <locale.h></span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stddef.h></span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <wchar.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> /* 存储宽字符,如:中文 */</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'中'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'国'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> c </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'人'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> d </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'你'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> e </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'好'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 将本地环境设置为简体中文</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> setlocale</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(LC_ALL, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"zh_CN.UTF-8"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 使用专门的 putwchar 输出宽字符</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(a);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(b);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(c);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(d);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(e);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> putwchar</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 只能使用宽字符</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 使用通用的 wprintf 输出宽字符</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> wprintf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%lc</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %lc</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %lc</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %lc</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %lc\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, a, b, c, d, e);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br></div></div><h3 id="_3-3-4-宽字符串" tabindex="-1">3.3.4 宽字符串 <a class="header-anchor" href="#_3-3-4-宽字符串" aria-label="Permalink to "3.3.4 宽字符串""></a></h3><ul><li>如果给字符串加上 <code>L</code> 前缀,就变成了宽字符串,即:它包含的每个字符都是宽字符,一律采用 UTF-16 或者 UTF-32 编码。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 输出宽字符串可以使用 <wchar.h> 头文件中的 wprintf 函数,对应的格式控制符是<code>%ls</code>。</li><li>② 不加<code>L</code>前缀的窄字符串也可以处理中文,我们之前就在 <code>printf</code> 函数中,使用格式占位符 <code>%s</code> 输出含有中文的字符串,至于为什么,看下文讲解。</li></ul></div><ul><li>示例:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <locale.h></span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stddef.h></span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <wchar.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> /* 存储宽字符,如:中文 */</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> a</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">[]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"中国人"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> wchar_t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">b </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"你好"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 将本地环境设置为简体中文</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> setlocale</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(LC_ALL, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"zh_CN.UTF-8"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 使用通用的 wprintf 输出字符串</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> wprintf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(L</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%ls</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> %ls\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, a, b);</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br></div></div><h2 id="_3-4-c-语言到底使用什么编码" tabindex="-1">3.4 C 语言到底使用什么编码? <a class="header-anchor" href="#_3-4-c-语言到底使用什么编码" aria-label="Permalink to "3.4 C 语言到底使用什么编码?""></a></h2><h3 id="_3-4-1-概述" tabindex="-1">3.4.1 概述 <a class="header-anchor" href="#_3-4-1-概述" aria-label="Permalink to "3.4.1 概述""></a></h3><ul><li>在 C 语言中,只有 <code>char</code> 类型的<code>窄字符</code>才会使用 ASCII 编码。而 <code>char</code> 类型的<code>窄字符串</code>、<code>wchar_t</code> 类型的<code>宽字符</code>和<code>宽字符串</code>都不使用 ASCII 编码。</li><li><code>wchar_t</code> 类型的<code>宽字符</code>和<code>宽字符串</code>使用 UTF-16 或者 UTF-32 编码,这个在上文已经讲解了,现在只剩下 <code>char</code> 类型的<code>窄字符串</code>没有讲解了,这也是下文的重点。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><ul><li>① 其实,对于<code>char</code> 类型的窄字符串,C 语言并没有规定使用哪一种特定的编码,只要选用的编码能够适应当前的环境即可。换言之,<code>char</code> 类型的窄字符串的编码与操作系统以及编译器有关。</li><li>② 但是,<code>char</code> 类型的窄字符串一定不是 ASCII 编码,因为 ASCII 编码只能显示拉丁体系的文字,而不能输出中文、日文、韩文等。</li><li>③ 讨论窄字符串的编码要从以下两个方面下手。</li></ul></div><h3 id="_3-4-2-源文件使用什么编码" tabindex="-1">3.4.2 源文件使用什么编码? <a class="header-anchor" href="#_3-4-2-源文件使用什么编码" aria-label="Permalink to "3.4.2 源文件使用什么编码?""></a></h3><ul><li>源文件用来保存我们编写的代码,它最终会被存储到本地硬盘,或者远程服务器,这个时候就要尽量压缩文件体积,以节省硬盘空间或者网络流量,而代码中大部分的字符都是 ASCII 编码中的字符,用一个字节足以容纳,所以 UTF-8 编码是一个不错的选择。</li><li>UTF-8 兼容 ASCII,代码中的大部分字符可以用一个字节保存。另外,UTF-8 基于 Unicode,支持全世界的字符,我们编写的代码可以给全球的程序员使用,真正做到技术无国界。</li><li>常见的 IDE 或者编辑器,如:Sublime Text、Vim 等,在创建源文件的时候一般默认就是 UTF-8 编码。就算不是,我们也会推荐设置为 UTF-8 编码,如下所示:</li></ul><p><img src="/c/assets/53.t8GRVYsu.png" alt="" loading="lazy"></p><ul><li>对于 C 语言编译器来说,它往往支持多种编码格式的源文件。微软的 MSVC 、GCC 和 LLVM/Clang 都支持 UTF-8 和本地编码的源文件。</li></ul><h3 id="_3-4-3-窄字符串使用什么编码" tabindex="-1">3.4.3 窄字符串使用什么编码? <a class="header-anchor" href="#_3-4-3-窄字符串使用什么编码" aria-label="Permalink to "3.4.3 窄字符串使用什么编码?""></a></h3><ul><li>前文提到,可以使用 puts 函数或 printf 函数来输出窄字符串,如下所示:</li></ul><div class="language-c vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> <stdio.h></span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 存储字符串</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">[]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "我"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">str2 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "爱你"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> puts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(str);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 我</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> puts</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(str2);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 爱你</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> </span></span>
|
||||
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 存储字符串</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> str3</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">[]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "你"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">str4 </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "是好人"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, str3);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 你</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, str4);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 是好人</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br></div></div><ul><li>像 <code>"我"</code>、<code>"爱你"</code>、<code>"你"</code>、<code>"是好人"</code>就是需要被处理的窄字符串,当程序运行的时候,它们会被加载进内存。并且,这些字符串中是包含中文的,所以一定不会使用 ASCII 编码。</li><li>其实,对于代码中需要被处理的窄字符串,不同的编译器差别还是挺大的: <ul><li>微软的 MSVC 编译器使用本地编码来保存这些字符。对于简体中文版的 Windows,使用的是 GBK 编码。</li><li>GCC、LLVM/Clang 编译器使用和源文件相同的编码来保存这些字符:如果源文件使用的是 UTF-8 编码,那么这些字符也使用 UTF-8 编码;如果源文件使用的是 GBK 编码,那么这些字符也使用 GBK 编码。</li></ul></li></ul><h3 id="_3-3-4-总结" tabindex="-1">3.3.4 总结 <a class="header-anchor" href="#_3-3-4-总结" aria-label="Permalink to "3.3.4 总结""></a></h3><ul><li>① 对于 <code>char</code> 类型的窄字符,在 C 语言中,使用的是 <code>ASCII</code> 编码。</li><li>② 对于 <code>wchar_t</code> 类型的<code>宽字符</code>和<code>宽字符串</code>,在 C 语言中,使用的 <code>UTF-16</code> 编码或者 <code>UTF-32</code> 编码,它们都是基于 Unicode 字符集的。</li><li>③ 对于 <code>char</code> 类型的<code>窄字符串</code>,微软的 MSVC 编译器使用本地编码,GCC、LLVM/Clang 使用和源文件编码相同的编码。</li><li>④ 处理窄字符和处理宽字符使用的函数也不一样,如下所示: <ul><li><code><stdio.h></code> 头文件中的 <code>putchar</code>、<code>puts</code>、<code>printf</code> 函数只能用来处理窄字符。</li><li><code><wchar.h></code> 头文件中的 <code>putwchar</code>、<code>wprintf</code> 函数只能用来处理宽字符。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① C 语言作为一门较为底层和古老的语言,对于字符的处理,之所以有这么多种方式,是因为历史遗留的原因和早期计算机资源有限的背景密切相关。</li><li>② 现代化的编程语言,如:C++ 、Java、Python 等都对字符串处理进行了改进和抽象,如:C++ 中的 <code>std::string</code> 和 Java 中的 <code>String</code>。并且,现代编程语言的字符串类型通常会自动管理内存,这样开发者就不需要手动处理字符串的内存分配和释放,从而减少了内存泄漏和缓冲区溢出等问题。当然,现代编程语言通常内置了对各种字符编码的支持,能够方便地处理不同语言的字符,如:Java 的 <code>String</code> 类和 Python 的 <code>str</code> 类型都默认支持 Unicode,可以轻松处理中文等多字节字符。</li></ul></div><h3 id="_3-3-5-编码字符集和运行字符集" tabindex="-1">3.3.5 编码字符集和运行字符集 <a class="header-anchor" href="#_3-3-5-编码字符集和运行字符集" aria-label="Permalink to "3.3.5 编码字符集和运行字符集""></a></h3><ul><li>源文件使用的字符集,通常称为<code>编码字符集</code>,即:写代码的时候所使用的字符集。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>源文件需要保存到硬盘,或者在网络上传输,使用的编码要尽量节省存储空间,同时要方便跨国交流,所以一般使用 UTF-8,这就是选择编码字符集的标准。</p></div><ul><li>程序中的字符或者字符串使用的字符集,通常称为<code>运行字符集</code>,即:程序运行时所使用的字符集。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>程序中的字符或者字符串,在程序运行后必须被载入到内存,才能进行后续的处理,对于这些字符来说,要尽量选用能够提高处理速度的编码,如:UTF-16 和 UTF-32 编码就能够快速定位(查找)字符。</p></div><ul><li>编码字符集是站在存储和传输的角度,而运行字符集是站在处理或者操作的角度,所以它们并不一定相同。</li></ul></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-27T06:44:29.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/c/notes/01_c-basic/02_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>上一篇</span><span class="title" data-v-e257564d>变量和进制</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/04_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>大话小数</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -8,9 +8,9 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_04_xdx_index.md.ySxH8sG-.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
@ -23,7 +23,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-ab179fa1><a class="title" href="/c/" data-v-ab179fa1><!--[--><!--]--><!--[--><img class="VPImage logo" src="/c/logo.svg" alt data-v-8426fc1a><!--]--><span data-v-ab179fa1>许大仙</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/coa6/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>计组6件套</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-dc692963 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><!----><span data-v-b6c34ac9>编程语言</span><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><div class="items" data-v-b98bc113><!--[--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link" href="/c/notes/" data-v-43f1e123><!--[-->c/c++<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/web-design/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->前端<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/java/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Java<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/big-data/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->大数据<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/linux/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->云原生<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/go/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Go<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/python/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Python<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/db/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>数据库</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/open-software/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>开源软件</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/c/notes/about/" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>关于我</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Aurorxa" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>深浅模式</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Aurorxa" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>返回顶部</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible has-active" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>C 语言基础</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/00_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>编程基础</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C 语言入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/02_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>变量和进制</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/03_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>数据类型和运算符</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/04_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>大话小数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/05_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>流程控制</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/06_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>数组</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/07_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>指针</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/08_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/09_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>预处理器</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/10_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>自定义数据类型</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/11_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>内存管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/12_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>文件操作</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-basic/13_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>调试工具和调试技巧(gdb和make)</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/14_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>常用库函数</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>C 语言高级</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>变量和内存分布</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/02_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>指针强化</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/03_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>结构体和文件的高级用法</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/04_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>链表和回调函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/05_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>编译过程和面向接口</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>项目构建工具</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><section class="VPSidebarItem level-1 collapsible collapsed" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>meson</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>meson 入门</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1 collapsible collapsed" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>Cmake</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Cmake 入门</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_${commonDirectoryName}/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Conan </p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>Gradle</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Gradle 入门</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Linux</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/04_linux/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Linux 初识和安装</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>C++ 基础</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/02_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>变量、数据类型、运算符</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/03_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>流程控制</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/04_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>数组</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/05_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>指针</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/06_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/07_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>自定义数据类型</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/08_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>类和对象</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/09_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 引用</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/10_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>继承和派生</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/11_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 多态和虚函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/12_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>运算符重载</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/13_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>模板</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/14_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 异常</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/15_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>面向对象进阶</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/16_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>文件操作和 IO 流</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/17_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>STL(标准模板库)</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><div class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>C++ 高级</p><!----></div><!----></div></div><div class="no-transition group" data-v-c40bc020><div class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>QT 桌面开发</p><!----></div><!----></div></div><div class="no-transition group" data-v-c40bc020><div class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>Linux 高并发服务器开发</p><!----></div><!----></div></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>目录</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _c_notes_01_c-basic_04_xdx_" data-v-39a288b8><div></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-27T03:11:14.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/c/notes/01_c-basic/03_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>上一篇</span><span class="title" data-v-e257564d>数据类型和运算符</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/05_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>流程控制</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -8,9 +8,9 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_05_xdx_index.md.DUbOwEts.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
@ -774,7 +774,7 @@
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br></div></div></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-27T03:11:14.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/c/notes/01_c-basic/04_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>上一篇</span><span class="title" data-v-e257564d>大话小数</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/06_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>数组</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -8,9 +8,9 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_06_xdx_index.md.CV_r2WNu.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
@ -722,7 +722,7 @@
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br></div></div><div class="warning custom-block github-alert"><p class="custom-block-title">WARNING</p><p></p><p>在上述示例中,<code>arr</code> 和 <code>&arr</code> 的值是一样的,但是对应的含义是不同的。</p><ul><li>① <code>arr</code> 是数组名,在大多数情况下会转换为数组第一个元素的地址,即:<code>arr</code> 等价于 <code>&arr[0]</code>,其数据类型是 <code>int *</code>。</li><li>② <code>&arr</code>是数组名的地址,即整个数组的地址,它指向数组本身,并不是数组第一个元素的地址,<code>&arr</code> 的数据类型是 <code>int(*)[3]</code>。</li></ul></div></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-27T03:11:14.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/c/notes/01_c-basic/05_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>上一篇</span><span class="title" data-v-e257564d>流程控制</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/07_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>指针</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -8,9 +8,9 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_07_xdx_index.md.CE9q5cmu.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
@ -103,7 +103,7 @@
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"Address of array: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%p\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">arr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 返回整个数组的地址</span></span>
|
||||
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"Address of pointer: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%p\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">ptr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 返回指针变量ptr的地址</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div></li></ol><p>综上所述,通过这些示例和解释,可以看出数组名虽然在某些场合下可以像指针一样使用,但它并不是一个真正的指针变量,而是一个常量,表示数组的首地址。</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-27T03:11:14.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/c/notes/01_c-basic/06_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>上一篇</span><span class="title" data-v-e257564d>数组</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/08_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>函数</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
File diff suppressed because one or more lines are too long
@ -8,9 +8,9 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_about_index.md.DLuQgC_8.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
@ -23,7 +23,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-ab179fa1><a class="title" href="/c/" data-v-ab179fa1><!--[--><!--]--><!--[--><img class="VPImage logo" src="/c/logo.svg" alt data-v-8426fc1a><!--]--><span data-v-ab179fa1>许大仙</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/coa6/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>计组6件套</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-dc692963 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><!----><span data-v-b6c34ac9>编程语言</span><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><div class="items" data-v-b98bc113><!--[--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link" href="/c/notes/" data-v-43f1e123><!--[-->c/c++<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/web-design/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->前端<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/java/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Java<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/big-data/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->大数据<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/linux/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->云原生<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/go/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Go<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/python/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Python<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/db/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>数据库</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/open-software/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>开源软件</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/c/notes/about/" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>关于我</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Aurorxa" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>深浅模式</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Aurorxa" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>返回顶部</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>C 语言基础</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/00_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>编程基础</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C 语言入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/02_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>变量和进制</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/03_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>数据类型和运算符</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/04_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>大话小数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/05_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>流程控制</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/06_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>数组</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/07_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>指针</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/08_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/09_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>预处理器</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/10_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>自定义数据类型</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/11_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>内存管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/12_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>文件操作</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-basic/13_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>调试工具和调试技巧(gdb和make)</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/14_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>常用库函数</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>C 语言高级</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>变量和内存分布</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/02_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>指针强化</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/03_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>结构体和文件的高级用法</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/04_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>链表和回调函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/05_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>编译过程和面向接口</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>项目构建工具</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><section class="VPSidebarItem level-1 collapsible collapsed" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>meson</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>meson 入门</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1 collapsible collapsed" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>Cmake</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Cmake 入门</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_${commonDirectoryName}/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Conan </p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>Gradle</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Gradle 入门</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Linux</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/04_linux/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Linux 初识和安装</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>C++ 基础</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/02_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>变量、数据类型、运算符</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/03_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>流程控制</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/04_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>数组</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/05_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>指针</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/06_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/07_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>自定义数据类型</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/08_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>类和对象</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/09_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 引用</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/10_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>继承和派生</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/11_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 多态和虚函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/12_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>运算符重载</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/13_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>模板</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/14_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 异常</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/15_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>面向对象进阶</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/16_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>文件操作和 IO 流</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/17_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>STL(标准模板库)</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><div class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>C++ 高级</p><!----></div><!----></div></div><div class="no-transition group" data-v-c40bc020><div class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>QT 桌面开发</p><!----></div><!----></div></div><div class="no-transition group" data-v-c40bc020><div class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>Linux 高并发服务器开发</p><!----></div><!----></div></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>目录</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _c_notes_about_" data-v-39a288b8><div><h3 id="后端技术栈" tabindex="-1">后端技术栈 <a class="header-anchor" href="#后端技术栈" aria-label="Permalink to "后端技术栈""></a></h3><p><img src="https://img.shields.io/badge/-Spring-6DB33F?logo=Spring&logoColor=FFF" alt="Spring" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Spring%20Boot-6DB33F?logo=Spring-Boot&logoColor=FFF" alt="Spring Boot" style="display:inline-block;"> <img src="https://img.shields.io/badge/-MySQL-4479A1?logo=MySQL&logoColor=FFF" alt="MySQL" style="display:inline-block;"> <img src="https://img.shields.io/badge/-MariaDB-A9A9A9?logo=MariaDB&logoColor=003545" alt="MariaDB" style="display:inline-block;"> <img src="https://img.shields.io/badge/-PostgreSQL-C0C0C0?logo=PostgreSQL&logoColor=4169E1" alt="PostgreSQL" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Oracle-C0C0C0?logo=Oracle&logoColor=F80000" alt="Oracle" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Microsoft%20SQL%20Server-D3D3D3?logo=Microsoft-SQL-Server&logoColor=CC2927" alt="Microsoft SQL Server" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Redis-DC382D?logo=Redis&logoColor=FFF" alt="Redis" style="display:inline-block;"> <img src="https://img.shields.io/badge/-MongoDB-47A248?logo=MongoDB&logoColor=FFF" alt="MongoDB" style="display:inline-block;"> <img src="https://img.shields.io/badge/-RabbitMQ-FF6600?logo=RabbitMQ&logoColor=FFF" alt="RabbitMQ" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Solr-D9411E?logo=Apache-Solr&logoColor=FFF" alt="Solr" style="display:inline-block;"> <img src="https://img.shields.io/badge/-ElasticSearch-005571?logo=ElasticSearch&logoColor=FFF" alt="ElasticSearch" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Logstash-A9A9A9?logo=Logstash&logoColor=005571" alt="Logstash" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Kibana-A9A9A9?logo=Kibana&logoColor=005571" alt="Kibana" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Kafka-C0C0C0?logo=Apache-Kafka&logoColor=231F20" alt="Kafka" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Consul-F24C53?logo=Consul&logoColor=FFF" alt="Consul" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Tomcat-F8DC75?logo=Apache-Tomcat&logoColor=000" alt="Tomcat" style="display:inline-block;"> <img src="https://img.shields.io/badge/-JUnit5-25A162?logo=JUnit5&logoColor=FFF" alt="JUnit5" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Liquibase-2962FF?logo=Liquibase&logoColor=FFF" alt="Liquibase" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Maven-C71A36?logo=Apache-Maven&logoColor=FFF" alt="Maven" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Gradle-D3D3D3?logo=Gradle&logoColor=02303A" alt="Gradle" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Spring%20Security-6DB33F?logo=Spring-Security&logoColor=FFF" alt="Spring Security" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Hibernate-59666C?logo=Hibernate&logoColor=FFF" alt="Hibernate" style="display:inline-block;"> <img src="https://img.shields.io/badge/-JSON-000?logo=JSON&logoColor=FFF" alt="JSON" style="display:inline-block;"> <img src="https://img.shields.io/badge/-JWT-000?logo=JSON-Web-Tokens&logoColor=FFF" alt="JWT" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Java-F78C40?logo=OpenJDK&logoColor=FFF" alt="Java" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Python-A9A9A9?logo=Python&logoColor=3776AB" alt="Python" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Android-C0C0C0?logo=Android&logoColor=3DDC84" alt="Android" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Go-DCDCDC?logo=Go&logoColor=00ADD8" alt="Go" style="display:inline-block;"> <img src="https://img.shields.io/badge/-GraphQL-FFF?logo=GraphQL&logoColor=E10098" alt="GraphQL" style="display:inline-block;"> </p><h3 id="前端技术栈" tabindex="-1">前端技术栈 <a class="header-anchor" href="#前端技术栈" aria-label="Permalink to "前端技术栈""></a></h3><p><img src="https://img.shields.io/badge/-Vue3-C0C0C0?logo=Vue.js&logoColor=4FC08D" alt="Vue3" style="display:inline-block;"> <img src="https://img.shields.io/badge/-TypeScript-C0C0C0?logo=TypeScript&logoColor=3178C6" alt="TypeScript" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Ant%20Design-C0C0C0?logo=Ant-Design&logoColor=0170FE" alt="Ant Design" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Node.js-D3D3D3?logo=Node.js&logoColor=339933" alt="Node.js" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Vite-D3D3D3?logo=Vite&logoColor=646CFF" alt="Vite" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Webpack-D3D3D3?logo=Webpack&logoColor=8DD6F9" alt="Webpack" style="display:inline-block;"> <img src="https://img.shields.io/badge/-NPM-C0C0C0?logo=npm&logoColor=CB3837" alt="NPM" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Axios-C0C0C0?logo=Axios&logoColor=5A29E4" alt="Axios" style="display:inline-block;"> <img src="https://img.shields.io/badge/-ESLint-C0C0C0?logo=ESLint&logoColor=4B32C3" alt="ESLint" style="display:inline-block;"> <img src="https://img.shields.io/badge/-jQuery-0769AD?logo=jQuery&logoColor=FFF" alt="jQuery" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Bootstrap-7952B3?logo=Bootstrap&logoColor=FFF" alt="BootStrap" style="display:inline-block;"> <img src="https://img.shields.io/badge/-ECharts-C0C0C0?logo=Apache-ECharts&logoColor=AA344D" alt="ECharts" style="display:inline-block;"> <img src="https://img.shields.io/badge/-JavaScript-A9A9A9?logo=JavaScript&logoColor=F7DF1E" alt="JavaScript" style="display:inline-block;"> <img src="https://img.shields.io/badge/-HTML5-A9A9A9?logo=HTML5&logoColor=E34F26" alt="HTML5" style="display:inline-block;"> <img src="https://img.shields.io/badge/-CSS3-A9A9A9?logo=CSS3&logoColor=1572B6" alt="CSS3" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Tailwind%20CSS-FFF?logo=Tailwind-CSS&logoColor=06B6D4" alt="Tailwind CSS" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Less-D3D3D3?logo=Less&logoColor=1D365D" alt="Less" style="display:inline-block;"> </p><h3 id="devops" tabindex="-1">DevOps <a class="header-anchor" href="#devops" aria-label="Permalink to "DevOps""></a></h3><p><img src="https://img.shields.io/badge/-Git-F05032?logo=Git&logoColor=FFF" alt="Git" style="display:inline-block;"> <img src="https://img.shields.io/badge/-GitHub-181717?logo=GitHub&logoColor=FFF" alt="GitHub" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Gitee-C71D23?logo=Gitee&logoColor=FFF" alt="Gitee" style="display:inline-block;"> <img src="https://img.shields.io/badge/-GitLab-FC6D26?logo=GitLab&logoColor=FFF" alt="gitlab" style="display:inline-block;"> <img src="https://img.shields.io/badge/-GitHub%20Actions-2088FF?logo=GitHub-Actions&logoColor=FFF" alt="GitHub Actions" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Jenkins-D24939?logo=Jenkins&logoColor=000" alt="Jenkins" style="display:inline-block;"> <img src="https://img.shields.io/badge/-SonarQube-A9A9A9?logo=SonarQube&logoColor=4E9BCD" alt="SonarQube" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Docker-2496ED?logo=Docker&logoColor=FFF" alt="Docker" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Harbor-FFF?logo=Harbor&logoColor=60B932" alt="Harbor" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Kubernetes-326CE5?logo=Kubernetes&logoColor=FFF" alt="Kubernetes" style="display:inline-block;"> <img src="https://img.shields.io/badge/-CentOS-262577?logo=CentOS&logoColor=FFF" alt="CentOS" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Ubuntu-E95420?logo=Ubuntu&logoColor=FFF" alt="Ubuntu" style="display:inline-block;"> </p><h3 id="运维技术栈" tabindex="-1">运维技术栈 <a class="header-anchor" href="#运维技术栈" aria-label="Permalink to "运维技术栈""></a></h3><p><img src="https://img.shields.io/badge/-阿里云-FF6A00?logo=Alibaba-Cloud&logoColor=FFF" alt="阿里云" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Nginx-009639?logo=Nginx&logoColor=FFF" alt="Nginx" style="display:inline-block;"> <img src="https://img.shields.io/badge/-VMware-607078?logo=VMware&logoColor=FFF" alt="VMware" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Prometheus-C0C0C0?logo=Prometheus&logoColor=E6522C" alt="Prometheus" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Grafana-DCDCDC?logo=Grafana&logoColor=F46800" alt="Grafana" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Ansible-FFF?logo=Ansible&logoColor=EE0000" alt="Ansible" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Lua-FFF?&logo=Lua&logoColor=2C2D72" alt="Lua" style="display:inline-block;"> </p><h3 id="测试技术栈" tabindex="-1">测试技术栈 <a class="header-anchor" href="#测试技术栈" aria-label="Permalink to "测试技术栈""></a></h3><p><img src="https://img.shields.io/badge/-Postman-FF6C37?logo=Postman&logoColor=FFF" alt="Postman" style="display:inline-block;"> <img src="https://img.shields.io/badge/-JMeter-D3D3D3?logo=Apache-JMeter&logoColor=D22128" alt="JMeter" style="display:inline-block;"> </p><h3 id="开发工具" tabindex="-1">开发工具 <a class="header-anchor" href="#开发工具" aria-label="Permalink to "开发工具""></a></h3><p><img src="https://img.shields.io/badge/-Intellij%20IDEA-000?logo=Intellij-IDEA&logoColor=FFF" alt="Intellij IDEA" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Eclipse-2C2255?logo=Eclipse&logoColor=FFF" alt="Eclipse" style="display:inline-block;"> <img src="https://img.shields.io/badge/-WebStorm-000?logo=WebStorm&logoColor=FFF" alt="WebStorm" style="display:inline-block;"> <img src="https://img.shields.io/badge/-PyCharm-C0C0C0?logo=PyCharm&logoColor=000" alt="PyCharm" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Android%20Studio-C0C0C0?logo=Android-Studio&logoColor=3DDC84" alt="Android Studio" style="display:inline-block;"> <img src="https://img.shields.io/badge/-VSCode-C0C0C0?logo=Visual-Studio-Code&logoColor=007ACC" alt="VSCode" style="display:inline-block;"> </p><h3 id="其他" tabindex="-1">其他 <a class="header-anchor" href="#其他" aria-label="Permalink to "其他""></a></h3><p><img src="https://img.shields.io/badge/-Markdown-000?logo=Markdown&logoColor=FFF" alt="Markdown" style="display:inline-block;"> <img src="https://img.shields.io/badge/-WordPress-21759B?logo=WordPress&logoColor=FFF" alt="WordPress" style="display:inline-block;"> <img src="https://img.shields.io/badge/-GitHub%20Pages-222?logo=GitHub-Pages&logoColor=FFF" alt="GitHub Pages" style="display:inline-block;"> <img src="https://img.shields.io/badge/-Adobe%20Photoshop-A9A9A9?logo=Adobe-Photoshop&logoColor=31A8FF" alt="Adobe Photoshop" style="display:inline-block;"> </p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-16T02:24:26.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><!----></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/00_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>编程基础</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -8,9 +8,9 @@
|
||||
<meta name="generator" content="VitePress v1.3.3">
|
||||
<link rel="preload stylesheet" href="/c/assets/style.zDJ0OJGU.css" as="style">
|
||||
|
||||
<script type="module" src="/c/assets/app.1a4d5P-6.js"></script>
|
||||
<script type="module" src="/c/assets/app.BDcFJ1cZ.js"></script>
|
||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.Ddh-lpYV.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/theme.B44BsX0H.js">
|
||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||
<link rel="modulepreload" href="/c/assets/notes_index.md.CeV-uJ5V.lean.js">
|
||||
<link rel="shortcut icon" href="/c//logo.svg">
|
||||
@ -23,7 +23,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-ab179fa1><a class="title" href="/c/" data-v-ab179fa1><!--[--><!--]--><!--[--><img class="VPImage logo" src="/c/logo.svg" alt data-v-8426fc1a><!--]--><span data-v-ab179fa1>许大仙</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/coa6/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>计组6件套</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup active" data-v-dc692963 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><!----><span data-v-b6c34ac9>编程语言</span><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><div class="items" data-v-b98bc113><!--[--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link active" href="/c/notes/" data-v-43f1e123><!--[-->c/c++<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/web-design/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->前端<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/java/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Java<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/big-data/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->大数据<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/linux/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->云原生<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/go/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Go<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://aexiar.github.io/python/notes/" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Python<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/db/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>数据库</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://aexiar.github.io/open-software/notes/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>开源软件</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/c/notes/about/" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>关于我</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Aurorxa" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>深浅模式</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Aurorxa" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>返回顶部</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>C 语言基础</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/00_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>编程基础</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C 语言入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/02_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>变量和进制</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/03_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>数据类型和运算符</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/04_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>大话小数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/05_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>流程控制</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/06_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>数组</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/07_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>指针</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/08_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/09_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>预处理器</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/10_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>自定义数据类型</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/11_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>内存管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/12_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>文件操作</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-basic/13_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>调试工具和调试技巧(gdb和make)</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/01_c-basic/14_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>常用库函数</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>C 语言高级</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>变量和内存分布</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/02_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>指针强化</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/03_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>结构体和文件的高级用法</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/04_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>链表和回调函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/02_c-advance/05_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>编译过程和面向接口</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>项目构建工具</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><section class="VPSidebarItem level-1 collapsible collapsed" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>meson</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>meson 入门</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1 collapsible collapsed" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>Cmake</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Cmake 入门</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_${commonDirectoryName}/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Conan </p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>Gradle</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/03_build/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Gradle 入门</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Linux</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/04_linux/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Linux 初识和安装</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>C++ 基础</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/01_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 入门</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/02_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>变量、数据类型、运算符</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/03_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>流程控制</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/04_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>数组</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/05_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>指针</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/06_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/07_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>自定义数据类型</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/08_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>类和对象</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/09_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 引用</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/10_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>继承和派生</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/11_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 多态和虚函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/12_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>运算符重载</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/13_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>模板</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/14_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>C++ 异常</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/15_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>面向对象进阶</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/16_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>文件操作和 IO 流</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/c/notes/05_cpp/17_xdx/" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>STL(标准模板库)</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><div class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>C++ 高级</p><!----></div><!----></div></div><div class="no-transition group" data-v-c40bc020><div class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>QT 桌面开发</p><!----></div><!----></div></div><div class="no-transition group" data-v-c40bc020><div class="VPSidebarItem level-0 collapsible collapsed" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>Linux 高并发服务器开发</p><!----></div><!----></div></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>目录</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _c_notes_" data-v-39a288b8><div><h1 id="c-c-学科" tabindex="-1">c/c++ 学科 <a class="header-anchor" href="#c-c-学科" aria-label="Permalink to "c/c++ 学科""></a></h1><hr><iframe src="https://roadmap.sh/r/embed?id=6695c8262b17b182cbf4b520" width="115%" height="500px" frameBorder="0"></iframe></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>上次更新: <time datetime="2024-08-01T02:00:11.000Z" data-v-e98dd255></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><!----></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/c/notes/01_c-basic/00_xdx/" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>下一篇</span><span class="title" data-v-e257564d>编程基础</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024 许大仙</p></div></footer><!--[--><!--]--></div></div>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"Cw3Z19MO\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"index.md\":\"Dga0tMF5\",\"notes_01_c-basic_00_xdx_index.md\":\"BRC7slaL\",\"notes_01_c-basic_01_xdx_index.md\":\"Fg4OXydV\",\"notes_01_c-basic_02_xdx_index.md\":\"CC2Mg9VD\",\"notes_01_c-basic_03_xdx_index.md\":\"8BENFVze\",\"notes_01_c-basic_04_xdx_index.md\":\"ySxH8sG-\",\"notes_01_c-basic_05_xdx_index.md\":\"DUbOwEts\",\"notes_01_c-basic_06_xdx_index.md\":\"CV_r2WNu\",\"notes_01_c-basic_07_xdx_index.md\":\"CE9q5cmu\",\"notes_04_linux_01_xdx_index.md\":\"C9IatKsj\",\"notes_about_index.md\":\"DLuQgC_8\",\"notes_index.md\":\"CeV-uJ5V\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"许大仙\",\"titleTemplate\":\"Hi,终于等到你\",\"description\":\"许大仙前端、Java、大数据、云原生\",\"base\":\"/c/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"lastUpdatedText\":\"上次更新\",\"returnToTopLabel\":\"返回顶部\",\"search\":{\"provider\":\"local\"},\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"https://aexiar.github.io/\"},{\"text\":\"计组6件套\",\"link\":\"https://aexiar.github.io/coa6/notes/\"},{\"text\":\"编程语言\",\"items\":[{\"text\":\"c/c++\",\"link\":\"/notes/\"},{\"text\":\"前端\",\"link\":\"https://aexiar.github.io/web-design/notes/\"},{\"text\":\"Java\",\"link\":\"https://aexiar.github.io/java/notes/\"},{\"text\":\"大数据\",\"link\":\"https://aexiar.github.io/big-data/notes/\"},{\"text\":\"云原生\",\"link\":\"https://aexiar.github.io/linux/notes/\"},{\"text\":\"Go\",\"link\":\"https://aexiar.github.io/go/notes/\"},{\"text\":\"Python\",\"link\":\"https://aexiar.github.io/python/notes/\"}]},{\"text\":\"数据库\",\"link\":\"https://aexiar.github.io/db/notes/\"},{\"text\":\"开源软件\",\"link\":\"https://aexiar.github.io/open-software/notes/\"},{\"text\":\"关于我\",\"link\":\"/notes/about/\"}],\"sidebar\":{\"/notes/\":[{\"text\":\"C 语言基础\",\"collapsed\":true,\"items\":[{\"text\":\"编程基础\",\"link\":\"/notes/01_c-basic/00_xdx/\"},{\"text\":\"C 语言入门\",\"link\":\"/notes/01_c-basic/01_xdx/\"},{\"text\":\"变量和进制\",\"link\":\"/notes/01_c-basic/02_xdx/\"},{\"text\":\"数据类型和运算符\",\"link\":\"/notes/01_c-basic/03_xdx/\"},{\"text\":\"大话小数\",\"link\":\"/notes/01_c-basic/04_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/01_c-basic/05_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/01_c-basic/06_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/01_c-basic/07_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/01_c-basic/08_xdx/\"},{\"text\":\"预处理器\",\"link\":\"/notes/01_c-basic/09_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/01_c-basic/10_xdx/\"},{\"text\":\"内存管理\",\"link\":\"/notes/01_c-basic/11_xdx/\"},{\"text\":\"文件操作\",\"link\":\"/notes/01_c-basic/12_xdx/\"},{\"text\":\"调试工具和调试技巧(gdb和make)\",\"link\":\"/notes/02_c-basic/13_xdx/\"},{\"text\":\"常用库函数\",\"link\":\"/notes/01_c-basic/14_xdx/\"}]},{\"text\":\"C 语言高级\",\"collapsed\":true,\"items\":[{\"text\":\"变量和内存分布\",\"link\":\"/notes/02_c-advance/01_xdx/\"},{\"text\":\"指针强化\",\"link\":\"/notes/02_c-advance/02_xdx/\"},{\"text\":\"结构体和文件的高级用法\",\"link\":\"/notes/02_c-advance/03_xdx/\"},{\"text\":\"链表和回调函数\",\"link\":\"/notes/02_c-advance/04_xdx/\"},{\"text\":\"编译过程和面向接口\",\"link\":\"/notes/02_c-advance/05_xdx/\"}]},{\"text\":\"项目构建工具\",\"collapsed\":true,\"items\":[{\"text\":\"meson\",\"collapsed\":true,\"items\":[{\"text\":\"meson 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Cmake\",\"collapsed\":true,\"items\":[{\"text\":\"Cmake 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]},{\"text\":\"Conan \",\"link\":\"/notes/03_build/01_${commonDirectoryName}/\"},{\"text\":\"Gradle\",\"collapsed\":true,\"items\":[{\"text\":\"Gradle 入门\",\"link\":\"/notes/03_build/01_xdx/\"}]}]},{\"text\":\"Linux\",\"collapsed\":true,\"items\":[{\"text\":\"Linux 初识和安装\",\"link\":\"/notes/04_linux/01_xdx/\"}]},{\"text\":\"C++ 基础\",\"collapsed\":true,\"items\":[{\"text\":\"C++ 入门\",\"link\":\"/notes/05_cpp/01_xdx/\"},{\"text\":\"变量、数据类型、运算符\",\"link\":\"/notes/05_cpp/02_xdx/\"},{\"text\":\"流程控制\",\"link\":\"/notes/05_cpp/03_xdx/\"},{\"text\":\"数组\",\"link\":\"/notes/05_cpp/04_xdx/\"},{\"text\":\"指针\",\"link\":\"/notes/05_cpp/05_xdx/\"},{\"text\":\"函数\",\"link\":\"/notes/05_cpp/06_xdx/\"},{\"text\":\"自定义数据类型\",\"link\":\"/notes/05_cpp/07_xdx/\"},{\"text\":\"类和对象\",\"link\":\"/notes/05_cpp/08_xdx/\"},{\"text\":\"C++ 引用\",\"link\":\"/notes/05_cpp/09_xdx/\"},{\"text\":\"继承和派生\",\"link\":\"/notes/05_cpp/10_xdx/\"},{\"text\":\"C++ 多态和虚函数\",\"link\":\"/notes/05_cpp/11_xdx/\"},{\"text\":\"运算符重载\",\"link\":\"/notes/05_cpp/12_xdx/\"},{\"text\":\"模板\",\"link\":\"/notes/05_cpp/13_xdx/\"},{\"text\":\"C++ 异常\",\"link\":\"/notes/05_cpp/14_xdx/\"},{\"text\":\"面向对象进阶\",\"link\":\"/notes/05_cpp/15_xdx/\"},{\"text\":\"文件操作和 IO 流\",\"link\":\"/notes/05_cpp/16_xdx/\"},{\"text\":\"STL(标准模板库)\",\"link\":\"/notes/05_cpp/17_xdx/\"}]},{\"text\":\"C++ 高级\",\"collapsed\":true,\"items\":[]},{\"text\":\"QT 桌面开发\",\"collapsed\":true,\"items\":[]},{\"text\":\"Linux 高并发服务器开发\",\"collapsed\":true,\"items\":[]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Aurorxa\"}],\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"},\"darkModeSwitchLabel\":\"深浅模式\",\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024 许大仙\"},\"outline\":{\"level\":[1,6],\"label\":\"目录\"},\"outlineTitle\":\"当前页大纲\"},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user