mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
deploy: 236cb5557e
This commit is contained in:
parent
0aad84c9a7
commit
034d828dca
4
404.html
4
404.html
@ -8,7 +8,7 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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="shortcut icon" href="/c//logo.svg">
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
|
||||||
@ -20,7 +20,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
Binary file not shown.
Before Width: | Height: | Size: 9.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7.6 KiB |
@ -1 +1 @@
|
|||||||
import{R as p}from"./chunks/theme.qEt4jrTD.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.NkrV2-BM.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};
|
File diff suppressed because one or more lines are too long
1
assets/chunks/@localSearchIndexroot.D5kUbfCy.js
Normal file
1
assets/chunks/@localSearchIndexroot.D5kUbfCy.js
Normal file
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.qEt4jrTD.js";const as={root:()=>Rt(()=>import("./@localSearchIndexroot.BO6JTMB1.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.NkrV2-BM.js";const as={root:()=>Rt(()=>import("./@localSearchIndexroot.D5kUbfCy.js"),[])};/*!
|
||||||
* tabbable 6.2.0
|
* tabbable 6.2.0
|
||||||
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
|
* @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)};/*!
|
*/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",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":1724807364000}'),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>
|
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":1724809134000}'),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="note custom-block github-alert"><p class="custom-block-title">NOTE</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>
|
||||||
<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 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>
|
@ -1 +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":1724807364000}'),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("",374);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};
|
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":1724809134000}'),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("",374);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 s,c as i,o as a,a6 as n}from"./chunks/framework.hMCIpNYY.js";const t="/c/assets/1.L8V3GBrc.png",l="/c/assets/2.CdvhiwcU.png",e="/c/assets/3.D74t3-Xt.png",d="/c/assets/4.DqDR6Thp.svg",p="/c/assets/5.BzSkS-4w.svg",h="/c/assets/6.BPY9ZGed.svg",C=JSON.parse('{"title":"第一章:颇具争议的指针","description":"","frontmatter":{},"headers":[],"relativePath":"notes/01_c-basic/07_xdx/index.md","filePath":"notes/01_c-basic/07_xdx/index.md","lastUpdated":1724728274000}'),k={name:"notes/01_c-basic/07_xdx/index.md"},r=n("",87),c=[r];function o(g,E,u,b,y,F){return a(),i("div",null,c)}const A=s(k,[["render",o]]);export{C as __pageData,A as default};
|
|
@ -1,4 +1,4 @@
|
|||||||
import{_ as s,c as i,o as a,a6 as n}from"./chunks/framework.hMCIpNYY.js";const t="/c/assets/1.L8V3GBrc.png",l="/c/assets/2.CdvhiwcU.png",e="/c/assets/3.D74t3-Xt.png",d="/c/assets/4.DqDR6Thp.svg",p="/c/assets/5.BzSkS-4w.svg",h="/c/assets/6.BPY9ZGed.svg",C=JSON.parse('{"title":"第一章:颇具争议的指针","description":"","frontmatter":{},"headers":[],"relativePath":"notes/01_c-basic/07_xdx/index.md","filePath":"notes/01_c-basic/07_xdx/index.md","lastUpdated":1724728274000}'),k={name:"notes/01_c-basic/07_xdx/index.md"},r=n('<div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① <code>指针</code>是 C 语言中<code>最重要</code>的概念之一,也是<code>最难以理解</code>的概念之一。</li><li>② <code>指针</code>是 C 语言的<code>精髓</code>,要想掌握 C 语言就需要深入地了解指针。</li></ul></div><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>目前而言,操作系统几乎都是通过 C 语言来编写和维护的;而 C 语言提供了指针的用法,其能直接操作内存地址,是个非常<code>强大</code>和<code>灵活</code>的工具;但是,需要开发者<code>小心谨慎的使用</code>,以确保程序的稳定性和安全性。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>之所以指针在 C 语言中颇具争议,是因为一方面其功能强大,直接操作内存地址;另一方面,又很危险,不正确的使用指针的方式,非常容易导致程序崩溃。</p></div><ul><li><p>如果没有能很好的使用指针,就会带来一系列的问题,如:</p><ul><li>① <code>空指针引用</code>(Null Pointer Dereference):当一个指针没有正确初始化或者被赋予了空(NULL)值时,如果程序尝试访问该指针所指向的内存,会导致运行时错误,甚至导致程序崩溃。</li><li>② <code>野指针</code>(Dangling Pointers):指针指向的内存地址曾经分配给某个变量或对象,但后来该变量或对象被释放或者移动,导致指针仍指向已经无效的内存位置。对野指针进行操作可能会导致未定义的行为或程序崩溃。</li><li>③ <code>指针算术错误</code>:在进行指针运算时,如果没有正确管理指针的偏移量或者超出了数组的边界,可能会导致指针指向错误的内存位置,从而影响程序的正确性和安全性。</li><li>④ <code>内存泄漏</code>:如果动态分配的内存通过指针分配,但在不再需要时没有正确释放,会导致内存泄漏,长时间运行的程序可能会耗尽系统资源。</li></ul></li><li><p>为了减少指针带来的风险,开发人员可以采取以下的措施:</p><ul><li>① <code>良好的编程实践</code>:确保指针的初始化和使用是安全的,避免空指针引用和野指针问题。</li><li>② <code>边界检查</code>:在进行指针运算时,始终确保不会超出数组或内存分配的边界。</li><li>③ <code>使用指针和引用的适当性</code>:在可能的情况下,可以考虑使用更安全的语言特性,如:引用(在 C++ 等编程语言中)或者更高级别的数据结构来代替裸指针,从而减少指针使用时的潜在风险。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 既然指针很危险,那么通过一系列的手段将指针包装或屏蔽,以达到程序安全的目的(这是现代化的高级编程语言解决的思路,如:Java、Go、Rust 等)。</li><li>② 之所以,指针还需要学习,是因为在嵌入式等领域,其机器的资源(CPU、内存等)非常有限;而现代化的高级编程语言虽然安全,但是需要的系统资源也庞大。</li><li>③ 我们知道,编译型的程序不管编译过程如何复杂,至少需要两步:编译和运行。通常,我们也将这两步称为编译期和运行期。C 语言中的指针之所以危险就在于程序要在运行的时候才会发现问题(后知后觉);而现代化的高级编程语言中的编译器在程序编译的时候就会发现问题(提前发现问题)。</li><li>④ C 语言的编译器之所以这么设计的原因,就在于当时的内存和 CPU 是非常有限(PDP-7 早期小型计算机,CPU:18 bit 的电子管逻辑,内存:4kb )和昂贵(72,000 $),如果加入安全限制的功能,会远远超过整个系统的资源。</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><ul><li><p><code>C++</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>智能指针</code>: C++ 引入了智能指针(如<code>std::shared_ptr</code>、<code>std::unique_ptr</code>),这些指针提供了自动资源管理和所有权的语义。<code>std::unique_ptr</code>确保只有一个指针可以访问给定的资源,从而避免了传统指针的悬空引用和内存泄漏问题。<code>std::shared_ptr</code>允许多个指针共享一个资源,并在所有引用释放后自动释放。</li><li>② <code>引用</code>: C++ 中的引用(如:<code>&</code>符号)提供了更安全的间接访问方法,与指针相比,引用不能重新绑定到不同的对象,从而减少了意外的指针错误。</li></ul></li><li><p><code>Go</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>内存管理和垃圾回收</code>: Go 语言通过自动垃圾回收器管理内存,减少了手动内存管理所带来的指针操作错误。Go 的垃圾回收器定期扫描并释放不再使用的内存,避免了内存泄漏和悬空指针问题。</li><li>② <code>指针的安全性</code>: Go 语言的指针是受限的,不支持指针运算,从而减少了指针操作可能带来的风险。</li></ul></li><li><p><code>Rust</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>所有权和借用</code>: Rust 引入了所有权和借用的概念,编译器在编译时静态分析所有权转移和引用的生命周期。这种机制避免了数据竞争和空指针解引用等运行时错误,使得在编译时就能够保证内存安全。</li><li>② <code>生命周期</code>: Rust 的生命周期系统确保引用的有效性和安全性,防止了悬空引用和指针乱用。</li></ul></li><li><p><code>Java</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>引用类型和自动内存管理</code>: Java 中所有的对象引用都是通过引用来访问的,而不是直接的指针。Java 的自动垃圾回收器负责管理内存,从而避免了手动内存管理可能导致的指针错误,如:内存泄漏和悬空指针。</li><li>② <code>强类型系统和异常处理</code>: Java 的强类型系统和异常处理机制减少了指针操作带来的风险,如:空指针解引用异常(NullPointerException)。编译器在编译时能够捕获许多潜在的类型错误,进一步增强了程序的安全性和可靠性。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>总而言之,各种编程语言通过引入不同的策略和机制,如:智能指针、垃圾回收器、所有权和借用,以及强类型系统,有效地减少了指针操作所带来的各种安全性和可靠性问题,提升了程序的稳定性和开发效率。</p></div><h1 id="第二章-回顾知识" tabindex="-1">第二章:回顾知识 <a class="header-anchor" href="#第二章-回顾知识" aria-label="Permalink to "第二章:回顾知识""></a></h1><h2 id="_2-1-变量" tabindex="-1">2.1 变量 <a class="header-anchor" href="#_2-1-变量" aria-label="Permalink to "2.1 变量""></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;"> 值 ;</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>变量名(标识符)需要符合命名规则和命名规范!!!</p><ul><li>强制规范: <ul><li>① 只能由<code>小写</code>或<code>大写英文字母</code>,<code>0-9</code> 或 <code>_</code> 组成。</li><li>② 不能以<code>数字</code>开头。</li><li>③ 不可以是<code>关键字</code>。</li><li>④ 标识符具有<code>长度</code>限制,不同编译器和平台会有所不同,一般限制在 63 个字符内。</li><li>⑤ 严格<code>区分大小写字母</code>,如:Hello、hello 是不同的标识符。</li></ul></li><li>建议规范: <ul><li>① 为了提高阅读性,使用有意义的单词,见名知意,如:sum,name,max,year 等。</li><li>② 使用下划线连接多个单词组成的标识符,如:max_classes_per_student 等。</li><li>③ 多个单词组成的标识符,除了使用下划线连接,也可以使用小驼峰命名法,除第一个单词外,后续单词的首字母大写,如: studentId、student_name 等。</li><li>④ 不要出现仅靠大小写区分不同的标识符,如:name、Name 容易混淆。</li><li>⑤ 系统内部使用了一些下划线开头的标识符,如:C99 标准添加的类型 <code>_Bool</code>,为防止冲突,建议开发者尽量避免使用下划线开头的标识符。</li></ul></li></ul></div><ul><li><code>变量名</code>的<code>作用</code>,如下所示: <ul><li>① 当我们<code>编写</code>代码的时候,使用<code>变量名</code>来<code>关联</code>某块内存的<code>地址</code>。</li><li>② 当 CPU <code>执行</code>的时候,会将变量名<code>替换</code>为具体的地址,再进行具体的操作。</li></ul></li></ul><h2 id="_2-2-普通变量和指针变量的区别" tabindex="-1">2.2 普通变量和指针变量的区别 <a class="header-anchor" href="#_2-2-普通变量和指针变量的区别" aria-label="Permalink to "2.2 普通变量和指针变量的区别""></a></h2><ul><li>根据<code>变量</code>中<code>存储</code>的<code>值</code>的<code>不同</code>,我们可以将<code>变量</code>分为两类: <ul><li><code>普通变量</code>:变量所对应的内存中存储的是<code>普通值</code>。</li><li><code>指针变量</code>:变量所对应的内存中存储的是<code>另一个变量的地址</code>。</li></ul></li><li>如下图所示:</li></ul><p><img src="'+t+'" alt="img" loading="lazy"></p><ul><li>普通变量和指针变量的相同点,如下所示: <ul><li>① 普通变量有内存空间,指针变量也有内存空间。</li><li>② 普通变量有内存地址,指针变量也有内存地址。</li><li>③ 普通变量所对应的内存空间中有值,指针变量所对应的内存空间中也有值。</li></ul></li><li>普通变量和指针变量的不同点: <ul><li>① <code>普通变量</code>所对应的内存空间<code>存储</code>的是<code>普通的值</code>,如:整数、小数、字符等;<code>指针变量</code>所对应的内存空间<code>存储</code>的是另外一个变量的<code>地址</code>。</li><li>② <code>普通变量有普通变量的运算方式</code>,而<code>指针变量有指针变量的运算方式</code>(后续讲解)。</li></ul></li></ul><h2 id="_2-3-运算符" tabindex="-1">2.3 运算符 <a class="header-anchor" href="#_2-3-运算符" aria-label="Permalink to "2.3 运算符""></a></h2><h3 id="_2-3-1-概述" tabindex="-1">2.3.1 概述 <a class="header-anchor" href="#_2-3-1-概述" aria-label="Permalink to "2.3.1 概述""></a></h3><ul><li>运算符是一种特殊的符号,用于数据的运算、赋值和比较等。</li><li><code>表达式</code>指的是一组运算数、运算符的组合,表达式<code>一定具有值</code>,一个变量或一个常量可以是表达式,变量、常量和运算符也可以组成表达式,如:</li></ul><p><img src="'+l+'" alt="img" loading="lazy"></p><ul><li><code>操作数</code>指的是<code>参与运算</code>的<code>值</code>或者<code>对象</code>,如:</li></ul><p><img src="'+e+`" alt="" loading="lazy"></p><ul><li>根据<code>操作数</code>的<code>个数</code>,可以将运算符分为: <ul><li>一元运算符(一目运算符)。</li><li>二元运算符(二目运算符)。</li><li>三元运算符(三目运算符)。</li></ul></li><li>根据<code>功能</code>,可以将运算符分为: <ul><li>算术运算符。</li><li>关系运算符(比较运算符)。</li><li>逻辑运算符。</li><li>赋值运算符。</li><li>逻辑运算符。</li><li>位运算符。</li><li>三元运算符。</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>③ 运算符所组成的表达式。</li><li>④ 运算符有无副作用,即:运算后是否会修改操作数的值。</li></ul></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>普通变量支持上述的所有运算符;而指针变量并非支持上述的所有运算符,且支持运算符的含义和普通变量相差较大!!!</p></div><h3 id="_2-3-2-运算符的优先级" tabindex="-1">2.3.2 运算符的优先级 <a class="header-anchor" href="#_2-3-2-运算符的优先级" aria-label="Permalink to "2.3.2 运算符的优先级""></a></h3><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><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 取值运算符 <code>*</code> 和取地址运算符 <code>&</code> 的优先级相同,并且运算方向都是从右向左!!!</li><li>② 逗号运算符 <code>,</code> 的优先级最低,并且运算方向是从左向右!!!</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><ul><li>计算机中程序的运行都是在内存中进行的,变量也是内存中分配的空间,且不同类型的变量占据的内存空间大小不同,如:char 类型的变量是 1 个字节,short 类型的变量是 2 个字节,int 类型的变量是 4 个字节...</li><li>之前我们都是通过<code>变量名(普通变量)</code>访问内存中存储的数据,如下所示:</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 s,c as i,o as a,a6 as n}from"./chunks/framework.hMCIpNYY.js";const l="/c/assets/4.DqDR6Thp.svg",p="/c/assets/5.BzSkS-4w.svg",e="/c/assets/6.BPY9ZGed.svg",b=JSON.parse('{"title":"第一章:颇具争议的指针","description":"","frontmatter":{},"headers":[],"relativePath":"notes/01_c-basic/07_xdx/index.md","filePath":"notes/01_c-basic/07_xdx/index.md","lastUpdated":1724809134000}'),t={name:"notes/01_c-basic/07_xdx/index.md"},h=n(`<div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① <code>指针</code>是 C 语言中<code>最重要</code>的概念之一,也是<code>最难以理解</code>的概念之一。</li><li>② <code>指针</code>是 C 语言的<code>精髓</code>,要想掌握 C 语言就需要深入地了解指针。</li></ul></div><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>目前而言,操作系统几乎都是通过 C 语言来编写和维护的;而 C 语言提供了指针的用法,其能直接操作内存地址,是个非常<code>强大</code>和<code>灵活</code>的工具;但是,需要开发者<code>小心谨慎的使用</code>,以确保程序的稳定性和安全性。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>之所以指针在 C 语言中颇具争议,是因为一方面其功能强大,直接操作内存地址;另一方面,又很危险,不正确的使用指针,非常容易导致程序崩溃。</p></div><ul><li><p>如果没有能很好的使用指针,就会带来一系列的问题,如:</p><ul><li>① <code>空指针引用</code>(Null Pointer Dereference):当一个指针没有正确初始化或者被赋予了空(NULL)值时,如果程序尝试访问该指针所指向的内存,会导致运行时错误,甚至导致程序崩溃。</li><li>② <code>野指针</code>(Dangling Pointers):指针指向的内存地址曾经分配给某个变量或对象,但后来该变量或对象被释放或者移动,导致指针仍指向已经无效的内存位置。对野指针进行操作可能会导致未定义的行为或程序崩溃。</li><li>③ <code>指针算术错误</code>:在进行指针运算时,如果没有正确管理指针的偏移量或者超出了数组的边界,可能会导致指针指向错误的内存位置,从而影响程序的正确性和安全性。</li><li>④ <code>内存泄漏</code>:如果动态分配的内存通过指针分配,但在不再需要时没有正确释放,会导致内存泄漏,长时间运行的程序可能会耗尽系统资源。</li></ul></li><li><p>为了减少指针带来的风险,开发人员可以采取以下的措施:</p><ul><li>① <code>良好的编程实践</code>:确保指针的初始化和使用是安全的,避免空指针引用和野指针问题。</li><li>② <code>边界检查</code>:在进行指针运算时,始终确保不会超出数组或内存分配的边界。</li><li>③ <code>使用指针和引用的适当性</code>:在可能的情况下,可以考虑使用更安全的语言特性,如:引用(在 C++ 等编程语言中)或者更高级别的数据结构来代替裸指针,从而减少指针使用时的潜在风险。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 既然指针很危险,那么通过一系列的手段将指针包装或屏蔽,以达到程序安全的目的(这是现代化的高级编程语言解决的思路,如:Java、Go、Rust 等)。</li><li>② 之所以,指针还需要学习,是因为在嵌入式等领域,其机器的资源(CPU、内存等)非常有限;而现代化的高级编程语言虽然安全,但是需要的系统资源也庞大。</li><li>③ 我们知道,编译型的程序不管编译过程如何复杂,至少需要两步:编译和运行。通常,我们也将这两步称为编译期和运行期。C 语言中的指针之所以危险就在于程序要在运行的时候才会发现问题(后知后觉);而现代化的高级编程语言中的编译器在程序编译的时候就会发现问题(提前发现问题)。</li><li>④ C 语言的编译器之所以这么设计的原因,就在于当时的内存和 CPU 是非常有限(PDP-7 早期小型计算机,CPU:18 bit 的电子管逻辑,内存:4kb )和昂贵(72,000 $),如果加入安全限制的功能,会远远超过整个系统的资源。</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><ul><li><p><code>C++</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>智能指针</code>: C++ 引入了智能指针(如<code>std::shared_ptr</code>、<code>std::unique_ptr</code>),这些指针提供了自动资源管理和所有权的语义。<code>std::unique_ptr</code>确保只有一个指针可以访问给定的资源,从而避免了传统指针的悬空引用和内存泄漏问题。<code>std::shared_ptr</code>允许多个指针共享一个资源,并在所有引用释放后自动释放。</li><li>② <code>引用</code>: C++ 中的引用(如:<code>&</code>符号)提供了更安全的间接访问方法,与指针相比,引用不能重新绑定到不同的对象,从而减少了意外的指针错误。</li></ul></li><li><p><code>Go</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>内存管理和垃圾回收</code>: Go 语言通过自动垃圾回收器管理内存,减少了手动内存管理所带来的指针操作错误。Go 的垃圾回收器定期扫描并释放不再使用的内存,避免了内存泄漏和悬空指针问题。</li><li>② <code>指针的安全性</code>: Go 语言的指针是受限的,不支持指针运算,从而减少了指针操作可能带来的风险。</li></ul></li><li><p><code>Rust</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>所有权和借用</code>: Rust 引入了所有权和借用的概念,编译器在编译时静态分析所有权转移和引用的生命周期。这种机制避免了数据竞争和空指针解引用等运行时错误,使得在编译时就能够保证内存安全。</li><li>② <code>生命周期</code>: Rust 的生命周期系统确保引用的有效性和安全性,防止了悬空引用和指针乱用。</li></ul></li><li><p><code>Java</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>引用类型和自动内存管理</code>: Java 中所有的对象引用都是通过引用来访问的,而不是直接的指针。Java 的自动垃圾回收器负责管理内存,从而避免了手动内存管理可能导致的指针错误,如:内存泄漏和悬空指针。</li><li>② <code>强类型系统和异常处理</code>: Java 的强类型系统和异常处理机制减少了指针操作带来的风险,如:空指针解引用异常(NullPointerException)。编译器在编译时能够捕获许多潜在的类型错误,进一步增强了程序的安全性和可靠性。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 总而言之,现代化的高级编程语言通过引入不同的策略和机制,如:智能指针、垃圾回收器、所有权和借用,以及强类型系统,有效地减少了指针操作所带来的各种安全性和可靠性问题,提升了程序的稳定性和开发效率。</li><li>② 换言之,现代化的高级编程语言就是在某些方面,如:性能(运行效率)、底层控制(隐藏了许多底层实现细节,以防止程序员意外地引入安全漏洞)和平台特定优化(屏蔽底层硬件细节,如:CPU 寄存器、具体的内存布局,以达到跨平台的目的,这也限制了程序员对底层优化的控制),做出一定的牺牲,以换取开发效率以及程序的稳定性。</li></ul></div><h1 id="第二章-指针的理解和定义-⭐" tabindex="-1">第二章:指针的理解和定义(⭐) <a class="header-anchor" href="#第二章-指针的理解和定义-⭐" aria-label="Permalink to "第二章:指针的理解和定义(⭐)""></a></h1><h2 id="_2-1-变量的访问方式" tabindex="-1">2.1 变量的访问方式 <a class="header-anchor" href="#_2-1-变量的访问方式" aria-label="Permalink to "2.1 变量的访问方式""></a></h2><ul><li>计算机中程序的运行都是在内存中进行的,变量也是内存中分配的空间,且不同类型的变量占据的内存空间大小不同,如:char 类型的变量是 1 个字节,short 类型的变量是 2 个字节,int 类型的变量是 4 个字节...</li><li>之前我们都是通过<code>变量名(普通变量)</code>访问内存中存储的数据,如下所示:</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>
|
||||||
<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 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>
|
||||||
@ -15,7 +15,7 @@ import{_ as s,c as i,o as a,a6 as n}from"./chunks/framework.hMCIpNYY.js";const t
|
|||||||
<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;">"num = </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;">, num);</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;">"num = </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;">, num);</span></span>
|
||||||
<span class="line"></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:#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><ul><li>上述的这种方式也称为<code>直接访问</code>;当然,既然有<code>直接访问</code>的方式,必然有<code>间接访问</code>的方式,如:<code>指针</code>。</li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 我们通过<code>变量名(普通变量)</code>访问内存中变量存储的数据,之所以称为<code>直接访问</code>的方式,是因为对于我们写程序而言,我们无需关心如何根据内存地址去获取内存中对应的数据,也无需关系如何根据内存地址将数据存储到对应的内存空间,这些操作步骤都是<code>编译器</code>帮助我们在底层自动完成的(自动化)。</li><li>② 但是,我们也可以通过<code>内存地址</code>去操作内存中对应的数据(手动化),这种方式就称为<code>间接访问</code>的方式了,相对于<code>直接访问</code>方式来说,要<code>理解</code>的<code>概念</code>和<code>操作</code>的<code>步骤</code>和之前<code>直接访问</code>的方式相比,要复杂和麻烦很多,但是效率高。</li></ul></div><h2 id="_3-2-内存地址和指针" tabindex="-1">3.2 内存地址和指针 <a class="header-anchor" href="#_3-2-内存地址和指针" aria-label="Permalink to "3.2 内存地址和指针""></a></h2><ul><li>其实,在之前《数组》中,我们就已经讲解了<code>内存地址</code>的概念了,即:操作系统为了更快的去管理内存中的数据,会将<code>内存条</code>按照<code>字节</code>划分为一个个的<code>单元格</code>,并为每个独立的小的<code>单元格</code>,分配<code>唯一的编号</code>,即:<code>内存地址</code>,如下所示:</li></ul><p><img src="`+d+`" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>有了内存地址,就能加快数据的存取速度,可以类比生活中的<code>字典</code>,即:</p><ul><li>① 内存地址是计算机中用于标识内存中某个特定位置的数值。</li><li>② 每个内存单元都有一个唯一的地址,这些地址可以用于访问和操作存储在内存中的数据。</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></div></div><ul><li>上述的这种方式也称为<code>直接访问</code>;当然,既然有<code>直接访问</code>的方式,必然有<code>间接访问</code>的方式,如:<code>指针</code>。</li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 我们通过<code>变量名(普通变量)</code>访问内存中变量存储的数据,之所以称为<code>直接访问</code>的方式,是因为对于我们写程序而言,我们无需关心如何根据内存地址去获取内存中对应的数据,也无需关系如何根据内存地址将数据存储到对应的内存空间,这些操作步骤都是<code>编译器</code>帮助我们在底层自动完成的(自动化)。</li><li>② 但是,我们也可以通过<code>内存地址</code>去操作内存中对应的数据(手动化),这种方式就称为<code>间接访问</code>的方式了,相对于<code>直接访问</code>方式来说,要<code>理解</code>的<code>概念</code>和<code>操作</code>的<code>步骤</code>和之前<code>直接访问</code>的方式相比,要复杂和麻烦很多,但是效率高。</li></ul></div><h2 id="_2-2-内存地址和指针" tabindex="-1">2.2 内存地址和指针 <a class="header-anchor" href="#_2-2-内存地址和指针" aria-label="Permalink to "2.2 内存地址和指针""></a></h2><ul><li>其实,在之前《数组》中,我们就已经讲解了<code>内存地址</code>的概念了,即:操作系统为了更快的去管理内存中的数据,会将<code>内存条</code>按照<code>字节</code>划分为一个个的<code>单元格</code>,并为每个独立的小的<code>单元格</code>,分配<code>唯一的编号</code>,即:<code>内存地址</code>,如下所示:</li></ul><p><img src="`+l+`" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>有了内存地址,就能加快数据的存取速度,可以类比生活中的<code>字典</code>,即:</p><ul><li>① 内存地址是计算机中用于标识内存中某个特定位置的数值。</li><li>② 每个内存单元都有一个唯一的地址,这些地址可以用于访问和操作存储在内存中的数据。</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>
|
||||||
<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 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>
|
||||||
@ -23,7 +23,7 @@ import{_ as s,c as i,o as a,a6 as n}from"./chunks/framework.hMCIpNYY.js";const t
|
|||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> num </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>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> num </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>
|
||||||
<span class="line"></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:#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></div></div><ul><li>虽然,之前我们在程序中都是通过<code>变量名(普通变量)</code>直接操作内存中的存储单元;但是,编译器底层还是会通过<code>内存地址</code>来找到所需要的存储单元,如下所示:</li></ul><p><img src="`+p+'" 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>,即:内存地址指向该存储单元。此时,就可以将<code>内存地址</code>形象化的描述为<code>指针👉</code>,那么:</p><ul><li>① <code>变量</code>:命名的内存空间,用于存放各种类型的数据。</li><li>② <code>变量名</code>:变量名是给内存空间取一个容易记忆的名字,方便我们编写程序。</li><li>③ <code>变量值</code>:变量所对应的内存中的存储单元中存放的数据值。</li><li>④ <code>变量的地址</code>:变量所对应的内存中的存储单元的内存地址(首地址),也可以称为<code>指针</code>。</li></ul><p>总结:内存地址 = 指针。</p></div><ul><li><code>普通变量</code>所对应的内存空间<code>存储</code>的是<code>普通的值</code>,如:整数、小数、字符等;<code>指针变量</code>所对应的内存空间<code>存储</code>的是另外一个变量的<code>地址(指针)</code>,如下所示:</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><p>有的时候,为了方便阐述,我们会将<code>指针变量</code>称为<code>指针</code>。但是,需要记住的是:</p><ul><li>指针 = 内存地址。</li><li>指针变量 = 变量中保存的是另一个变量的地址。</li></ul><p>下文中提及的<code>指针</code>都是<code>指针变量</code>,不再阐述!!!</p></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>如果你观察仔细的话,你可能会发现<code>指针变量</code>和<code>普通变量</code>在内存中占据的存储空间是不一样的,那么到底是什么原因造成这样的结果?</p></div><h2 id="_3-3-指针变量的定义" tabindex="-1">3.3 指针变量的定义 <a class="header-anchor" href="#_3-3-指针变量的定义" aria-label="Permalink to "3.3 指针变量的定义""></a></h2><h2 id="_3-4-指针的作用" tabindex="-1">3.4 指针的作用 <a class="header-anchor" href="#_3-4-指针的作用" aria-label="Permalink to "3.4 指针的作用""></a></h2><ul><li>查询数据。</li><li>存储数据。</li><li>参数传递。</li><li>内存管理。</li></ul><p>在 Java 中,引用数据类型的向上类型转换(upcasting)和向下类型转换(downcasting)是面向对象编程中常见的操作。这些转换是 Java 继承体系和多态性的重要部分。我们先分别介绍向上类型转换和向下类型转换,然后讨论它们在 C 语言中指针的类似操作。</p><h3 id="向上类型转换-upcasting" tabindex="-1">向上类型转换(Upcasting) <a class="header-anchor" href="#向上类型转换-upcasting" aria-label="Permalink to "向上类型转换(Upcasting)""></a></h3><p>向上类型转换是将一个子类对象引用转换为父类对象引用。由于子类继承了父类的所有方法和属性,子类对象也包含父类对象的所有部分,因此这种转换是安全且隐式的。</p><p><strong>例子:</strong></p><div class="language-java vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">java</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;">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Animal</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></div></div><ul><li>虽然,之前我们在程序中都是通过<code>变量名(普通变量)</code>直接操作内存中的存储单元;但是,编译器底层还是会通过<code>内存地址</code>来找到所需要的存储单元,如下所示:</li></ul><p><img src="`+p+'" 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>,即:内存地址指向该存储单元。此时,就可以将<code>内存地址</code>形象化的描述为<code>指针👉</code>,那么:</p><ul><li>① <code>变量</code>:命名的内存空间,用于存放各种类型的数据。</li><li>② <code>变量名</code>:变量名是给内存空间取一个容易记忆的名字,方便我们编写程序。</li><li>③ <code>变量值</code>:变量所对应的内存中的存储单元中存放的数据值。</li><li>④ <code>变量的地址</code>:变量所对应的内存中的存储单元的内存地址(首地址),也可以称为<code>指针</code>。</li></ul><p>总结:内存地址 = 指针。</p></div><ul><li><code>普通变量</code>所对应的内存空间<code>存储</code>的是<code>普通的值</code>,如:整数、小数、字符等;<code>指针变量</code>所对应的内存空间<code>存储</code>的是另外一个变量的<code>地址(指针)</code>,如下所示:</li></ul><p><img src="'+e+`" 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>指针 = 内存地址。</li><li>指针变量 = 变量中保存的是另一个变量的地址。</li></ul><p>下文中提及的<code>指针</code>都是<code>指针变量</code>,不再阐述!!!</p></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>如果你观察仔细的话,你可能会发现<code>指针变量</code>和<code>普通变量</code>在内存中占据的存储空间是不一样的,那么到底是什么原因造成这样的结果?</p></div><h2 id="_2-3-指针变量的定义" tabindex="-1">2.3 指针变量的定义 <a class="header-anchor" href="#_2-3-指针变量的定义" aria-label="Permalink to "2.3 指针变量的定义""></a></h2><h2 id="_2-4-指针的作用" tabindex="-1">2.4 指针的作用 <a class="header-anchor" href="#_2-4-指针的作用" aria-label="Permalink to "2.4 指针的作用""></a></h2><ul><li>查询数据。</li><li>存储数据。</li><li>参数传递。</li><li>内存管理。</li></ul><p>在 Java 中,引用数据类型的向上类型转换(upcasting)和向下类型转换(downcasting)是面向对象编程中常见的操作。这些转换是 Java 继承体系和多态性的重要部分。我们先分别介绍向上类型转换和向下类型转换,然后讨论它们在 C 语言中指针的类似操作。</p><h3 id="向上类型转换-upcasting" tabindex="-1">向上类型转换(Upcasting) <a class="header-anchor" href="#向上类型转换-upcasting" aria-label="Permalink to "向上类型转换(Upcasting)""></a></h3><p>向上类型转换是将一个子类对象引用转换为父类对象引用。由于子类继承了父类的所有方法和属性,子类对象也包含父类对象的所有部分,因此这种转换是安全且隐式的。</p><p><strong>例子:</strong></p><div class="language-java vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">java</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;">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Animal</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> makeSound</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> makeSound</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"Animal sound"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"Animal sound"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
||||||
@ -63,7 +63,7 @@ import{_ as s,c as i,o as a,a6 as n}from"./chunks/framework.hMCIpNYY.js";const t
|
|||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> intPtr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)voidPtr;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Downcasting, 显式转换</span></span>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> intPtr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)voidPtr;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Downcasting, 显式转换</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;">%d\\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:#24292E;--shiki-dark:#E1E4E8;">intPtr);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 输出:10</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;">%d\\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:#24292E;--shiki-dark:#E1E4E8;">intPtr);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 输出:10</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:#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><p>在这个例子中,<code>void*</code> 是通用指针类型,可以指向任何类型的数据。将 <code>int*</code> 转换为 <code>void*</code> 是隐式的,而将 <code>void*</code> 转换为 <code>int*</code> 是显式的。由于 C 没有类型检查,因此这种转换需要程序员自己确保安全。</p><p>总结:</p><ul><li>Java 中的向上类型转换和向下类型转换是为了支持多态性和继承,向上转换是安全的,向下转换需要显式进行并且进行运行时检查。</li><li>C 语言中的指针转换没有多态性和继承的概念,但有类似的指针类型转换操作,程序员需要确保转换的安全性。</li></ul><h1 id="第四章-指针的运算-⭐" tabindex="-1">第四章:指针的运算(⭐) <a class="header-anchor" href="#第四章-指针的运算-⭐" aria-label="Permalink to "第四章:指针的运算(⭐)""></a></h1><h2 id="_4-1-概述" tabindex="-1">4.1 概述 <a class="header-anchor" href="#_4-1-概述" aria-label="Permalink to "4.1 概述""></a></h2><h2 id="_4-2-总结" tabindex="-1">4.2 总结 <a class="header-anchor" href="#_4-2-总结" aria-label="Permalink to "4.2 总结""></a></h2><ul><li><p>在 C 语言中,<code>普通变量</code>是直接存储<code>数据</code>的<code>变量</code>。对于普通变量,支持的操作包括:</p><ul><li>① <strong>赋值操作</strong>:给变量赋值,如:<code>int a = 5</code>。</li><li>② <strong>算术运算</strong>:可以对数值类型的普通变量进行加、减、乘、除等运算,如:<code>a + b</code>、<code>a - b</code>、<code>a * b</code>、<code>a / b</code></li><li>③ <strong>关系运算</strong>:可以进行比较运算(大于、小于、等于等),如: <code>a > b</code>、<code>a == b</code>。</li><li>④ <strong>逻辑运算</strong>:对布尔类型的值进行与、或、非运算,如: <code>a && b</code>、<code>a || b</code>、<code>!a</code>。</li><li>⑤ <strong>位运算</strong>:对整数类型的值进行位操作(与、或、异或、取反、左移、右移等),如: <code>a & b</code>、<code>a | b</code>、<code>a ^ b</code>、<code>~a</code>、<code>a << 2</code>、<code>a >> 2</code>。</li><li>⑥ <strong>自增自减运算</strong>:<code>a++</code>、<code>--a</code> 等。</li></ul></li><li><p>在 C 语言中,<code>指针变量</code>存储的是<code>另一个变量</code>的<code>地址</code>。对于指针变量,支持的操作包括:</p><ul><li>① <strong>赋值操作</strong>:可以将一个地址赋值给指针,如: <code>int *p = &a;</code>。</li><li>② <strong>解引用操作</strong>:通过指针访问它指向的变量,如: <code>*p = 10;</code> 修改指向变量的值。</li><li>③ <strong>指针运算</strong>: <ul><li><strong>指针和整数值的加减运算</strong>:指针可以进行整数的加减运算,用于访问数组或结构体成员,如: <code>p + 1</code>。</li><li><strong>指针的自增和自减运算</strong>:指的是内存地址的向前或向后移动,如:<code>p++</code>、<code>p--</code>。</li><li><strong>指针间的相减运算</strong>:两个指向同一数组的指针相减可以得到它们之间的元素个数,如: <code>ptr1 - ptr2</code>。</li><li><strong>指针间的比较运算</strong>:可以比较两个指针的大小,比较的是各自内存地址的大小,如: <code>p1 == p2</code>、<code>p1 != p2</code>。</li></ul></li><li>④ <strong>数组访问</strong>:指针可以用于访问数组中的元素,通过 <code>*(p + i)</code> 访问第 <code>i</code> 个元素。</li><li>⑤ <strong>指向指针的指针</strong>:可以声明指向指针的指针,即多级指针,如:<code>int **pp = &p;</code>。</li></ul></li></ul><div class="warning custom-block github-alert"><p class="custom-block-title">WARNING</p><p></p><p>在使用指针时,务必小心避免野指针和内存泄漏等问题。</p></div><p>在C语言中,同类指针相减的结果是一个整数,它表示两个指针之间相隔多少个指向的对象单位,而不是它们在内存中的字节偏移量。这种对象单位是指针所指向的具体类型的大小。</p><p>举个例子来说,如果你有两个指向整数数组元素的指针 <code>p</code> 和 <code>q</code>,那么 <code>p - q</code> 的结果将是 <code>p</code> 指向的数组元素的索引与 <code>q</code> 指向的数组元素索引之间的差值。这个差值代表了在数组中相隔多少个整数元素,而不是它们在内存中的字节偏移量。</p><p>这种设计的优势在于,它使得指针运算更加直观和便于理解,特别是在处理数组和其他连续存储的数据结构时。因为指针运算结果的单位是根据指针所指向的具体类型来计算的,这样可以确保不同平台上的程序行为是一致的,不会受到底层硬件架构或者字节对齐规则的影响。</p><p>在C语言中,数组名和指针有很多相似之处,但数组名并不是指针变量。数组名实际是一个常量,它指向数组的第一个元素的地址。为了证明这一点,可以通过以下几个方面来说明:</p><ol><li><p><strong>数组名表示数组首地址</strong>: 数组名可以作为一个指针使用,数组名本身表示的是数组首地址。</p><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;">int</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> arr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><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;"> {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</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><p>在这个例子中,<code>void*</code> 是通用指针类型,可以指向任何类型的数据。将 <code>int*</code> 转换为 <code>void*</code> 是隐式的,而将 <code>void*</code> 转换为 <code>int*</code> 是显式的。由于 C 没有类型检查,因此这种转换需要程序员自己确保安全。</p><p>总结:</p><ul><li>Java 中的向上类型转换和向下类型转换是为了支持多态性和继承,向上转换是安全的,向下转换需要显式进行并且进行运行时检查。</li><li>C 语言中的指针转换没有多态性和继承的概念,但有类似的指针类型转换操作,程序员需要确保转换的安全性。</li></ul><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><h2 id="_3-2-总结" tabindex="-1">3.2 总结 <a class="header-anchor" href="#_3-2-总结" aria-label="Permalink to "3.2 总结""></a></h2><ul><li><p>在 C 语言中,<code>普通变量</code>是直接存储<code>数据</code>的<code>变量</code>。对于普通变量,支持的操作包括:</p><ul><li>① <strong>赋值操作</strong>:给变量赋值,如:<code>int a = 5</code>。</li><li>② <strong>算术运算</strong>:可以对数值类型的普通变量进行加、减、乘、除等运算,如:<code>a + b</code>、<code>a - b</code>、<code>a * b</code>、<code>a / b</code></li><li>③ <strong>关系运算</strong>:可以进行比较运算(大于、小于、等于等),如: <code>a > b</code>、<code>a == b</code>。</li><li>④ <strong>逻辑运算</strong>:对布尔类型的值进行与、或、非运算,如: <code>a && b</code>、<code>a || b</code>、<code>!a</code>。</li><li>⑤ <strong>位运算</strong>:对整数类型的值进行位操作(与、或、异或、取反、左移、右移等),如: <code>a & b</code>、<code>a | b</code>、<code>a ^ b</code>、<code>~a</code>、<code>a << 2</code>、<code>a >> 2</code>。</li><li>⑥ <strong>自增自减运算</strong>:<code>a++</code>、<code>--a</code> 等。</li></ul></li><li><p>在 C 语言中,<code>指针变量</code>存储的是<code>另一个变量</code>的<code>地址</code>。对于指针变量,支持的操作包括:</p><ul><li>① <strong>赋值操作</strong>:可以将一个地址赋值给指针,如: <code>int *p = &a;</code>。</li><li>② <strong>解引用操作</strong>:通过指针访问它指向的变量,如: <code>*p = 10;</code> 修改指向变量的值。</li><li>③ <strong>指针运算</strong>: <ul><li><strong>指针和整数值的加减运算</strong>:指针可以进行整数的加减运算,用于访问数组或结构体成员,如: <code>p + 1</code>。</li><li><strong>指针的自增和自减运算</strong>:指的是内存地址的向前或向后移动,如:<code>p++</code>、<code>p--</code>。</li><li><strong>指针间的相减运算</strong>:两个指向同一数组的指针相减可以得到它们之间的元素个数,如: <code>ptr1 - ptr2</code>。</li><li><strong>指针间的比较运算</strong>:可以比较两个指针的大小,比较的是各自内存地址的大小,如: <code>p1 == p2</code>、<code>p1 != p2</code>。</li></ul></li><li>④ <strong>数组访问</strong>:指针可以用于访问数组中的元素,通过 <code>*(p + i)</code> 访问第 <code>i</code> 个元素。</li><li>⑤ <strong>指向指针的指针</strong>:可以声明指向指针的指针,即多级指针,如:<code>int **pp = &p;</code>。</li></ul></li></ul><div class="warning custom-block github-alert"><p class="custom-block-title">WARNING</p><p></p><p>在使用指针时,务必小心避免野指针和内存泄漏等问题。</p></div><p>在C语言中,同类指针相减的结果是一个整数,它表示两个指针之间相隔多少个指向的对象单位,而不是它们在内存中的字节偏移量。这种对象单位是指针所指向的具体类型的大小。</p><p>举个例子来说,如果你有两个指向整数数组元素的指针 <code>p</code> 和 <code>q</code>,那么 <code>p - q</code> 的结果将是 <code>p</code> 指向的数组元素的索引与 <code>q</code> 指向的数组元素索引之间的差值。这个差值代表了在数组中相隔多少个整数元素,而不是它们在内存中的字节偏移量。</p><p>这种设计的优势在于,它使得指针运算更加直观和便于理解,特别是在处理数组和其他连续存储的数据结构时。因为指针运算结果的单位是根据指针所指向的具体类型来计算的,这样可以确保不同平台上的程序行为是一致的,不会受到底层硬件架构或者字节对齐规则的影响。</p><p>在C语言中,数组名和指针有很多相似之处,但数组名并不是指针变量。数组名实际是一个常量,它指向数组的第一个元素的地址。为了证明这一点,可以通过以下几个方面来说明:</p><ol><li><p><strong>数组名表示数组首地址</strong>: 数组名可以作为一个指针使用,数组名本身表示的是数组首地址。</p><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;">int</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> arr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><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;"> {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">};</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">ptr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> arr;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 这句话是合法的,ptr现在指向arr[0]</span></span>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">ptr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> arr;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 这句话是合法的,ptr现在指向arr[0]</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;">%p\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, arr);</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;">%p\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, arr);</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;">%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:#005CC5;--shiki-dark:#79B8FF;">0</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><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div></li><li><p><strong>数组名是常量指针</strong>: 数组名是一个常量指针,不能改变它指向的位置,而指针变量可以改变它指向的位置。</p><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;">int</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> arr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">];</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;">%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:#005CC5;--shiki-dark:#79B8FF;">0</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><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div></li><li><p><strong>数组名是常量指针</strong>: 数组名是一个常量指针,不能改变它指向的位置,而指针变量可以改变它指向的位置。</p><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;">int</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> arr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">];</span></span>
|
||||||
@ -78,4 +78,4 @@ import{_ as s,c as i,o as a,a6 as n}from"./chunks/framework.hMCIpNYY.js";const t
|
|||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">ptr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> arr;</span></span>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">ptr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> arr;</span></span>
|
||||||
<span class="line"></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;">"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 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>`,87),c=[r];function o(g,E,u,b,y,F){return a(),i("div",null,c)}const A=s(k,[["render",o]]);export{C as __pageData,A as default};
|
<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>`,63),k=[h];function d(r,c,o,E,g,u){return a(),i("div",null,k)}const F=s(t,[["render",d]]);export{b as __pageData,F as default};
|
1
assets/notes_01_c-basic_07_xdx_index.md.XgexmV-Z.lean.js
Normal file
1
assets/notes_01_c-basic_07_xdx_index.md.XgexmV-Z.lean.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
import{_ as s,c as i,o as a,a6 as n}from"./chunks/framework.hMCIpNYY.js";const l="/c/assets/4.DqDR6Thp.svg",p="/c/assets/5.BzSkS-4w.svg",e="/c/assets/6.BPY9ZGed.svg",b=JSON.parse('{"title":"第一章:颇具争议的指针","description":"","frontmatter":{},"headers":[],"relativePath":"notes/01_c-basic/07_xdx/index.md","filePath":"notes/01_c-basic/07_xdx/index.md","lastUpdated":1724809134000}'),t={name:"notes/01_c-basic/07_xdx/index.md"},h=n("",63),k=[h];function d(r,c,o,E,g,u){return a(),i("div",null,k)}const F=s(t,[["render",d]]);export{b as __pageData,F 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":"pzPQi0nJ","notes_01_c-basic_03_xdx_index.md":"DGGB8f4J","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":"pzPQi0nJ","notes_01_c-basic_03_xdx_index.md":"ClXbh9Z_","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":"XgexmV-Z","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">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.js">
|
||||||
<link rel="modulepreload" href="/c/assets/index.md.Dga0tMF5.lean.js">
|
<link rel="modulepreload" href="/c/assets/index.md.Dga0tMF5.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<link rel="shortcut icon" href="/c//logo.svg">
|
||||||
@ -23,7 +23,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<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>
|
<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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
File diff suppressed because one or more lines are too long
@ -8,9 +8,9 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.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="modulepreload" href="/c/assets/notes_01_c-basic_01_xdx_index.md.Fg4OXydV.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<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;">[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;">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>
|
<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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
@ -8,9 +8,9 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.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.pzPQi0nJ.lean.js">
|
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_02_xdx_index.md.pzPQi0nJ.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<link rel="shortcut icon" href="/c//logo.svg">
|
||||||
@ -292,7 +292,7 @@
|
|||||||
<span class="line"></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:#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-28T01:09:24.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>
|
<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-28T01:09:24.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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
@ -8,11 +8,11 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.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.DGGB8f4J.lean.js">
|
<link rel="modulepreload" href="/c/assets/notes_01_c-basic_03_xdx_index.md.ClXbh9Z_.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<link rel="shortcut icon" href="/c//logo.svg">
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
|
||||||
@ -22,7 +22,7 @@
|
|||||||
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<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_03_xdx_" data-v-39a288b8><div><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="/c/assets/1.L8V3GBrc.png" 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="/c/assets/2.nqdAY_P3.png" 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>
|
<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_03_xdx_" data-v-39a288b8><div><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="/c/assets/1.L8V3GBrc.png" 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="/c/assets/2.nqdAY_P3.png" 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="note custom-block github-alert"><p class="custom-block-title">NOTE</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>
|
||||||
<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 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>
|
||||||
@ -954,8 +954,8 @@
|
|||||||
<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 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>
|
||||||
<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:#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></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>其实,对于代码中需要被处理的窄字符串,不同的编译器差别还是挺大的:</p><ul><li>微软的 MSVC 编译器使用本地编码来保存这些字符。对于简体中文版的 Windows,使用的是 GBK 编码。</li><li>GCC、LLVM/Clang 编译器使用和源文件相同的编码来保存这些字符:如果源文件使用的是 UTF-8 编码,那么这些字符也使用 UTF-8 编码;如果源文件使用的是 GBK 编码,那么这些字符也使用 GBK 编码。</li></ul></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>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><code>编码字符集</code>是站在<code>存储</code>和<code>传输</code>的角度,而<code>运行字符集</code>是站在<code>处理</code>或者<code>操作</code>的角度,所以它们并不一定相同。</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-28T01:09:24.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>
|
<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></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>其实,对于代码中需要被处理的窄字符串,不同的编译器差别还是挺大的:</p><ul><li>微软的 MSVC 编译器使用本地编码来保存这些字符。对于简体中文版的 Windows,使用的是 GBK 编码。</li><li>GCC、LLVM/Clang 编译器使用和源文件相同的编码来保存这些字符:如果源文件使用的是 UTF-8 编码,那么这些字符也使用 UTF-8 编码;如果源文件使用的是 GBK 编码,那么这些字符也使用 GBK 编码。</li></ul></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>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><code>编码字符集</code>是站在<code>存储</code>和<code>传输</code>的角度,而<code>运行字符集</code>是站在<code>处理</code>或者<code>操作</code>的角度,所以它们并不一定相同。</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-28T01:38:54.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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
@ -8,9 +8,9 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.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="modulepreload" href="/c/assets/notes_01_c-basic_04_xdx_index.md.ySxH8sG-.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<link rel="shortcut icon" href="/c//logo.svg">
|
||||||
@ -23,7 +23,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<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>
|
<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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
@ -8,9 +8,9 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.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="modulepreload" href="/c/assets/notes_01_c-basic_05_xdx_index.md.DUbOwEts.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<link rel="shortcut icon" href="/c//logo.svg">
|
||||||
@ -774,7 +774,7 @@
|
|||||||
<span class="line"></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:#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>
|
<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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
@ -8,9 +8,9 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.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="modulepreload" href="/c/assets/notes_01_c-basic_06_xdx_index.md.CV_r2WNu.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<link rel="shortcut icon" href="/c//logo.svg">
|
||||||
@ -722,7 +722,7 @@
|
|||||||
<span class="line"></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:#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>
|
<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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
@ -8,11 +8,11 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.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="modulepreload" href="/c/assets/notes_01_c-basic_07_xdx_index.md.XgexmV-Z.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<link rel="shortcut icon" href="/c//logo.svg">
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
|
||||||
@ -22,7 +22,7 @@
|
|||||||
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<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_07_xdx_" data-v-39a288b8><div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① <code>指针</code>是 C 语言中<code>最重要</code>的概念之一,也是<code>最难以理解</code>的概念之一。</li><li>② <code>指针</code>是 C 语言的<code>精髓</code>,要想掌握 C 语言就需要深入地了解指针。</li></ul></div><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>目前而言,操作系统几乎都是通过 C 语言来编写和维护的;而 C 语言提供了指针的用法,其能直接操作内存地址,是个非常<code>强大</code>和<code>灵活</code>的工具;但是,需要开发者<code>小心谨慎的使用</code>,以确保程序的稳定性和安全性。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>之所以指针在 C 语言中颇具争议,是因为一方面其功能强大,直接操作内存地址;另一方面,又很危险,不正确的使用指针的方式,非常容易导致程序崩溃。</p></div><ul><li><p>如果没有能很好的使用指针,就会带来一系列的问题,如:</p><ul><li>① <code>空指针引用</code>(Null Pointer Dereference):当一个指针没有正确初始化或者被赋予了空(NULL)值时,如果程序尝试访问该指针所指向的内存,会导致运行时错误,甚至导致程序崩溃。</li><li>② <code>野指针</code>(Dangling Pointers):指针指向的内存地址曾经分配给某个变量或对象,但后来该变量或对象被释放或者移动,导致指针仍指向已经无效的内存位置。对野指针进行操作可能会导致未定义的行为或程序崩溃。</li><li>③ <code>指针算术错误</code>:在进行指针运算时,如果没有正确管理指针的偏移量或者超出了数组的边界,可能会导致指针指向错误的内存位置,从而影响程序的正确性和安全性。</li><li>④ <code>内存泄漏</code>:如果动态分配的内存通过指针分配,但在不再需要时没有正确释放,会导致内存泄漏,长时间运行的程序可能会耗尽系统资源。</li></ul></li><li><p>为了减少指针带来的风险,开发人员可以采取以下的措施:</p><ul><li>① <code>良好的编程实践</code>:确保指针的初始化和使用是安全的,避免空指针引用和野指针问题。</li><li>② <code>边界检查</code>:在进行指针运算时,始终确保不会超出数组或内存分配的边界。</li><li>③ <code>使用指针和引用的适当性</code>:在可能的情况下,可以考虑使用更安全的语言特性,如:引用(在 C++ 等编程语言中)或者更高级别的数据结构来代替裸指针,从而减少指针使用时的潜在风险。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 既然指针很危险,那么通过一系列的手段将指针包装或屏蔽,以达到程序安全的目的(这是现代化的高级编程语言解决的思路,如:Java、Go、Rust 等)。</li><li>② 之所以,指针还需要学习,是因为在嵌入式等领域,其机器的资源(CPU、内存等)非常有限;而现代化的高级编程语言虽然安全,但是需要的系统资源也庞大。</li><li>③ 我们知道,编译型的程序不管编译过程如何复杂,至少需要两步:编译和运行。通常,我们也将这两步称为编译期和运行期。C 语言中的指针之所以危险就在于程序要在运行的时候才会发现问题(后知后觉);而现代化的高级编程语言中的编译器在程序编译的时候就会发现问题(提前发现问题)。</li><li>④ C 语言的编译器之所以这么设计的原因,就在于当时的内存和 CPU 是非常有限(PDP-7 早期小型计算机,CPU:18 bit 的电子管逻辑,内存:4kb )和昂贵(72,000 $),如果加入安全限制的功能,会远远超过整个系统的资源。</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><ul><li><p><code>C++</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>智能指针</code>: C++ 引入了智能指针(如<code>std::shared_ptr</code>、<code>std::unique_ptr</code>),这些指针提供了自动资源管理和所有权的语义。<code>std::unique_ptr</code>确保只有一个指针可以访问给定的资源,从而避免了传统指针的悬空引用和内存泄漏问题。<code>std::shared_ptr</code>允许多个指针共享一个资源,并在所有引用释放后自动释放。</li><li>② <code>引用</code>: C++ 中的引用(如:<code>&</code>符号)提供了更安全的间接访问方法,与指针相比,引用不能重新绑定到不同的对象,从而减少了意外的指针错误。</li></ul></li><li><p><code>Go</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>内存管理和垃圾回收</code>: Go 语言通过自动垃圾回收器管理内存,减少了手动内存管理所带来的指针操作错误。Go 的垃圾回收器定期扫描并释放不再使用的内存,避免了内存泄漏和悬空指针问题。</li><li>② <code>指针的安全性</code>: Go 语言的指针是受限的,不支持指针运算,从而减少了指针操作可能带来的风险。</li></ul></li><li><p><code>Rust</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>所有权和借用</code>: Rust 引入了所有权和借用的概念,编译器在编译时静态分析所有权转移和引用的生命周期。这种机制避免了数据竞争和空指针解引用等运行时错误,使得在编译时就能够保证内存安全。</li><li>② <code>生命周期</code>: Rust 的生命周期系统确保引用的有效性和安全性,防止了悬空引用和指针乱用。</li></ul></li><li><p><code>Java</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>引用类型和自动内存管理</code>: Java 中所有的对象引用都是通过引用来访问的,而不是直接的指针。Java 的自动垃圾回收器负责管理内存,从而避免了手动内存管理可能导致的指针错误,如:内存泄漏和悬空指针。</li><li>② <code>强类型系统和异常处理</code>: Java 的强类型系统和异常处理机制减少了指针操作带来的风险,如:空指针解引用异常(NullPointerException)。编译器在编译时能够捕获许多潜在的类型错误,进一步增强了程序的安全性和可靠性。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>总而言之,各种编程语言通过引入不同的策略和机制,如:智能指针、垃圾回收器、所有权和借用,以及强类型系统,有效地减少了指针操作所带来的各种安全性和可靠性问题,提升了程序的稳定性和开发效率。</p></div><h1 id="第二章-回顾知识" tabindex="-1">第二章:回顾知识 <a class="header-anchor" href="#第二章-回顾知识" aria-label="Permalink to "第二章:回顾知识""></a></h1><h2 id="_2-1-变量" tabindex="-1">2.1 变量 <a class="header-anchor" href="#_2-1-变量" aria-label="Permalink to "2.1 变量""></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;"> 值 ;</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>变量名(标识符)需要符合命名规则和命名规范!!!</p><ul><li>强制规范: <ul><li>① 只能由<code>小写</code>或<code>大写英文字母</code>,<code>0-9</code> 或 <code>_</code> 组成。</li><li>② 不能以<code>数字</code>开头。</li><li>③ 不可以是<code>关键字</code>。</li><li>④ 标识符具有<code>长度</code>限制,不同编译器和平台会有所不同,一般限制在 63 个字符内。</li><li>⑤ 严格<code>区分大小写字母</code>,如:Hello、hello 是不同的标识符。</li></ul></li><li>建议规范: <ul><li>① 为了提高阅读性,使用有意义的单词,见名知意,如:sum,name,max,year 等。</li><li>② 使用下划线连接多个单词组成的标识符,如:max_classes_per_student 等。</li><li>③ 多个单词组成的标识符,除了使用下划线连接,也可以使用小驼峰命名法,除第一个单词外,后续单词的首字母大写,如: studentId、student_name 等。</li><li>④ 不要出现仅靠大小写区分不同的标识符,如:name、Name 容易混淆。</li><li>⑤ 系统内部使用了一些下划线开头的标识符,如:C99 标准添加的类型 <code>_Bool</code>,为防止冲突,建议开发者尽量避免使用下划线开头的标识符。</li></ul></li></ul></div><ul><li><code>变量名</code>的<code>作用</code>,如下所示: <ul><li>① 当我们<code>编写</code>代码的时候,使用<code>变量名</code>来<code>关联</code>某块内存的<code>地址</code>。</li><li>② 当 CPU <code>执行</code>的时候,会将变量名<code>替换</code>为具体的地址,再进行具体的操作。</li></ul></li></ul><h2 id="_2-2-普通变量和指针变量的区别" tabindex="-1">2.2 普通变量和指针变量的区别 <a class="header-anchor" href="#_2-2-普通变量和指针变量的区别" aria-label="Permalink to "2.2 普通变量和指针变量的区别""></a></h2><ul><li>根据<code>变量</code>中<code>存储</code>的<code>值</code>的<code>不同</code>,我们可以将<code>变量</code>分为两类: <ul><li><code>普通变量</code>:变量所对应的内存中存储的是<code>普通值</code>。</li><li><code>指针变量</code>:变量所对应的内存中存储的是<code>另一个变量的地址</code>。</li></ul></li><li>如下图所示:</li></ul><p><img src="/c/assets/1.L8V3GBrc.png" alt="img" loading="lazy"></p><ul><li>普通变量和指针变量的相同点,如下所示: <ul><li>① 普通变量有内存空间,指针变量也有内存空间。</li><li>② 普通变量有内存地址,指针变量也有内存地址。</li><li>③ 普通变量所对应的内存空间中有值,指针变量所对应的内存空间中也有值。</li></ul></li><li>普通变量和指针变量的不同点: <ul><li>① <code>普通变量</code>所对应的内存空间<code>存储</code>的是<code>普通的值</code>,如:整数、小数、字符等;<code>指针变量</code>所对应的内存空间<code>存储</code>的是另外一个变量的<code>地址</code>。</li><li>② <code>普通变量有普通变量的运算方式</code>,而<code>指针变量有指针变量的运算方式</code>(后续讲解)。</li></ul></li></ul><h2 id="_2-3-运算符" tabindex="-1">2.3 运算符 <a class="header-anchor" href="#_2-3-运算符" aria-label="Permalink to "2.3 运算符""></a></h2><h3 id="_2-3-1-概述" tabindex="-1">2.3.1 概述 <a class="header-anchor" href="#_2-3-1-概述" aria-label="Permalink to "2.3.1 概述""></a></h3><ul><li>运算符是一种特殊的符号,用于数据的运算、赋值和比较等。</li><li><code>表达式</code>指的是一组运算数、运算符的组合,表达式<code>一定具有值</code>,一个变量或一个常量可以是表达式,变量、常量和运算符也可以组成表达式,如:</li></ul><p><img src="/c/assets/2.CdvhiwcU.png" alt="img" loading="lazy"></p><ul><li><code>操作数</code>指的是<code>参与运算</code>的<code>值</code>或者<code>对象</code>,如:</li></ul><p><img src="/c/assets/3.D74t3-Xt.png" alt="" loading="lazy"></p><ul><li>根据<code>操作数</code>的<code>个数</code>,可以将运算符分为: <ul><li>一元运算符(一目运算符)。</li><li>二元运算符(二目运算符)。</li><li>三元运算符(三目运算符)。</li></ul></li><li>根据<code>功能</code>,可以将运算符分为: <ul><li>算术运算符。</li><li>关系运算符(比较运算符)。</li><li>逻辑运算符。</li><li>赋值运算符。</li><li>逻辑运算符。</li><li>位运算符。</li><li>三元运算符。</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>③ 运算符所组成的表达式。</li><li>④ 运算符有无副作用,即:运算后是否会修改操作数的值。</li></ul></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>普通变量支持上述的所有运算符;而指针变量并非支持上述的所有运算符,且支持运算符的含义和普通变量相差较大!!!</p></div><h3 id="_2-3-2-运算符的优先级" tabindex="-1">2.3.2 运算符的优先级 <a class="header-anchor" href="#_2-3-2-运算符的优先级" aria-label="Permalink to "2.3.2 运算符的优先级""></a></h3><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><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 取值运算符 <code>*</code> 和取地址运算符 <code>&</code> 的优先级相同,并且运算方向都是从右向左!!!</li><li>② 逗号运算符 <code>,</code> 的优先级最低,并且运算方向是从左向右!!!</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><ul><li>计算机中程序的运行都是在内存中进行的,变量也是内存中分配的空间,且不同类型的变量占据的内存空间大小不同,如:char 类型的变量是 1 个字节,short 类型的变量是 2 个字节,int 类型的变量是 4 个字节...</li><li>之前我们都是通过<code>变量名(普通变量)</code>访问内存中存储的数据,如下所示:</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>
|
<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_07_xdx_" data-v-39a288b8><div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① <code>指针</code>是 C 语言中<code>最重要</code>的概念之一,也是<code>最难以理解</code>的概念之一。</li><li>② <code>指针</code>是 C 语言的<code>精髓</code>,要想掌握 C 语言就需要深入地了解指针。</li></ul></div><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>目前而言,操作系统几乎都是通过 C 语言来编写和维护的;而 C 语言提供了指针的用法,其能直接操作内存地址,是个非常<code>强大</code>和<code>灵活</code>的工具;但是,需要开发者<code>小心谨慎的使用</code>,以确保程序的稳定性和安全性。</li></ul><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>之所以指针在 C 语言中颇具争议,是因为一方面其功能强大,直接操作内存地址;另一方面,又很危险,不正确的使用指针,非常容易导致程序崩溃。</p></div><ul><li><p>如果没有能很好的使用指针,就会带来一系列的问题,如:</p><ul><li>① <code>空指针引用</code>(Null Pointer Dereference):当一个指针没有正确初始化或者被赋予了空(NULL)值时,如果程序尝试访问该指针所指向的内存,会导致运行时错误,甚至导致程序崩溃。</li><li>② <code>野指针</code>(Dangling Pointers):指针指向的内存地址曾经分配给某个变量或对象,但后来该变量或对象被释放或者移动,导致指针仍指向已经无效的内存位置。对野指针进行操作可能会导致未定义的行为或程序崩溃。</li><li>③ <code>指针算术错误</code>:在进行指针运算时,如果没有正确管理指针的偏移量或者超出了数组的边界,可能会导致指针指向错误的内存位置,从而影响程序的正确性和安全性。</li><li>④ <code>内存泄漏</code>:如果动态分配的内存通过指针分配,但在不再需要时没有正确释放,会导致内存泄漏,长时间运行的程序可能会耗尽系统资源。</li></ul></li><li><p>为了减少指针带来的风险,开发人员可以采取以下的措施:</p><ul><li>① <code>良好的编程实践</code>:确保指针的初始化和使用是安全的,避免空指针引用和野指针问题。</li><li>② <code>边界检查</code>:在进行指针运算时,始终确保不会超出数组或内存分配的边界。</li><li>③ <code>使用指针和引用的适当性</code>:在可能的情况下,可以考虑使用更安全的语言特性,如:引用(在 C++ 等编程语言中)或者更高级别的数据结构来代替裸指针,从而减少指针使用时的潜在风险。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 既然指针很危险,那么通过一系列的手段将指针包装或屏蔽,以达到程序安全的目的(这是现代化的高级编程语言解决的思路,如:Java、Go、Rust 等)。</li><li>② 之所以,指针还需要学习,是因为在嵌入式等领域,其机器的资源(CPU、内存等)非常有限;而现代化的高级编程语言虽然安全,但是需要的系统资源也庞大。</li><li>③ 我们知道,编译型的程序不管编译过程如何复杂,至少需要两步:编译和运行。通常,我们也将这两步称为编译期和运行期。C 语言中的指针之所以危险就在于程序要在运行的时候才会发现问题(后知后觉);而现代化的高级编程语言中的编译器在程序编译的时候就会发现问题(提前发现问题)。</li><li>④ C 语言的编译器之所以这么设计的原因,就在于当时的内存和 CPU 是非常有限(PDP-7 早期小型计算机,CPU:18 bit 的电子管逻辑,内存:4kb )和昂贵(72,000 $),如果加入安全限制的功能,会远远超过整个系统的资源。</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><ul><li><p><code>C++</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>智能指针</code>: C++ 引入了智能指针(如<code>std::shared_ptr</code>、<code>std::unique_ptr</code>),这些指针提供了自动资源管理和所有权的语义。<code>std::unique_ptr</code>确保只有一个指针可以访问给定的资源,从而避免了传统指针的悬空引用和内存泄漏问题。<code>std::shared_ptr</code>允许多个指针共享一个资源,并在所有引用释放后自动释放。</li><li>② <code>引用</code>: C++ 中的引用(如:<code>&</code>符号)提供了更安全的间接访问方法,与指针相比,引用不能重新绑定到不同的对象,从而减少了意外的指针错误。</li></ul></li><li><p><code>Go</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>内存管理和垃圾回收</code>: Go 语言通过自动垃圾回收器管理内存,减少了手动内存管理所带来的指针操作错误。Go 的垃圾回收器定期扫描并释放不再使用的内存,避免了内存泄漏和悬空指针问题。</li><li>② <code>指针的安全性</code>: Go 语言的指针是受限的,不支持指针运算,从而减少了指针操作可能带来的风险。</li></ul></li><li><p><code>Rust</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>所有权和借用</code>: Rust 引入了所有权和借用的概念,编译器在编译时静态分析所有权转移和引用的生命周期。这种机制避免了数据竞争和空指针解引用等运行时错误,使得在编译时就能够保证内存安全。</li><li>② <code>生命周期</code>: Rust 的生命周期系统确保引用的有效性和安全性,防止了悬空引用和指针乱用。</li></ul></li><li><p><code>Java</code>采用了如下的策略和机制,来解决指针危险操作的:</p><ul><li>① <code>引用类型和自动内存管理</code>: Java 中所有的对象引用都是通过引用来访问的,而不是直接的指针。Java 的自动垃圾回收器负责管理内存,从而避免了手动内存管理可能导致的指针错误,如:内存泄漏和悬空指针。</li><li>② <code>强类型系统和异常处理</code>: Java 的强类型系统和异常处理机制减少了指针操作带来的风险,如:空指针解引用异常(NullPointerException)。编译器在编译时能够捕获许多潜在的类型错误,进一步增强了程序的安全性和可靠性。</li></ul></li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 总而言之,现代化的高级编程语言通过引入不同的策略和机制,如:智能指针、垃圾回收器、所有权和借用,以及强类型系统,有效地减少了指针操作所带来的各种安全性和可靠性问题,提升了程序的稳定性和开发效率。</li><li>② 换言之,现代化的高级编程语言就是在某些方面,如:性能(运行效率)、底层控制(隐藏了许多底层实现细节,以防止程序员意外地引入安全漏洞)和平台特定优化(屏蔽底层硬件细节,如:CPU 寄存器、具体的内存布局,以达到跨平台的目的,这也限制了程序员对底层优化的控制),做出一定的牺牲,以换取开发效率以及程序的稳定性。</li></ul></div><h1 id="第二章-指针的理解和定义-⭐" tabindex="-1">第二章:指针的理解和定义(⭐) <a class="header-anchor" href="#第二章-指针的理解和定义-⭐" aria-label="Permalink to "第二章:指针的理解和定义(⭐)""></a></h1><h2 id="_2-1-变量的访问方式" tabindex="-1">2.1 变量的访问方式 <a class="header-anchor" href="#_2-1-变量的访问方式" aria-label="Permalink to "2.1 变量的访问方式""></a></h2><ul><li>计算机中程序的运行都是在内存中进行的,变量也是内存中分配的空间,且不同类型的变量占据的内存空间大小不同,如:char 类型的变量是 1 个字节,short 类型的变量是 2 个字节,int 类型的变量是 4 个字节...</li><li>之前我们都是通过<code>变量名(普通变量)</code>访问内存中存储的数据,如下所示:</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>
|
||||||
<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 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>
|
||||||
@ -39,7 +39,7 @@
|
|||||||
<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;">"num = </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;">, num);</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;">"num = </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;">, num);</span></span>
|
||||||
<span class="line"></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:#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><ul><li>上述的这种方式也称为<code>直接访问</code>;当然,既然有<code>直接访问</code>的方式,必然有<code>间接访问</code>的方式,如:<code>指针</code>。</li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 我们通过<code>变量名(普通变量)</code>访问内存中变量存储的数据,之所以称为<code>直接访问</code>的方式,是因为对于我们写程序而言,我们无需关心如何根据内存地址去获取内存中对应的数据,也无需关系如何根据内存地址将数据存储到对应的内存空间,这些操作步骤都是<code>编译器</code>帮助我们在底层自动完成的(自动化)。</li><li>② 但是,我们也可以通过<code>内存地址</code>去操作内存中对应的数据(手动化),这种方式就称为<code>间接访问</code>的方式了,相对于<code>直接访问</code>方式来说,要<code>理解</code>的<code>概念</code>和<code>操作</code>的<code>步骤</code>和之前<code>直接访问</code>的方式相比,要复杂和麻烦很多,但是效率高。</li></ul></div><h2 id="_3-2-内存地址和指针" tabindex="-1">3.2 内存地址和指针 <a class="header-anchor" href="#_3-2-内存地址和指针" aria-label="Permalink to "3.2 内存地址和指针""></a></h2><ul><li>其实,在之前《数组》中,我们就已经讲解了<code>内存地址</code>的概念了,即:操作系统为了更快的去管理内存中的数据,会将<code>内存条</code>按照<code>字节</code>划分为一个个的<code>单元格</code>,并为每个独立的小的<code>单元格</code>,分配<code>唯一的编号</code>,即:<code>内存地址</code>,如下所示:</li></ul><p><img src="/c/assets/4.DqDR6Thp.svg" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>有了内存地址,就能加快数据的存取速度,可以类比生活中的<code>字典</code>,即:</p><ul><li>① 内存地址是计算机中用于标识内存中某个特定位置的数值。</li><li>② 每个内存单元都有一个唯一的地址,这些地址可以用于访问和操作存储在内存中的数据。</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></div></div><ul><li>上述的这种方式也称为<code>直接访问</code>;当然,既然有<code>直接访问</code>的方式,必然有<code>间接访问</code>的方式,如:<code>指针</code>。</li></ul><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><ul><li>① 我们通过<code>变量名(普通变量)</code>访问内存中变量存储的数据,之所以称为<code>直接访问</code>的方式,是因为对于我们写程序而言,我们无需关心如何根据内存地址去获取内存中对应的数据,也无需关系如何根据内存地址将数据存储到对应的内存空间,这些操作步骤都是<code>编译器</code>帮助我们在底层自动完成的(自动化)。</li><li>② 但是,我们也可以通过<code>内存地址</code>去操作内存中对应的数据(手动化),这种方式就称为<code>间接访问</code>的方式了,相对于<code>直接访问</code>方式来说,要<code>理解</code>的<code>概念</code>和<code>操作</code>的<code>步骤</code>和之前<code>直接访问</code>的方式相比,要复杂和麻烦很多,但是效率高。</li></ul></div><h2 id="_2-2-内存地址和指针" tabindex="-1">2.2 内存地址和指针 <a class="header-anchor" href="#_2-2-内存地址和指针" aria-label="Permalink to "2.2 内存地址和指针""></a></h2><ul><li>其实,在之前《数组》中,我们就已经讲解了<code>内存地址</code>的概念了,即:操作系统为了更快的去管理内存中的数据,会将<code>内存条</code>按照<code>字节</code>划分为一个个的<code>单元格</code>,并为每个独立的小的<code>单元格</code>,分配<code>唯一的编号</code>,即:<code>内存地址</code>,如下所示:</li></ul><p><img src="/c/assets/4.DqDR6Thp.svg" alt="" loading="lazy"></p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p></p><p>有了内存地址,就能加快数据的存取速度,可以类比生活中的<code>字典</code>,即:</p><ul><li>① 内存地址是计算机中用于标识内存中某个特定位置的数值。</li><li>② 每个内存单元都有一个唯一的地址,这些地址可以用于访问和操作存储在内存中的数据。</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>
|
||||||
<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 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>
|
||||||
@ -47,7 +47,7 @@
|
|||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> num </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>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> num </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>
|
||||||
<span class="line"></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:#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></div></div><ul><li>虽然,之前我们在程序中都是通过<code>变量名(普通变量)</code>直接操作内存中的存储单元;但是,编译器底层还是会通过<code>内存地址</code>来找到所需要的存储单元,如下所示:</li></ul><p><img src="/c/assets/5.BzSkS-4w.svg" 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>,即:内存地址指向该存储单元。此时,就可以将<code>内存地址</code>形象化的描述为<code>指针👉</code>,那么:</p><ul><li>① <code>变量</code>:命名的内存空间,用于存放各种类型的数据。</li><li>② <code>变量名</code>:变量名是给内存空间取一个容易记忆的名字,方便我们编写程序。</li><li>③ <code>变量值</code>:变量所对应的内存中的存储单元中存放的数据值。</li><li>④ <code>变量的地址</code>:变量所对应的内存中的存储单元的内存地址(首地址),也可以称为<code>指针</code>。</li></ul><p>总结:内存地址 = 指针。</p></div><ul><li><code>普通变量</code>所对应的内存空间<code>存储</code>的是<code>普通的值</code>,如:整数、小数、字符等;<code>指针变量</code>所对应的内存空间<code>存储</code>的是另外一个变量的<code>地址(指针)</code>,如下所示:</li></ul><p><img src="/c/assets/6.BPY9ZGed.svg" 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>指针 = 内存地址。</li><li>指针变量 = 变量中保存的是另一个变量的地址。</li></ul><p>下文中提及的<code>指针</code>都是<code>指针变量</code>,不再阐述!!!</p></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>如果你观察仔细的话,你可能会发现<code>指针变量</code>和<code>普通变量</code>在内存中占据的存储空间是不一样的,那么到底是什么原因造成这样的结果?</p></div><h2 id="_3-3-指针变量的定义" tabindex="-1">3.3 指针变量的定义 <a class="header-anchor" href="#_3-3-指针变量的定义" aria-label="Permalink to "3.3 指针变量的定义""></a></h2><h2 id="_3-4-指针的作用" tabindex="-1">3.4 指针的作用 <a class="header-anchor" href="#_3-4-指针的作用" aria-label="Permalink to "3.4 指针的作用""></a></h2><ul><li>查询数据。</li><li>存储数据。</li><li>参数传递。</li><li>内存管理。</li></ul><p>在 Java 中,引用数据类型的向上类型转换(upcasting)和向下类型转换(downcasting)是面向对象编程中常见的操作。这些转换是 Java 继承体系和多态性的重要部分。我们先分别介绍向上类型转换和向下类型转换,然后讨论它们在 C 语言中指针的类似操作。</p><h3 id="向上类型转换-upcasting" tabindex="-1">向上类型转换(Upcasting) <a class="header-anchor" href="#向上类型转换-upcasting" aria-label="Permalink to "向上类型转换(Upcasting)""></a></h3><p>向上类型转换是将一个子类对象引用转换为父类对象引用。由于子类继承了父类的所有方法和属性,子类对象也包含父类对象的所有部分,因此这种转换是安全且隐式的。</p><p><strong>例子:</strong></p><div class="language-java vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">java</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;">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Animal</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></div></div><ul><li>虽然,之前我们在程序中都是通过<code>变量名(普通变量)</code>直接操作内存中的存储单元;但是,编译器底层还是会通过<code>内存地址</code>来找到所需要的存储单元,如下所示:</li></ul><p><img src="/c/assets/5.BzSkS-4w.svg" 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>,即:内存地址指向该存储单元。此时,就可以将<code>内存地址</code>形象化的描述为<code>指针👉</code>,那么:</p><ul><li>① <code>变量</code>:命名的内存空间,用于存放各种类型的数据。</li><li>② <code>变量名</code>:变量名是给内存空间取一个容易记忆的名字,方便我们编写程序。</li><li>③ <code>变量值</code>:变量所对应的内存中的存储单元中存放的数据值。</li><li>④ <code>变量的地址</code>:变量所对应的内存中的存储单元的内存地址(首地址),也可以称为<code>指针</code>。</li></ul><p>总结:内存地址 = 指针。</p></div><ul><li><code>普通变量</code>所对应的内存空间<code>存储</code>的是<code>普通的值</code>,如:整数、小数、字符等;<code>指针变量</code>所对应的内存空间<code>存储</code>的是另外一个变量的<code>地址(指针)</code>,如下所示:</li></ul><p><img src="/c/assets/6.BPY9ZGed.svg" 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>指针 = 内存地址。</li><li>指针变量 = 变量中保存的是另一个变量的地址。</li></ul><p>下文中提及的<code>指针</code>都是<code>指针变量</code>,不再阐述!!!</p></div><div class="important custom-block github-alert"><p class="custom-block-title">IMPORTANT</p><p></p><p>如果你观察仔细的话,你可能会发现<code>指针变量</code>和<code>普通变量</code>在内存中占据的存储空间是不一样的,那么到底是什么原因造成这样的结果?</p></div><h2 id="_2-3-指针变量的定义" tabindex="-1">2.3 指针变量的定义 <a class="header-anchor" href="#_2-3-指针变量的定义" aria-label="Permalink to "2.3 指针变量的定义""></a></h2><h2 id="_2-4-指针的作用" tabindex="-1">2.4 指针的作用 <a class="header-anchor" href="#_2-4-指针的作用" aria-label="Permalink to "2.4 指针的作用""></a></h2><ul><li>查询数据。</li><li>存储数据。</li><li>参数传递。</li><li>内存管理。</li></ul><p>在 Java 中,引用数据类型的向上类型转换(upcasting)和向下类型转换(downcasting)是面向对象编程中常见的操作。这些转换是 Java 继承体系和多态性的重要部分。我们先分别介绍向上类型转换和向下类型转换,然后讨论它们在 C 语言中指针的类似操作。</p><h3 id="向上类型转换-upcasting" tabindex="-1">向上类型转换(Upcasting) <a class="header-anchor" href="#向上类型转换-upcasting" aria-label="Permalink to "向上类型转换(Upcasting)""></a></h3><p>向上类型转换是将一个子类对象引用转换为父类对象引用。由于子类继承了父类的所有方法和属性,子类对象也包含父类对象的所有部分,因此这种转换是安全且隐式的。</p><p><strong>例子:</strong></p><div class="language-java vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">java</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;">class</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Animal</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> makeSound</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> makeSound</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"Animal sound"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> System.out.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">println</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"Animal sound"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
||||||
@ -87,7 +87,7 @@
|
|||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> intPtr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)voidPtr;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Downcasting, 显式转换</span></span>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> intPtr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)voidPtr;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Downcasting, 显式转换</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;">%d\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:#24292E;--shiki-dark:#E1E4E8;">intPtr);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 输出:10</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;">%d\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:#24292E;--shiki-dark:#E1E4E8;">intPtr);</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 输出:10</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:#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><p>在这个例子中,<code>void*</code> 是通用指针类型,可以指向任何类型的数据。将 <code>int*</code> 转换为 <code>void*</code> 是隐式的,而将 <code>void*</code> 转换为 <code>int*</code> 是显式的。由于 C 没有类型检查,因此这种转换需要程序员自己确保安全。</p><p>总结:</p><ul><li>Java 中的向上类型转换和向下类型转换是为了支持多态性和继承,向上转换是安全的,向下转换需要显式进行并且进行运行时检查。</li><li>C 语言中的指针转换没有多态性和继承的概念,但有类似的指针类型转换操作,程序员需要确保转换的安全性。</li></ul><h1 id="第四章-指针的运算-⭐" tabindex="-1">第四章:指针的运算(⭐) <a class="header-anchor" href="#第四章-指针的运算-⭐" aria-label="Permalink to "第四章:指针的运算(⭐)""></a></h1><h2 id="_4-1-概述" tabindex="-1">4.1 概述 <a class="header-anchor" href="#_4-1-概述" aria-label="Permalink to "4.1 概述""></a></h2><h2 id="_4-2-总结" tabindex="-1">4.2 总结 <a class="header-anchor" href="#_4-2-总结" aria-label="Permalink to "4.2 总结""></a></h2><ul><li><p>在 C 语言中,<code>普通变量</code>是直接存储<code>数据</code>的<code>变量</code>。对于普通变量,支持的操作包括:</p><ul><li>① <strong>赋值操作</strong>:给变量赋值,如:<code>int a = 5</code>。</li><li>② <strong>算术运算</strong>:可以对数值类型的普通变量进行加、减、乘、除等运算,如:<code>a + b</code>、<code>a - b</code>、<code>a * b</code>、<code>a / b</code></li><li>③ <strong>关系运算</strong>:可以进行比较运算(大于、小于、等于等),如: <code>a > b</code>、<code>a == b</code>。</li><li>④ <strong>逻辑运算</strong>:对布尔类型的值进行与、或、非运算,如: <code>a && b</code>、<code>a || b</code>、<code>!a</code>。</li><li>⑤ <strong>位运算</strong>:对整数类型的值进行位操作(与、或、异或、取反、左移、右移等),如: <code>a & b</code>、<code>a | b</code>、<code>a ^ b</code>、<code>~a</code>、<code>a << 2</code>、<code>a >> 2</code>。</li><li>⑥ <strong>自增自减运算</strong>:<code>a++</code>、<code>--a</code> 等。</li></ul></li><li><p>在 C 语言中,<code>指针变量</code>存储的是<code>另一个变量</code>的<code>地址</code>。对于指针变量,支持的操作包括:</p><ul><li>① <strong>赋值操作</strong>:可以将一个地址赋值给指针,如: <code>int *p = &a;</code>。</li><li>② <strong>解引用操作</strong>:通过指针访问它指向的变量,如: <code>*p = 10;</code> 修改指向变量的值。</li><li>③ <strong>指针运算</strong>: <ul><li><strong>指针和整数值的加减运算</strong>:指针可以进行整数的加减运算,用于访问数组或结构体成员,如: <code>p + 1</code>。</li><li><strong>指针的自增和自减运算</strong>:指的是内存地址的向前或向后移动,如:<code>p++</code>、<code>p--</code>。</li><li><strong>指针间的相减运算</strong>:两个指向同一数组的指针相减可以得到它们之间的元素个数,如: <code>ptr1 - ptr2</code>。</li><li><strong>指针间的比较运算</strong>:可以比较两个指针的大小,比较的是各自内存地址的大小,如: <code>p1 == p2</code>、<code>p1 != p2</code>。</li></ul></li><li>④ <strong>数组访问</strong>:指针可以用于访问数组中的元素,通过 <code>*(p + i)</code> 访问第 <code>i</code> 个元素。</li><li>⑤ <strong>指向指针的指针</strong>:可以声明指向指针的指针,即多级指针,如:<code>int **pp = &p;</code>。</li></ul></li></ul><div class="warning custom-block github-alert"><p class="custom-block-title">WARNING</p><p></p><p>在使用指针时,务必小心避免野指针和内存泄漏等问题。</p></div><p>在C语言中,同类指针相减的结果是一个整数,它表示两个指针之间相隔多少个指向的对象单位,而不是它们在内存中的字节偏移量。这种对象单位是指针所指向的具体类型的大小。</p><p>举个例子来说,如果你有两个指向整数数组元素的指针 <code>p</code> 和 <code>q</code>,那么 <code>p - q</code> 的结果将是 <code>p</code> 指向的数组元素的索引与 <code>q</code> 指向的数组元素索引之间的差值。这个差值代表了在数组中相隔多少个整数元素,而不是它们在内存中的字节偏移量。</p><p>这种设计的优势在于,它使得指针运算更加直观和便于理解,特别是在处理数组和其他连续存储的数据结构时。因为指针运算结果的单位是根据指针所指向的具体类型来计算的,这样可以确保不同平台上的程序行为是一致的,不会受到底层硬件架构或者字节对齐规则的影响。</p><p>在C语言中,数组名和指针有很多相似之处,但数组名并不是指针变量。数组名实际是一个常量,它指向数组的第一个元素的地址。为了证明这一点,可以通过以下几个方面来说明:</p><ol><li><p><strong>数组名表示数组首地址</strong>: 数组名可以作为一个指针使用,数组名本身表示的是数组首地址。</p><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;">int</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> arr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><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;"> {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</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><p>在这个例子中,<code>void*</code> 是通用指针类型,可以指向任何类型的数据。将 <code>int*</code> 转换为 <code>void*</code> 是隐式的,而将 <code>void*</code> 转换为 <code>int*</code> 是显式的。由于 C 没有类型检查,因此这种转换需要程序员自己确保安全。</p><p>总结:</p><ul><li>Java 中的向上类型转换和向下类型转换是为了支持多态性和继承,向上转换是安全的,向下转换需要显式进行并且进行运行时检查。</li><li>C 语言中的指针转换没有多态性和继承的概念,但有类似的指针类型转换操作,程序员需要确保转换的安全性。</li></ul><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><h2 id="_3-2-总结" tabindex="-1">3.2 总结 <a class="header-anchor" href="#_3-2-总结" aria-label="Permalink to "3.2 总结""></a></h2><ul><li><p>在 C 语言中,<code>普通变量</code>是直接存储<code>数据</code>的<code>变量</code>。对于普通变量,支持的操作包括:</p><ul><li>① <strong>赋值操作</strong>:给变量赋值,如:<code>int a = 5</code>。</li><li>② <strong>算术运算</strong>:可以对数值类型的普通变量进行加、减、乘、除等运算,如:<code>a + b</code>、<code>a - b</code>、<code>a * b</code>、<code>a / b</code></li><li>③ <strong>关系运算</strong>:可以进行比较运算(大于、小于、等于等),如: <code>a > b</code>、<code>a == b</code>。</li><li>④ <strong>逻辑运算</strong>:对布尔类型的值进行与、或、非运算,如: <code>a && b</code>、<code>a || b</code>、<code>!a</code>。</li><li>⑤ <strong>位运算</strong>:对整数类型的值进行位操作(与、或、异或、取反、左移、右移等),如: <code>a & b</code>、<code>a | b</code>、<code>a ^ b</code>、<code>~a</code>、<code>a << 2</code>、<code>a >> 2</code>。</li><li>⑥ <strong>自增自减运算</strong>:<code>a++</code>、<code>--a</code> 等。</li></ul></li><li><p>在 C 语言中,<code>指针变量</code>存储的是<code>另一个变量</code>的<code>地址</code>。对于指针变量,支持的操作包括:</p><ul><li>① <strong>赋值操作</strong>:可以将一个地址赋值给指针,如: <code>int *p = &a;</code>。</li><li>② <strong>解引用操作</strong>:通过指针访问它指向的变量,如: <code>*p = 10;</code> 修改指向变量的值。</li><li>③ <strong>指针运算</strong>: <ul><li><strong>指针和整数值的加减运算</strong>:指针可以进行整数的加减运算,用于访问数组或结构体成员,如: <code>p + 1</code>。</li><li><strong>指针的自增和自减运算</strong>:指的是内存地址的向前或向后移动,如:<code>p++</code>、<code>p--</code>。</li><li><strong>指针间的相减运算</strong>:两个指向同一数组的指针相减可以得到它们之间的元素个数,如: <code>ptr1 - ptr2</code>。</li><li><strong>指针间的比较运算</strong>:可以比较两个指针的大小,比较的是各自内存地址的大小,如: <code>p1 == p2</code>、<code>p1 != p2</code>。</li></ul></li><li>④ <strong>数组访问</strong>:指针可以用于访问数组中的元素,通过 <code>*(p + i)</code> 访问第 <code>i</code> 个元素。</li><li>⑤ <strong>指向指针的指针</strong>:可以声明指向指针的指针,即多级指针,如:<code>int **pp = &p;</code>。</li></ul></li></ul><div class="warning custom-block github-alert"><p class="custom-block-title">WARNING</p><p></p><p>在使用指针时,务必小心避免野指针和内存泄漏等问题。</p></div><p>在C语言中,同类指针相减的结果是一个整数,它表示两个指针之间相隔多少个指向的对象单位,而不是它们在内存中的字节偏移量。这种对象单位是指针所指向的具体类型的大小。</p><p>举个例子来说,如果你有两个指向整数数组元素的指针 <code>p</code> 和 <code>q</code>,那么 <code>p - q</code> 的结果将是 <code>p</code> 指向的数组元素的索引与 <code>q</code> 指向的数组元素索引之间的差值。这个差值代表了在数组中相隔多少个整数元素,而不是它们在内存中的字节偏移量。</p><p>这种设计的优势在于,它使得指针运算更加直观和便于理解,特别是在处理数组和其他连续存储的数据结构时。因为指针运算结果的单位是根据指针所指向的具体类型来计算的,这样可以确保不同平台上的程序行为是一致的,不会受到底层硬件架构或者字节对齐规则的影响。</p><p>在C语言中,数组名和指针有很多相似之处,但数组名并不是指针变量。数组名实际是一个常量,它指向数组的第一个元素的地址。为了证明这一点,可以通过以下几个方面来说明:</p><ol><li><p><strong>数组名表示数组首地址</strong>: 数组名可以作为一个指针使用,数组名本身表示的是数组首地址。</p><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;">int</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> arr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><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;"> {</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">};</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">ptr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> arr;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 这句话是合法的,ptr现在指向arr[0]</span></span>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">ptr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> arr;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // 这句话是合法的,ptr现在指向arr[0]</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;">%p\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, arr);</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;">%p\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, arr);</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;">%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:#005CC5;--shiki-dark:#79B8FF;">0</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><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div></li><li><p><strong>数组名是常量指针</strong>: 数组名是一个常量指针,不能改变它指向的位置,而指针变量可以改变它指向的位置。</p><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;">int</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> arr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">];</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;">%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:#005CC5;--shiki-dark:#79B8FF;">0</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><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div></li><li><p><strong>数组名是常量指针</strong>: 数组名是一个常量指针,不能改变它指向的位置,而指针变量可以改变它指向的位置。</p><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;">int</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> arr</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">];</span></span>
|
||||||
@ -102,8 +102,8 @@
|
|||||||
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">ptr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> arr;</span></span>
|
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">ptr </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> arr;</span></span>
|
||||||
<span class="line"></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;">"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 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>
|
<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-28T01:38:54.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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
File diff suppressed because one or more lines are too long
@ -8,9 +8,9 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.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="modulepreload" href="/c/assets/notes_about_index.md.DLuQgC_8.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<link rel="shortcut icon" href="/c//logo.svg">
|
||||||
@ -23,7 +23,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<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>
|
<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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
@ -8,9 +8,9 @@
|
|||||||
<meta name="generator" content="VitePress v1.3.3">
|
<meta name="generator" content="VitePress v1.3.3">
|
||||||
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
<link rel="preload stylesheet" href="/c/assets/style.DNvke_Kw.css" as="style">
|
||||||
|
|
||||||
<script type="module" src="/c/assets/app.BBkWkKL3.js"></script>
|
<script type="module" src="/c/assets/app.KcQJfFrR.js"></script>
|
||||||
<link rel="preload" href="/c/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
<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.qEt4jrTD.js">
|
<link rel="modulepreload" href="/c/assets/chunks/theme.NkrV2-BM.js">
|
||||||
<link rel="modulepreload" href="/c/assets/chunks/framework.hMCIpNYY.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="modulepreload" href="/c/assets/notes_index.md.CeV-uJ5V.lean.js">
|
||||||
<link rel="shortcut icon" href="/c//logo.svg">
|
<link rel="shortcut icon" href="/c//logo.svg">
|
||||||
@ -23,7 +23,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<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>
|
<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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"DGGB8f4J\",\"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\":\"pzPQi0nJ\",\"notes_01_c-basic_03_xdx_index.md\":\"ClXbh9Z_\",\"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\":\"XgexmV-Z\",\"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>
|
</body>
|
||||||
</html>
|
</html>
|
Loading…
Reference in New Issue
Block a user