当前位置: 首页 > news >正文

营销型网站成功案例广州建设网站哪家好

营销型网站成功案例,广州建设网站哪家好,网页设计师求职,建设内部网站目的文章目录 前言#x1f31f;一、函数重载#x1f30f;1.1.函数重载概念#x1f30f;1.2.C支持函数重载的原理 -- 名字修饰 #x1f31f;二、引用#x1f30f;2.1.引用的概念#x1f30f;2.2.引用特性#x1f30f;2.3.常引用#x1f30f;2.4.使用场景#x1f30f;2.5.传… 文章目录 前言一、函数重载1.1.函数重载概念1.2.C支持函数重载的原理 -- 名字修饰 二、引用2.1.引用的概念2.2.引用特性2.3.常引用2.4.使用场景2.5.传值、传引用效率比较2.6.引用和指针的区别 三、末尾彩蛋(带你回溯时空联想之前) 前言 个人主页小沈YO. 小编介绍欢迎来到我的乱七八糟小星球 专栏C 心愿便利店 本章内容函数重载、引用 记得 评论 点赞 收藏 关注哦~ 提示以下是本篇文章正文内容下面案例可供参考 一、函数重载 #mermaid-svg-k0E4JWglJZ3LrASG {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-k0E4JWglJZ3LrASG .error-icon{fill:#552222;}#mermaid-svg-k0E4JWglJZ3LrASG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-k0E4JWglJZ3LrASG .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-k0E4JWglJZ3LrASG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-k0E4JWglJZ3LrASG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-k0E4JWglJZ3LrASG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-k0E4JWglJZ3LrASG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-k0E4JWglJZ3LrASG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-k0E4JWglJZ3LrASG .marker.cross{stroke:#333333;}#mermaid-svg-k0E4JWglJZ3LrASG svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-k0E4JWglJZ3LrASG .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-k0E4JWglJZ3LrASG .cluster-label text{fill:#333;}#mermaid-svg-k0E4JWglJZ3LrASG .cluster-label span{color:#333;}#mermaid-svg-k0E4JWglJZ3LrASG .label text,#mermaid-svg-k0E4JWglJZ3LrASG span{fill:#333;color:#333;}#mermaid-svg-k0E4JWglJZ3LrASG .node rect,#mermaid-svg-k0E4JWglJZ3LrASG .node circle,#mermaid-svg-k0E4JWglJZ3LrASG .node ellipse,#mermaid-svg-k0E4JWglJZ3LrASG .node polygon,#mermaid-svg-k0E4JWglJZ3LrASG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-k0E4JWglJZ3LrASG .node .label{text-align:center;}#mermaid-svg-k0E4JWglJZ3LrASG .node.clickable{cursor:pointer;}#mermaid-svg-k0E4JWglJZ3LrASG .arrowheadPath{fill:#333333;}#mermaid-svg-k0E4JWglJZ3LrASG .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-k0E4JWglJZ3LrASG .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-k0E4JWglJZ3LrASG .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-k0E4JWglJZ3LrASG .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-k0E4JWglJZ3LrASG .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-k0E4JWglJZ3LrASG .cluster text{fill:#333;}#mermaid-svg-k0E4JWglJZ3LrASG .cluster span{color:#333;}#mermaid-svg-k0E4JWglJZ3LrASG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-k0E4JWglJZ3LrASG :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 函数重载 自然语言中一个词可以有多重含义人们可以通过上下文来判断该词真实的含义即该词被重载了。 比如以前有一个笑话国有两个体育项目大家根本不用看也不用担心。一个是乒乓球一个是男足。前者是“谁也赢不了”后者是“谁也赢不了 1.1.函数重载概念 函数重载是函数的一种特殊情况C允许在同一作用域中声明几个功能类似的同名函数这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同常用来处理实现功能类似数据类型不同的问题 #mermaid-svg-7KEfUbDNKhsCmC6F {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7KEfUbDNKhsCmC6F .error-icon{fill:#552222;}#mermaid-svg-7KEfUbDNKhsCmC6F .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-7KEfUbDNKhsCmC6F .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-7KEfUbDNKhsCmC6F .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-7KEfUbDNKhsCmC6F .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-7KEfUbDNKhsCmC6F .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-7KEfUbDNKhsCmC6F .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-7KEfUbDNKhsCmC6F .marker{fill:#333333;stroke:#333333;}#mermaid-svg-7KEfUbDNKhsCmC6F .marker.cross{stroke:#333333;}#mermaid-svg-7KEfUbDNKhsCmC6F svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-7KEfUbDNKhsCmC6F .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-7KEfUbDNKhsCmC6F .cluster-label text{fill:#333;}#mermaid-svg-7KEfUbDNKhsCmC6F .cluster-label span{color:#333;}#mermaid-svg-7KEfUbDNKhsCmC6F .label text,#mermaid-svg-7KEfUbDNKhsCmC6F span{fill:#333;color:#333;}#mermaid-svg-7KEfUbDNKhsCmC6F .node rect,#mermaid-svg-7KEfUbDNKhsCmC6F .node circle,#mermaid-svg-7KEfUbDNKhsCmC6F .node ellipse,#mermaid-svg-7KEfUbDNKhsCmC6F .node polygon,#mermaid-svg-7KEfUbDNKhsCmC6F .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-7KEfUbDNKhsCmC6F .node .label{text-align:center;}#mermaid-svg-7KEfUbDNKhsCmC6F .node.clickable{cursor:pointer;}#mermaid-svg-7KEfUbDNKhsCmC6F .arrowheadPath{fill:#333333;}#mermaid-svg-7KEfUbDNKhsCmC6F .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-7KEfUbDNKhsCmC6F .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-7KEfUbDNKhsCmC6F .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-7KEfUbDNKhsCmC6F .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-7KEfUbDNKhsCmC6F .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-7KEfUbDNKhsCmC6F .cluster text{fill:#333;}#mermaid-svg-7KEfUbDNKhsCmC6F .cluster span{color:#333;}#mermaid-svg-7KEfUbDNKhsCmC6F div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-7KEfUbDNKhsCmC6F :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. 参数类型不同 #includeiostream using namespace std; int Add(int left, int right) {cout int Add(int left, int right) endl;return left right; } double Add(double left, double right) {cout double Add(double left, double right) endl;return left right; } int main() {cout Add(1, 2) endl;cout Add(1.1, 2.2) endl;return 0; }#mermaid-svg-wzJ6YvqpsUCWrtGm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-wzJ6YvqpsUCWrtGm .error-icon{fill:#552222;}#mermaid-svg-wzJ6YvqpsUCWrtGm .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-wzJ6YvqpsUCWrtGm .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-wzJ6YvqpsUCWrtGm .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-wzJ6YvqpsUCWrtGm .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-wzJ6YvqpsUCWrtGm .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-wzJ6YvqpsUCWrtGm .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-wzJ6YvqpsUCWrtGm .marker{fill:#333333;stroke:#333333;}#mermaid-svg-wzJ6YvqpsUCWrtGm .marker.cross{stroke:#333333;}#mermaid-svg-wzJ6YvqpsUCWrtGm svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-wzJ6YvqpsUCWrtGm .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-wzJ6YvqpsUCWrtGm .cluster-label text{fill:#333;}#mermaid-svg-wzJ6YvqpsUCWrtGm .cluster-label span{color:#333;}#mermaid-svg-wzJ6YvqpsUCWrtGm .label text,#mermaid-svg-wzJ6YvqpsUCWrtGm span{fill:#333;color:#333;}#mermaid-svg-wzJ6YvqpsUCWrtGm .node rect,#mermaid-svg-wzJ6YvqpsUCWrtGm .node circle,#mermaid-svg-wzJ6YvqpsUCWrtGm .node ellipse,#mermaid-svg-wzJ6YvqpsUCWrtGm .node polygon,#mermaid-svg-wzJ6YvqpsUCWrtGm .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-wzJ6YvqpsUCWrtGm .node .label{text-align:center;}#mermaid-svg-wzJ6YvqpsUCWrtGm .node.clickable{cursor:pointer;}#mermaid-svg-wzJ6YvqpsUCWrtGm .arrowheadPath{fill:#333333;}#mermaid-svg-wzJ6YvqpsUCWrtGm .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-wzJ6YvqpsUCWrtGm .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-wzJ6YvqpsUCWrtGm .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-wzJ6YvqpsUCWrtGm .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-wzJ6YvqpsUCWrtGm .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-wzJ6YvqpsUCWrtGm .cluster text{fill:#333;}#mermaid-svg-wzJ6YvqpsUCWrtGm .cluster span{color:#333;}#mermaid-svg-wzJ6YvqpsUCWrtGm div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-wzJ6YvqpsUCWrtGm :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 类型不同:一个整形一个浮点型但是函数名相同C会自动匹配类型C却不能 #mermaid-svg-aj99C1FD5aZdffkN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aj99C1FD5aZdffkN .error-icon{fill:#552222;}#mermaid-svg-aj99C1FD5aZdffkN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-aj99C1FD5aZdffkN .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-aj99C1FD5aZdffkN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-aj99C1FD5aZdffkN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-aj99C1FD5aZdffkN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-aj99C1FD5aZdffkN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-aj99C1FD5aZdffkN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-aj99C1FD5aZdffkN .marker.cross{stroke:#333333;}#mermaid-svg-aj99C1FD5aZdffkN svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-aj99C1FD5aZdffkN .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-aj99C1FD5aZdffkN .cluster-label text{fill:#333;}#mermaid-svg-aj99C1FD5aZdffkN .cluster-label span{color:#333;}#mermaid-svg-aj99C1FD5aZdffkN .label text,#mermaid-svg-aj99C1FD5aZdffkN span{fill:#333;color:#333;}#mermaid-svg-aj99C1FD5aZdffkN .node rect,#mermaid-svg-aj99C1FD5aZdffkN .node circle,#mermaid-svg-aj99C1FD5aZdffkN .node ellipse,#mermaid-svg-aj99C1FD5aZdffkN .node polygon,#mermaid-svg-aj99C1FD5aZdffkN .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-aj99C1FD5aZdffkN .node .label{text-align:center;}#mermaid-svg-aj99C1FD5aZdffkN .node.clickable{cursor:pointer;}#mermaid-svg-aj99C1FD5aZdffkN .arrowheadPath{fill:#333333;}#mermaid-svg-aj99C1FD5aZdffkN .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-aj99C1FD5aZdffkN .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-aj99C1FD5aZdffkN .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-aj99C1FD5aZdffkN .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-aj99C1FD5aZdffkN .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-aj99C1FD5aZdffkN .cluster text{fill:#333;}#mermaid-svg-aj99C1FD5aZdffkN .cluster span{color:#333;}#mermaid-svg-aj99C1FD5aZdffkN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-aj99C1FD5aZdffkN :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2. 参数个数不同 #includeiostream using namespace std; void f() {cout f() endl; } void f(int a) {cout f(int a) endl; } int main() {f();f(10);return 0; }#mermaid-svg-EjJ8j7ePd9BtM9it {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-EjJ8j7ePd9BtM9it .error-icon{fill:#552222;}#mermaid-svg-EjJ8j7ePd9BtM9it .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-EjJ8j7ePd9BtM9it .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-EjJ8j7ePd9BtM9it .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-EjJ8j7ePd9BtM9it .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-EjJ8j7ePd9BtM9it .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-EjJ8j7ePd9BtM9it .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-EjJ8j7ePd9BtM9it .marker{fill:#333333;stroke:#333333;}#mermaid-svg-EjJ8j7ePd9BtM9it .marker.cross{stroke:#333333;}#mermaid-svg-EjJ8j7ePd9BtM9it svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-EjJ8j7ePd9BtM9it .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-EjJ8j7ePd9BtM9it .cluster-label text{fill:#333;}#mermaid-svg-EjJ8j7ePd9BtM9it .cluster-label span{color:#333;}#mermaid-svg-EjJ8j7ePd9BtM9it .label text,#mermaid-svg-EjJ8j7ePd9BtM9it span{fill:#333;color:#333;}#mermaid-svg-EjJ8j7ePd9BtM9it .node rect,#mermaid-svg-EjJ8j7ePd9BtM9it .node circle,#mermaid-svg-EjJ8j7ePd9BtM9it .node ellipse,#mermaid-svg-EjJ8j7ePd9BtM9it .node polygon,#mermaid-svg-EjJ8j7ePd9BtM9it .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-EjJ8j7ePd9BtM9it .node .label{text-align:center;}#mermaid-svg-EjJ8j7ePd9BtM9it .node.clickable{cursor:pointer;}#mermaid-svg-EjJ8j7ePd9BtM9it .arrowheadPath{fill:#333333;}#mermaid-svg-EjJ8j7ePd9BtM9it .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-EjJ8j7ePd9BtM9it .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-EjJ8j7ePd9BtM9it .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-EjJ8j7ePd9BtM9it .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-EjJ8j7ePd9BtM9it .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-EjJ8j7ePd9BtM9it .cluster text{fill:#333;}#mermaid-svg-EjJ8j7ePd9BtM9it .cluster span{color:#333;}#mermaid-svg-EjJ8j7ePd9BtM9it div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-EjJ8j7ePd9BtM9it :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 3. 参数类型顺序不同 #includeiostream using namespace std; void f(int a, char b) {cout f(int a,char b) endl; } void f(char b, int a) {cout f(char b, int a) endl; } int main() {f(10, a);f(a, 10);return 0; }#mermaid-svg-3Ts1yGqxuzUWcHec {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3Ts1yGqxuzUWcHec .error-icon{fill:#552222;}#mermaid-svg-3Ts1yGqxuzUWcHec .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-3Ts1yGqxuzUWcHec .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-3Ts1yGqxuzUWcHec .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-3Ts1yGqxuzUWcHec .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-3Ts1yGqxuzUWcHec .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-3Ts1yGqxuzUWcHec .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-3Ts1yGqxuzUWcHec .marker{fill:#333333;stroke:#333333;}#mermaid-svg-3Ts1yGqxuzUWcHec .marker.cross{stroke:#333333;}#mermaid-svg-3Ts1yGqxuzUWcHec svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-3Ts1yGqxuzUWcHec .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-3Ts1yGqxuzUWcHec .cluster-label text{fill:#333;}#mermaid-svg-3Ts1yGqxuzUWcHec .cluster-label span{color:#333;}#mermaid-svg-3Ts1yGqxuzUWcHec .label text,#mermaid-svg-3Ts1yGqxuzUWcHec span{fill:#333;color:#333;}#mermaid-svg-3Ts1yGqxuzUWcHec .node rect,#mermaid-svg-3Ts1yGqxuzUWcHec .node circle,#mermaid-svg-3Ts1yGqxuzUWcHec .node ellipse,#mermaid-svg-3Ts1yGqxuzUWcHec .node polygon,#mermaid-svg-3Ts1yGqxuzUWcHec .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-3Ts1yGqxuzUWcHec .node .label{text-align:center;}#mermaid-svg-3Ts1yGqxuzUWcHec .node.clickable{cursor:pointer;}#mermaid-svg-3Ts1yGqxuzUWcHec .arrowheadPath{fill:#333333;}#mermaid-svg-3Ts1yGqxuzUWcHec .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-3Ts1yGqxuzUWcHec .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-3Ts1yGqxuzUWcHec .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-3Ts1yGqxuzUWcHec .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-3Ts1yGqxuzUWcHec .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-3Ts1yGqxuzUWcHec .cluster text{fill:#333;}#mermaid-svg-3Ts1yGqxuzUWcHec .cluster span{color:#333;}#mermaid-svg-3Ts1yGqxuzUWcHec div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-3Ts1yGqxuzUWcHec :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 注意:是参数类型的顺序不同不是形参的名字不同 #includeiostream using namespace std; void f(int a, char b) {cout f(int a,char b) endl; } void f(int b, char a) {cout f(int b, char a) endl; }#mermaid-svg-v3bmx2Pz4jBKYGlT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-v3bmx2Pz4jBKYGlT .error-icon{fill:#552222;}#mermaid-svg-v3bmx2Pz4jBKYGlT .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-v3bmx2Pz4jBKYGlT .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-v3bmx2Pz4jBKYGlT .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-v3bmx2Pz4jBKYGlT .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-v3bmx2Pz4jBKYGlT .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-v3bmx2Pz4jBKYGlT .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-v3bmx2Pz4jBKYGlT .marker{fill:#333333;stroke:#333333;}#mermaid-svg-v3bmx2Pz4jBKYGlT .marker.cross{stroke:#333333;}#mermaid-svg-v3bmx2Pz4jBKYGlT svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-v3bmx2Pz4jBKYGlT .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-v3bmx2Pz4jBKYGlT .cluster-label text{fill:#333;}#mermaid-svg-v3bmx2Pz4jBKYGlT .cluster-label span{color:#333;}#mermaid-svg-v3bmx2Pz4jBKYGlT .label text,#mermaid-svg-v3bmx2Pz4jBKYGlT span{fill:#333;color:#333;}#mermaid-svg-v3bmx2Pz4jBKYGlT .node rect,#mermaid-svg-v3bmx2Pz4jBKYGlT .node circle,#mermaid-svg-v3bmx2Pz4jBKYGlT .node ellipse,#mermaid-svg-v3bmx2Pz4jBKYGlT .node polygon,#mermaid-svg-v3bmx2Pz4jBKYGlT .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-v3bmx2Pz4jBKYGlT .node .label{text-align:center;}#mermaid-svg-v3bmx2Pz4jBKYGlT .node.clickable{cursor:pointer;}#mermaid-svg-v3bmx2Pz4jBKYGlT .arrowheadPath{fill:#333333;}#mermaid-svg-v3bmx2Pz4jBKYGlT .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-v3bmx2Pz4jBKYGlT .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-v3bmx2Pz4jBKYGlT .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-v3bmx2Pz4jBKYGlT .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-v3bmx2Pz4jBKYGlT .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-v3bmx2Pz4jBKYGlT .cluster text{fill:#333;}#mermaid-svg-v3bmx2Pz4jBKYGlT .cluster span{color:#333;}#mermaid-svg-v3bmx2Pz4jBKYGlT div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-v3bmx2Pz4jBKYGlT :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 注意:返回值不同不能构成重载 #includeiostream using namespace std; void f(char a, int b) {cout f(int a,char b) endl; } int f(char a, int b) {cout f(int a, char b) endl; } int main() {return 0; }#mermaid-svg-QE2qE6uJ0ZwAhfIP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .error-icon{fill:#552222;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .marker{fill:#333333;stroke:#333333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .marker.cross{stroke:#333333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .cluster-label text{fill:#333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .cluster-label span{color:#333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .label text,#mermaid-svg-QE2qE6uJ0ZwAhfIP span{fill:#333;color:#333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .node rect,#mermaid-svg-QE2qE6uJ0ZwAhfIP .node circle,#mermaid-svg-QE2qE6uJ0ZwAhfIP .node ellipse,#mermaid-svg-QE2qE6uJ0ZwAhfIP .node polygon,#mermaid-svg-QE2qE6uJ0ZwAhfIP .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .node .label{text-align:center;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .node.clickable{cursor:pointer;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .arrowheadPath{fill:#333333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .cluster text{fill:#333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP .cluster span{color:#333;}#mermaid-svg-QE2qE6uJ0ZwAhfIP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-QE2qE6uJ0ZwAhfIP :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 4. 重载与缺省参数的碰撞擦出的火花 #includeiostream using namespace std; //构成函数重载 void func(int a) {cout void func(int a) endl; } void func(int a, int b 1) {cout void func(int a,int b) endl; } int main() {func(1,2);//调用存在歧义func(10);return 0; }重载和缺省参数碰撞是可以构成重载的(参数个数不同)但是会出现调用歧义(当调用func(1,2)是不会出现问题的但是调用func(10),编译器就不知道调用哪个因为两个都符合调用) 1.2.C支持函数重载的原理 – 名字修饰 #mermaid-svg-GlrNgZCPXj5rzJ12 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GlrNgZCPXj5rzJ12 .error-icon{fill:#552222;}#mermaid-svg-GlrNgZCPXj5rzJ12 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GlrNgZCPXj5rzJ12 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-GlrNgZCPXj5rzJ12 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GlrNgZCPXj5rzJ12 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GlrNgZCPXj5rzJ12 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GlrNgZCPXj5rzJ12 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GlrNgZCPXj5rzJ12 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GlrNgZCPXj5rzJ12 .marker.cross{stroke:#333333;}#mermaid-svg-GlrNgZCPXj5rzJ12 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GlrNgZCPXj5rzJ12 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-GlrNgZCPXj5rzJ12 .cluster-label text{fill:#333;}#mermaid-svg-GlrNgZCPXj5rzJ12 .cluster-label span{color:#333;}#mermaid-svg-GlrNgZCPXj5rzJ12 .label text,#mermaid-svg-GlrNgZCPXj5rzJ12 span{fill:#333;color:#333;}#mermaid-svg-GlrNgZCPXj5rzJ12 .node rect,#mermaid-svg-GlrNgZCPXj5rzJ12 .node circle,#mermaid-svg-GlrNgZCPXj5rzJ12 .node ellipse,#mermaid-svg-GlrNgZCPXj5rzJ12 .node polygon,#mermaid-svg-GlrNgZCPXj5rzJ12 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-GlrNgZCPXj5rzJ12 .node .label{text-align:center;}#mermaid-svg-GlrNgZCPXj5rzJ12 .node.clickable{cursor:pointer;}#mermaid-svg-GlrNgZCPXj5rzJ12 .arrowheadPath{fill:#333333;}#mermaid-svg-GlrNgZCPXj5rzJ12 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-GlrNgZCPXj5rzJ12 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-GlrNgZCPXj5rzJ12 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-GlrNgZCPXj5rzJ12 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-GlrNgZCPXj5rzJ12 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-GlrNgZCPXj5rzJ12 .cluster text{fill:#333;}#mermaid-svg-GlrNgZCPXj5rzJ12 .cluster span{color:#333;}#mermaid-svg-GlrNgZCPXj5rzJ12 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-GlrNgZCPXj5rzJ12 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 为什么C支持函数重载,而C语言不支持函数重载呢 在C/C中一个程序要运行起来需要经历以下几个阶段预处理、编译、汇编、链接最终形成一个可执行程序 #mermaid-svg-STdac6MWEIi7oX5P {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-STdac6MWEIi7oX5P .error-icon{fill:#552222;}#mermaid-svg-STdac6MWEIi7oX5P .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-STdac6MWEIi7oX5P .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-STdac6MWEIi7oX5P .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-STdac6MWEIi7oX5P .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-STdac6MWEIi7oX5P .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-STdac6MWEIi7oX5P .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-STdac6MWEIi7oX5P .marker{fill:#333333;stroke:#333333;}#mermaid-svg-STdac6MWEIi7oX5P .marker.cross{stroke:#333333;}#mermaid-svg-STdac6MWEIi7oX5P svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-STdac6MWEIi7oX5P .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-STdac6MWEIi7oX5P .cluster-label text{fill:#333;}#mermaid-svg-STdac6MWEIi7oX5P .cluster-label span{color:#333;}#mermaid-svg-STdac6MWEIi7oX5P .label text,#mermaid-svg-STdac6MWEIi7oX5P span{fill:#333;color:#333;}#mermaid-svg-STdac6MWEIi7oX5P .node rect,#mermaid-svg-STdac6MWEIi7oX5P .node circle,#mermaid-svg-STdac6MWEIi7oX5P .node ellipse,#mermaid-svg-STdac6MWEIi7oX5P .node polygon,#mermaid-svg-STdac6MWEIi7oX5P .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-STdac6MWEIi7oX5P .node .label{text-align:center;}#mermaid-svg-STdac6MWEIi7oX5P .node.clickable{cursor:pointer;}#mermaid-svg-STdac6MWEIi7oX5P .arrowheadPath{fill:#333333;}#mermaid-svg-STdac6MWEIi7oX5P .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-STdac6MWEIi7oX5P .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-STdac6MWEIi7oX5P .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-STdac6MWEIi7oX5P .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-STdac6MWEIi7oX5P .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-STdac6MWEIi7oX5P .cluster text{fill:#333;}#mermaid-svg-STdac6MWEIi7oX5P .cluster span{color:#333;}#mermaid-svg-STdac6MWEIi7oX5P div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-STdac6MWEIi7oX5P :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. 对于C语言示例: 对于C语言来说当经过预处理、编译、汇编、链接 //#includeiostream //using namespace std; void func(int i, double d) {//cout void func(int i, double d) endl; } void func(double d, int i) {//cout double func(double d, int i) endl; } int main() {func(1, 5.2);func(5.2, 1);return 0; }#mermaid-svg-7Rufsn1QHnXlNA8J {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7Rufsn1QHnXlNA8J .error-icon{fill:#552222;}#mermaid-svg-7Rufsn1QHnXlNA8J .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-7Rufsn1QHnXlNA8J .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-7Rufsn1QHnXlNA8J .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-7Rufsn1QHnXlNA8J .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-7Rufsn1QHnXlNA8J .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-7Rufsn1QHnXlNA8J .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-7Rufsn1QHnXlNA8J .marker{fill:#333333;stroke:#333333;}#mermaid-svg-7Rufsn1QHnXlNA8J .marker.cross{stroke:#333333;}#mermaid-svg-7Rufsn1QHnXlNA8J svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-7Rufsn1QHnXlNA8J .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-7Rufsn1QHnXlNA8J .cluster-label text{fill:#333;}#mermaid-svg-7Rufsn1QHnXlNA8J .cluster-label span{color:#333;}#mermaid-svg-7Rufsn1QHnXlNA8J .label text,#mermaid-svg-7Rufsn1QHnXlNA8J span{fill:#333;color:#333;}#mermaid-svg-7Rufsn1QHnXlNA8J .node rect,#mermaid-svg-7Rufsn1QHnXlNA8J .node circle,#mermaid-svg-7Rufsn1QHnXlNA8J .node ellipse,#mermaid-svg-7Rufsn1QHnXlNA8J .node polygon,#mermaid-svg-7Rufsn1QHnXlNA8J .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-7Rufsn1QHnXlNA8J .node .label{text-align:center;}#mermaid-svg-7Rufsn1QHnXlNA8J .node.clickable{cursor:pointer;}#mermaid-svg-7Rufsn1QHnXlNA8J .arrowheadPath{fill:#333333;}#mermaid-svg-7Rufsn1QHnXlNA8J .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-7Rufsn1QHnXlNA8J .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-7Rufsn1QHnXlNA8J .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-7Rufsn1QHnXlNA8J .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-7Rufsn1QHnXlNA8J .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-7Rufsn1QHnXlNA8J .cluster text{fill:#333;}#mermaid-svg-7Rufsn1QHnXlNA8J .cluster span{color:#333;}#mermaid-svg-7Rufsn1QHnXlNA8J div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-7Rufsn1QHnXlNA8J :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 效果演示: #mermaid-svg-Ncf3sETpiSGcgB5x {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Ncf3sETpiSGcgB5x .error-icon{fill:#552222;}#mermaid-svg-Ncf3sETpiSGcgB5x .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Ncf3sETpiSGcgB5x .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Ncf3sETpiSGcgB5x .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Ncf3sETpiSGcgB5x .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Ncf3sETpiSGcgB5x .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Ncf3sETpiSGcgB5x .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Ncf3sETpiSGcgB5x .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Ncf3sETpiSGcgB5x .marker.cross{stroke:#333333;}#mermaid-svg-Ncf3sETpiSGcgB5x svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Ncf3sETpiSGcgB5x .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Ncf3sETpiSGcgB5x .cluster-label text{fill:#333;}#mermaid-svg-Ncf3sETpiSGcgB5x .cluster-label span{color:#333;}#mermaid-svg-Ncf3sETpiSGcgB5x .label text,#mermaid-svg-Ncf3sETpiSGcgB5x span{fill:#333;color:#333;}#mermaid-svg-Ncf3sETpiSGcgB5x .node rect,#mermaid-svg-Ncf3sETpiSGcgB5x .node circle,#mermaid-svg-Ncf3sETpiSGcgB5x .node ellipse,#mermaid-svg-Ncf3sETpiSGcgB5x .node polygon,#mermaid-svg-Ncf3sETpiSGcgB5x .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Ncf3sETpiSGcgB5x .node .label{text-align:center;}#mermaid-svg-Ncf3sETpiSGcgB5x .node.clickable{cursor:pointer;}#mermaid-svg-Ncf3sETpiSGcgB5x .arrowheadPath{fill:#333333;}#mermaid-svg-Ncf3sETpiSGcgB5x .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Ncf3sETpiSGcgB5x .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Ncf3sETpiSGcgB5x .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-Ncf3sETpiSGcgB5x .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-Ncf3sETpiSGcgB5x .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Ncf3sETpiSGcgB5x .cluster text{fill:#333;}#mermaid-svg-Ncf3sETpiSGcgB5x .cluster span{color:#333;}#mermaid-svg-Ncf3sETpiSGcgB5x div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Ncf3sETpiSGcgB5x :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2. 对于C示例: #includeiostream using namespace std; void func(int i, double d) {//cout void func(int i, double d) endl; } void func(double d, int i) {//cout double func(double d, int i) endl; } int main() {func(1, 5.2);func(5.2, 1);return 0; }#mermaid-svg-CZw0KMNtBltSsDZs {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-CZw0KMNtBltSsDZs .error-icon{fill:#552222;}#mermaid-svg-CZw0KMNtBltSsDZs .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-CZw0KMNtBltSsDZs .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-CZw0KMNtBltSsDZs .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-CZw0KMNtBltSsDZs .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-CZw0KMNtBltSsDZs .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-CZw0KMNtBltSsDZs .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-CZw0KMNtBltSsDZs .marker{fill:#333333;stroke:#333333;}#mermaid-svg-CZw0KMNtBltSsDZs .marker.cross{stroke:#333333;}#mermaid-svg-CZw0KMNtBltSsDZs svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-CZw0KMNtBltSsDZs .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-CZw0KMNtBltSsDZs .cluster-label text{fill:#333;}#mermaid-svg-CZw0KMNtBltSsDZs .cluster-label span{color:#333;}#mermaid-svg-CZw0KMNtBltSsDZs .label text,#mermaid-svg-CZw0KMNtBltSsDZs span{fill:#333;color:#333;}#mermaid-svg-CZw0KMNtBltSsDZs .node rect,#mermaid-svg-CZw0KMNtBltSsDZs .node circle,#mermaid-svg-CZw0KMNtBltSsDZs .node ellipse,#mermaid-svg-CZw0KMNtBltSsDZs .node polygon,#mermaid-svg-CZw0KMNtBltSsDZs .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-CZw0KMNtBltSsDZs .node .label{text-align:center;}#mermaid-svg-CZw0KMNtBltSsDZs .node.clickable{cursor:pointer;}#mermaid-svg-CZw0KMNtBltSsDZs .arrowheadPath{fill:#333333;}#mermaid-svg-CZw0KMNtBltSsDZs .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-CZw0KMNtBltSsDZs .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-CZw0KMNtBltSsDZs .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-CZw0KMNtBltSsDZs .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-CZw0KMNtBltSsDZs .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-CZw0KMNtBltSsDZs .cluster text{fill:#333;}#mermaid-svg-CZw0KMNtBltSsDZs .cluster span{color:#333;}#mermaid-svg-CZw0KMNtBltSsDZs div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-CZw0KMNtBltSsDZs :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 效果演示: #mermaid-svg-K0rgEMAh0RviDG7f {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-K0rgEMAh0RviDG7f .error-icon{fill:#552222;}#mermaid-svg-K0rgEMAh0RviDG7f .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-K0rgEMAh0RviDG7f .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-K0rgEMAh0RviDG7f .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-K0rgEMAh0RviDG7f .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-K0rgEMAh0RviDG7f .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-K0rgEMAh0RviDG7f .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-K0rgEMAh0RviDG7f .marker{fill:#333333;stroke:#333333;}#mermaid-svg-K0rgEMAh0RviDG7f .marker.cross{stroke:#333333;}#mermaid-svg-K0rgEMAh0RviDG7f svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-K0rgEMAh0RviDG7f .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-K0rgEMAh0RviDG7f .cluster-label text{fill:#333;}#mermaid-svg-K0rgEMAh0RviDG7f .cluster-label span{color:#333;}#mermaid-svg-K0rgEMAh0RviDG7f .label text,#mermaid-svg-K0rgEMAh0RviDG7f span{fill:#333;color:#333;}#mermaid-svg-K0rgEMAh0RviDG7f .node rect,#mermaid-svg-K0rgEMAh0RviDG7f .node circle,#mermaid-svg-K0rgEMAh0RviDG7f .node ellipse,#mermaid-svg-K0rgEMAh0RviDG7f .node polygon,#mermaid-svg-K0rgEMAh0RviDG7f .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-K0rgEMAh0RviDG7f .node .label{text-align:center;}#mermaid-svg-K0rgEMAh0RviDG7f .node.clickable{cursor:pointer;}#mermaid-svg-K0rgEMAh0RviDG7f .arrowheadPath{fill:#333333;}#mermaid-svg-K0rgEMAh0RviDG7f .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-K0rgEMAh0RviDG7f .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-K0rgEMAh0RviDG7f .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-K0rgEMAh0RviDG7f .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-K0rgEMAh0RviDG7f .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-K0rgEMAh0RviDG7f .cluster text{fill:#333;}#mermaid-svg-K0rgEMAh0RviDG7f .cluster span{color:#333;}#mermaid-svg-K0rgEMAh0RviDG7f div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-K0rgEMAh0RviDG7f :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 名字修饰: 先提前说明一下这部分不懂得可以看C语言—程序环境和预处理(底层原理万字详解) 实际项目通常是由多个头文件和多个源文件构成而通过C语言阶段学习的编译链接我们可以知道【当前a.cpp中调用了b.cpp中定义的Add函数时】编译后链接前a.o的目标文件中没有Add的函数地址因为Add是在b.cpp中定义的所以Add的地址在b.o中。那么怎么办呢 所以链接阶段就是专门处理这种问题链接器看到a.o调用Add但是没有Add的地址就会到b.o的符号表中找Add的地址然后链接到一起。那么链接时面对Add函数链接接器会使用哪个名字去找呢这里每个编译器都有自己的函数名修饰规则。使用g修饰后的名字通过下面我们可以看出gcc的函数修饰后名字不变。而g的函数修饰后变成【_Z函数长度函数名类型首字母】 #mermaid-svg-BfgNKvYSzYRq6eJA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-BfgNKvYSzYRq6eJA .error-icon{fill:#552222;}#mermaid-svg-BfgNKvYSzYRq6eJA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BfgNKvYSzYRq6eJA .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-BfgNKvYSzYRq6eJA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BfgNKvYSzYRq6eJA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BfgNKvYSzYRq6eJA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BfgNKvYSzYRq6eJA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BfgNKvYSzYRq6eJA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BfgNKvYSzYRq6eJA .marker.cross{stroke:#333333;}#mermaid-svg-BfgNKvYSzYRq6eJA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BfgNKvYSzYRq6eJA .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-BfgNKvYSzYRq6eJA .cluster-label text{fill:#333;}#mermaid-svg-BfgNKvYSzYRq6eJA .cluster-label span{color:#333;}#mermaid-svg-BfgNKvYSzYRq6eJA .label text,#mermaid-svg-BfgNKvYSzYRq6eJA span{fill:#333;color:#333;}#mermaid-svg-BfgNKvYSzYRq6eJA .node rect,#mermaid-svg-BfgNKvYSzYRq6eJA .node circle,#mermaid-svg-BfgNKvYSzYRq6eJA .node ellipse,#mermaid-svg-BfgNKvYSzYRq6eJA .node polygon,#mermaid-svg-BfgNKvYSzYRq6eJA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BfgNKvYSzYRq6eJA .node .label{text-align:center;}#mermaid-svg-BfgNKvYSzYRq6eJA .node.clickable{cursor:pointer;}#mermaid-svg-BfgNKvYSzYRq6eJA .arrowheadPath{fill:#333333;}#mermaid-svg-BfgNKvYSzYRq6eJA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BfgNKvYSzYRq6eJA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BfgNKvYSzYRq6eJA .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-BfgNKvYSzYRq6eJA .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-BfgNKvYSzYRq6eJA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BfgNKvYSzYRq6eJA .cluster text{fill:#333;}#mermaid-svg-BfgNKvYSzYRq6eJA .cluster span{color:#333;}#mermaid-svg-BfgNKvYSzYRq6eJA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BfgNKvYSzYRq6eJA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. 采用C语言编译器编译后结果: 结论在linux下采用gcc编译完成后函数名字的修饰没有发生改变 #mermaid-svg-l3Kyv2PperOELobh {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-l3Kyv2PperOELobh .error-icon{fill:#552222;}#mermaid-svg-l3Kyv2PperOELobh .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-l3Kyv2PperOELobh .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-l3Kyv2PperOELobh .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-l3Kyv2PperOELobh .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-l3Kyv2PperOELobh .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-l3Kyv2PperOELobh .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-l3Kyv2PperOELobh .marker{fill:#333333;stroke:#333333;}#mermaid-svg-l3Kyv2PperOELobh .marker.cross{stroke:#333333;}#mermaid-svg-l3Kyv2PperOELobh svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-l3Kyv2PperOELobh .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-l3Kyv2PperOELobh .cluster-label text{fill:#333;}#mermaid-svg-l3Kyv2PperOELobh .cluster-label span{color:#333;}#mermaid-svg-l3Kyv2PperOELobh .label text,#mermaid-svg-l3Kyv2PperOELobh span{fill:#333;color:#333;}#mermaid-svg-l3Kyv2PperOELobh .node rect,#mermaid-svg-l3Kyv2PperOELobh .node circle,#mermaid-svg-l3Kyv2PperOELobh .node ellipse,#mermaid-svg-l3Kyv2PperOELobh .node polygon,#mermaid-svg-l3Kyv2PperOELobh .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-l3Kyv2PperOELobh .node .label{text-align:center;}#mermaid-svg-l3Kyv2PperOELobh .node.clickable{cursor:pointer;}#mermaid-svg-l3Kyv2PperOELobh .arrowheadPath{fill:#333333;}#mermaid-svg-l3Kyv2PperOELobh .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-l3Kyv2PperOELobh .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-l3Kyv2PperOELobh .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-l3Kyv2PperOELobh .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-l3Kyv2PperOELobh .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-l3Kyv2PperOELobh .cluster text{fill:#333;}#mermaid-svg-l3Kyv2PperOELobh .cluster span{color:#333;}#mermaid-svg-l3Kyv2PperOELobh div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-l3Kyv2PperOELobh :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2. 采用C编译器编译后结果: 结论在linux下采用g编译完成后函数名字的修饰发生改变编译器将函数参 数类型信息添加到修改后的名字中 #mermaid-svg-vhl25lVGrKmrldeq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-vhl25lVGrKmrldeq .error-icon{fill:#552222;}#mermaid-svg-vhl25lVGrKmrldeq .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-vhl25lVGrKmrldeq .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-vhl25lVGrKmrldeq .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-vhl25lVGrKmrldeq .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-vhl25lVGrKmrldeq .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-vhl25lVGrKmrldeq .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-vhl25lVGrKmrldeq .marker{fill:#333333;stroke:#333333;}#mermaid-svg-vhl25lVGrKmrldeq .marker.cross{stroke:#333333;}#mermaid-svg-vhl25lVGrKmrldeq svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-vhl25lVGrKmrldeq .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-vhl25lVGrKmrldeq .cluster-label text{fill:#333;}#mermaid-svg-vhl25lVGrKmrldeq .cluster-label span{color:#333;}#mermaid-svg-vhl25lVGrKmrldeq .label text,#mermaid-svg-vhl25lVGrKmrldeq span{fill:#333;color:#333;}#mermaid-svg-vhl25lVGrKmrldeq .node rect,#mermaid-svg-vhl25lVGrKmrldeq .node circle,#mermaid-svg-vhl25lVGrKmrldeq .node ellipse,#mermaid-svg-vhl25lVGrKmrldeq .node polygon,#mermaid-svg-vhl25lVGrKmrldeq .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-vhl25lVGrKmrldeq .node .label{text-align:center;}#mermaid-svg-vhl25lVGrKmrldeq .node.clickable{cursor:pointer;}#mermaid-svg-vhl25lVGrKmrldeq .arrowheadPath{fill:#333333;}#mermaid-svg-vhl25lVGrKmrldeq .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-vhl25lVGrKmrldeq .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-vhl25lVGrKmrldeq .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-vhl25lVGrKmrldeq .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-vhl25lVGrKmrldeq .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-vhl25lVGrKmrldeq .cluster text{fill:#333;}#mermaid-svg-vhl25lVGrKmrldeq .cluster span{color:#333;}#mermaid-svg-vhl25lVGrKmrldeq div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-vhl25lVGrKmrldeq :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 函数名修饰规则带入返回值,返回值不能构成重载 #includeiostream using namespace std; int func(double d, int i) {cout void func(int i, double d) endl;return 0; } void func(double d, int i) {cout double func(double d, int i) endl; } int main() {func(1.1, 1);func(1, 1.1);return 0; }#mermaid-svg-iJ57fS0JbuUbAjbT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-iJ57fS0JbuUbAjbT .error-icon{fill:#552222;}#mermaid-svg-iJ57fS0JbuUbAjbT .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-iJ57fS0JbuUbAjbT .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-iJ57fS0JbuUbAjbT .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-iJ57fS0JbuUbAjbT .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-iJ57fS0JbuUbAjbT .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-iJ57fS0JbuUbAjbT .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-iJ57fS0JbuUbAjbT .marker{fill:#333333;stroke:#333333;}#mermaid-svg-iJ57fS0JbuUbAjbT .marker.cross{stroke:#333333;}#mermaid-svg-iJ57fS0JbuUbAjbT svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-iJ57fS0JbuUbAjbT .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-iJ57fS0JbuUbAjbT .cluster-label text{fill:#333;}#mermaid-svg-iJ57fS0JbuUbAjbT .cluster-label span{color:#333;}#mermaid-svg-iJ57fS0JbuUbAjbT .label text,#mermaid-svg-iJ57fS0JbuUbAjbT span{fill:#333;color:#333;}#mermaid-svg-iJ57fS0JbuUbAjbT .node rect,#mermaid-svg-iJ57fS0JbuUbAjbT .node circle,#mermaid-svg-iJ57fS0JbuUbAjbT .node ellipse,#mermaid-svg-iJ57fS0JbuUbAjbT .node polygon,#mermaid-svg-iJ57fS0JbuUbAjbT .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-iJ57fS0JbuUbAjbT .node .label{text-align:center;}#mermaid-svg-iJ57fS0JbuUbAjbT .node.clickable{cursor:pointer;}#mermaid-svg-iJ57fS0JbuUbAjbT .arrowheadPath{fill:#333333;}#mermaid-svg-iJ57fS0JbuUbAjbT .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-iJ57fS0JbuUbAjbT .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-iJ57fS0JbuUbAjbT .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-iJ57fS0JbuUbAjbT .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-iJ57fS0JbuUbAjbT .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-iJ57fS0JbuUbAjbT .cluster text{fill:#333;}#mermaid-svg-iJ57fS0JbuUbAjbT .cluster span{color:#333;}#mermaid-svg-iJ57fS0JbuUbAjbT div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-iJ57fS0JbuUbAjbT :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 3. 总结: 通过这里就理解了C语言没办法支持重载因为同名函数没办法区分。而C是通过函数修饰规则来区分只要参数不同修饰出来的名字就不一样就支持了重载。如果两个函数函数名和参数是一样的返回值不同是不构成重载的因为调用时编译器没办法区分。 二、引用 2.1.引用的概念 引用不是新定义一个变量而是给已存在变量取了一个别名编译器不会为引用变量开辟内存空间它和它引用的变量共用同一块内存空间。 比如孙悟空唐僧称为悟空江湖上人称齐天大圣。 类型 引用变量名(对象名) 引用实体 #mermaid-svg-bjoTjBQPFQrxamJa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bjoTjBQPFQrxamJa .error-icon{fill:#552222;}#mermaid-svg-bjoTjBQPFQrxamJa .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bjoTjBQPFQrxamJa .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-bjoTjBQPFQrxamJa .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bjoTjBQPFQrxamJa .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bjoTjBQPFQrxamJa .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bjoTjBQPFQrxamJa .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bjoTjBQPFQrxamJa .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bjoTjBQPFQrxamJa .marker.cross{stroke:#333333;}#mermaid-svg-bjoTjBQPFQrxamJa svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bjoTjBQPFQrxamJa .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-bjoTjBQPFQrxamJa .cluster-label text{fill:#333;}#mermaid-svg-bjoTjBQPFQrxamJa .cluster-label span{color:#333;}#mermaid-svg-bjoTjBQPFQrxamJa .label text,#mermaid-svg-bjoTjBQPFQrxamJa span{fill:#333;color:#333;}#mermaid-svg-bjoTjBQPFQrxamJa .node rect,#mermaid-svg-bjoTjBQPFQrxamJa .node circle,#mermaid-svg-bjoTjBQPFQrxamJa .node ellipse,#mermaid-svg-bjoTjBQPFQrxamJa .node polygon,#mermaid-svg-bjoTjBQPFQrxamJa .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-bjoTjBQPFQrxamJa .node .label{text-align:center;}#mermaid-svg-bjoTjBQPFQrxamJa .node.clickable{cursor:pointer;}#mermaid-svg-bjoTjBQPFQrxamJa .arrowheadPath{fill:#333333;}#mermaid-svg-bjoTjBQPFQrxamJa .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-bjoTjBQPFQrxamJa .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-bjoTjBQPFQrxamJa .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-bjoTjBQPFQrxamJa .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-bjoTjBQPFQrxamJa .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-bjoTjBQPFQrxamJa .cluster text{fill:#333;}#mermaid-svg-bjoTjBQPFQrxamJa .cluster span{color:#333;}#mermaid-svg-bjoTjBQPFQrxamJa div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-bjoTjBQPFQrxamJa :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 示例: void TestRef() { int a 10; int ra a;//定义引用类型 printf(%p\n, a); printf(%p\n, ra); }#mermaid-svg-CgJVr4B14NW2NPtQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-CgJVr4B14NW2NPtQ .error-icon{fill:#552222;}#mermaid-svg-CgJVr4B14NW2NPtQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-CgJVr4B14NW2NPtQ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-CgJVr4B14NW2NPtQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-CgJVr4B14NW2NPtQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-CgJVr4B14NW2NPtQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-CgJVr4B14NW2NPtQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-CgJVr4B14NW2NPtQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-CgJVr4B14NW2NPtQ .marker.cross{stroke:#333333;}#mermaid-svg-CgJVr4B14NW2NPtQ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-CgJVr4B14NW2NPtQ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-CgJVr4B14NW2NPtQ .cluster-label text{fill:#333;}#mermaid-svg-CgJVr4B14NW2NPtQ .cluster-label span{color:#333;}#mermaid-svg-CgJVr4B14NW2NPtQ .label text,#mermaid-svg-CgJVr4B14NW2NPtQ span{fill:#333;color:#333;}#mermaid-svg-CgJVr4B14NW2NPtQ .node rect,#mermaid-svg-CgJVr4B14NW2NPtQ .node circle,#mermaid-svg-CgJVr4B14NW2NPtQ .node ellipse,#mermaid-svg-CgJVr4B14NW2NPtQ .node polygon,#mermaid-svg-CgJVr4B14NW2NPtQ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-CgJVr4B14NW2NPtQ .node .label{text-align:center;}#mermaid-svg-CgJVr4B14NW2NPtQ .node.clickable{cursor:pointer;}#mermaid-svg-CgJVr4B14NW2NPtQ .arrowheadPath{fill:#333333;}#mermaid-svg-CgJVr4B14NW2NPtQ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-CgJVr4B14NW2NPtQ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-CgJVr4B14NW2NPtQ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-CgJVr4B14NW2NPtQ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-CgJVr4B14NW2NPtQ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-CgJVr4B14NW2NPtQ .cluster text{fill:#333;}#mermaid-svg-CgJVr4B14NW2NPtQ .cluster span{color:#333;}#mermaid-svg-CgJVr4B14NW2NPtQ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-CgJVr4B14NW2NPtQ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 效果演示: #mermaid-svg-x6MX0wS77jIy8Zlr {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-x6MX0wS77jIy8Zlr .error-icon{fill:#552222;}#mermaid-svg-x6MX0wS77jIy8Zlr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-x6MX0wS77jIy8Zlr .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-x6MX0wS77jIy8Zlr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-x6MX0wS77jIy8Zlr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-x6MX0wS77jIy8Zlr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-x6MX0wS77jIy8Zlr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-x6MX0wS77jIy8Zlr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-x6MX0wS77jIy8Zlr .marker.cross{stroke:#333333;}#mermaid-svg-x6MX0wS77jIy8Zlr svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-x6MX0wS77jIy8Zlr .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-x6MX0wS77jIy8Zlr .cluster-label text{fill:#333;}#mermaid-svg-x6MX0wS77jIy8Zlr .cluster-label span{color:#333;}#mermaid-svg-x6MX0wS77jIy8Zlr .label text,#mermaid-svg-x6MX0wS77jIy8Zlr span{fill:#333;color:#333;}#mermaid-svg-x6MX0wS77jIy8Zlr .node rect,#mermaid-svg-x6MX0wS77jIy8Zlr .node circle,#mermaid-svg-x6MX0wS77jIy8Zlr .node ellipse,#mermaid-svg-x6MX0wS77jIy8Zlr .node polygon,#mermaid-svg-x6MX0wS77jIy8Zlr .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-x6MX0wS77jIy8Zlr .node .label{text-align:center;}#mermaid-svg-x6MX0wS77jIy8Zlr .node.clickable{cursor:pointer;}#mermaid-svg-x6MX0wS77jIy8Zlr .arrowheadPath{fill:#333333;}#mermaid-svg-x6MX0wS77jIy8Zlr .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-x6MX0wS77jIy8Zlr .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-x6MX0wS77jIy8Zlr .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-x6MX0wS77jIy8Zlr .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-x6MX0wS77jIy8Zlr .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-x6MX0wS77jIy8Zlr .cluster text{fill:#333;}#mermaid-svg-x6MX0wS77jIy8Zlr .cluster span{color:#333;}#mermaid-svg-x6MX0wS77jIy8Zlr div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-x6MX0wS77jIy8Zlr :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 注意:引用类型必须和引用实体是同种类型的 2.2.引用特性 引用在定义时必须初始化一个变量可以有多个引用引用一旦引用一个实体再不能引用其他实体 void TestRef() { 1. 引用在定义时必须初始化 int a 10; // int ra; // 该条语句编译时会出错2. 一个变量可以有多个引用 int ra a;//给a取别名 int rra a;//给a取别名 int raa ra;//给b(a的别名)取别名也是可以的3. 引用一旦引用一个实体再不能引用其他实体C的引用不可以改变指向但是Java可以 int x 1; b x; //这里是赋值而不是把b变成x的别名 }2.3.常引用 void TestConstRef() { 权限的放大:就相当于带上金箍圈的孙悟空const摘下了金箍圈变得肆无忌惮 const int a 10; //int ra a; // 该语句编译时会出错a为常量 --- 权限的放大在这里去掉了const也就是去掉了金箍圈 const int ra a;--- 权限的平移带上金箍圈无论是孙悟空还是齐天大圣它都有限制不会肆无忌惮权限的缩小本来是大闹天宫的齐天大圣被戴上了金箍圈(const)就有了限制 int x10; const int yx;double d 12.34; //int rd d; // 该语句编译时会出错类型不同 const int rd d; 在C/C中有规定发生类型转换会产生一个临时变量例如上面这一小段代码const int rd d转换时会有一个int类型的临时变量临时变量再给rd但是临时变量具有常性int rd d这里就是权限的放大不能通过编译所以这种是对的const int rd d// int b 10; // 该语句编译时会出错b为常量 - 不能变成常量对象的别名 const int b 10;--- 权限平移 }#mermaid-svg-H6Bar2Ssfh2Kj51C {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-H6Bar2Ssfh2Kj51C .error-icon{fill:#552222;}#mermaid-svg-H6Bar2Ssfh2Kj51C .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-H6Bar2Ssfh2Kj51C .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-H6Bar2Ssfh2Kj51C .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-H6Bar2Ssfh2Kj51C .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-H6Bar2Ssfh2Kj51C .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-H6Bar2Ssfh2Kj51C .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-H6Bar2Ssfh2Kj51C .marker{fill:#333333;stroke:#333333;}#mermaid-svg-H6Bar2Ssfh2Kj51C .marker.cross{stroke:#333333;}#mermaid-svg-H6Bar2Ssfh2Kj51C svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-H6Bar2Ssfh2Kj51C .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-H6Bar2Ssfh2Kj51C .cluster-label text{fill:#333;}#mermaid-svg-H6Bar2Ssfh2Kj51C .cluster-label span{color:#333;}#mermaid-svg-H6Bar2Ssfh2Kj51C .label text,#mermaid-svg-H6Bar2Ssfh2Kj51C span{fill:#333;color:#333;}#mermaid-svg-H6Bar2Ssfh2Kj51C .node rect,#mermaid-svg-H6Bar2Ssfh2Kj51C .node circle,#mermaid-svg-H6Bar2Ssfh2Kj51C .node ellipse,#mermaid-svg-H6Bar2Ssfh2Kj51C .node polygon,#mermaid-svg-H6Bar2Ssfh2Kj51C .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-H6Bar2Ssfh2Kj51C .node .label{text-align:center;}#mermaid-svg-H6Bar2Ssfh2Kj51C .node.clickable{cursor:pointer;}#mermaid-svg-H6Bar2Ssfh2Kj51C .arrowheadPath{fill:#333333;}#mermaid-svg-H6Bar2Ssfh2Kj51C .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-H6Bar2Ssfh2Kj51C .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-H6Bar2Ssfh2Kj51C .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-H6Bar2Ssfh2Kj51C .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-H6Bar2Ssfh2Kj51C .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-H6Bar2Ssfh2Kj51C .cluster text{fill:#333;}#mermaid-svg-H6Bar2Ssfh2Kj51C .cluster span{color:#333;}#mermaid-svg-H6Bar2Ssfh2Kj51C div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-H6Bar2Ssfh2Kj51C :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 注意: 在引用的过程中 权限可以平移权限可以缩小权限不可以放大 #mermaid-svg-IRQKMRv1hgl3U7vE {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-IRQKMRv1hgl3U7vE .error-icon{fill:#552222;}#mermaid-svg-IRQKMRv1hgl3U7vE .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-IRQKMRv1hgl3U7vE .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-IRQKMRv1hgl3U7vE .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-IRQKMRv1hgl3U7vE .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-IRQKMRv1hgl3U7vE .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-IRQKMRv1hgl3U7vE .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-IRQKMRv1hgl3U7vE .marker{fill:#333333;stroke:#333333;}#mermaid-svg-IRQKMRv1hgl3U7vE .marker.cross{stroke:#333333;}#mermaid-svg-IRQKMRv1hgl3U7vE svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-IRQKMRv1hgl3U7vE .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-IRQKMRv1hgl3U7vE .cluster-label text{fill:#333;}#mermaid-svg-IRQKMRv1hgl3U7vE .cluster-label span{color:#333;}#mermaid-svg-IRQKMRv1hgl3U7vE .label text,#mermaid-svg-IRQKMRv1hgl3U7vE span{fill:#333;color:#333;}#mermaid-svg-IRQKMRv1hgl3U7vE .node rect,#mermaid-svg-IRQKMRv1hgl3U7vE .node circle,#mermaid-svg-IRQKMRv1hgl3U7vE .node ellipse,#mermaid-svg-IRQKMRv1hgl3U7vE .node polygon,#mermaid-svg-IRQKMRv1hgl3U7vE .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-IRQKMRv1hgl3U7vE .node .label{text-align:center;}#mermaid-svg-IRQKMRv1hgl3U7vE .node.clickable{cursor:pointer;}#mermaid-svg-IRQKMRv1hgl3U7vE .arrowheadPath{fill:#333333;}#mermaid-svg-IRQKMRv1hgl3U7vE .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-IRQKMRv1hgl3U7vE .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-IRQKMRv1hgl3U7vE .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-IRQKMRv1hgl3U7vE .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-IRQKMRv1hgl3U7vE .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-IRQKMRv1hgl3U7vE .cluster text{fill:#333;}#mermaid-svg-IRQKMRv1hgl3U7vE .cluster span{color:#333;}#mermaid-svg-IRQKMRv1hgl3U7vE div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-IRQKMRv1hgl3U7vE :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 示例: #includeiostream using namespace std; int func() {int a 0;return a; } int main() {const int ret func();return 0; }2.4.使用场景 #mermaid-svg-XSrZ6VG8rye6ECis {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-XSrZ6VG8rye6ECis .error-icon{fill:#552222;}#mermaid-svg-XSrZ6VG8rye6ECis .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-XSrZ6VG8rye6ECis .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-XSrZ6VG8rye6ECis .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-XSrZ6VG8rye6ECis .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-XSrZ6VG8rye6ECis .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-XSrZ6VG8rye6ECis .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-XSrZ6VG8rye6ECis .marker{fill:#333333;stroke:#333333;}#mermaid-svg-XSrZ6VG8rye6ECis .marker.cross{stroke:#333333;}#mermaid-svg-XSrZ6VG8rye6ECis svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-XSrZ6VG8rye6ECis .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-XSrZ6VG8rye6ECis .cluster-label text{fill:#333;}#mermaid-svg-XSrZ6VG8rye6ECis .cluster-label span{color:#333;}#mermaid-svg-XSrZ6VG8rye6ECis .label text,#mermaid-svg-XSrZ6VG8rye6ECis span{fill:#333;color:#333;}#mermaid-svg-XSrZ6VG8rye6ECis .node rect,#mermaid-svg-XSrZ6VG8rye6ECis .node circle,#mermaid-svg-XSrZ6VG8rye6ECis .node ellipse,#mermaid-svg-XSrZ6VG8rye6ECis .node polygon,#mermaid-svg-XSrZ6VG8rye6ECis .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-XSrZ6VG8rye6ECis .node .label{text-align:center;}#mermaid-svg-XSrZ6VG8rye6ECis .node.clickable{cursor:pointer;}#mermaid-svg-XSrZ6VG8rye6ECis .arrowheadPath{fill:#333333;}#mermaid-svg-XSrZ6VG8rye6ECis .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-XSrZ6VG8rye6ECis .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-XSrZ6VG8rye6ECis .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-XSrZ6VG8rye6ECis .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-XSrZ6VG8rye6ECis .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-XSrZ6VG8rye6ECis .cluster text{fill:#333;}#mermaid-svg-XSrZ6VG8rye6ECis .cluster span{color:#333;}#mermaid-svg-XSrZ6VG8rye6ECis div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-XSrZ6VG8rye6ECis :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. 做参数/交换两个数值: #includeiostream using namespace std; void Swap(int left, int right) {int tmp left;left right;right tmp; } int main() {int i 3, j 6;Swap(i, j);cout i endl;cout j endl;return 0; }#mermaid-svg-Bxwacu6Qe6vcFd9g {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Bxwacu6Qe6vcFd9g .error-icon{fill:#552222;}#mermaid-svg-Bxwacu6Qe6vcFd9g .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Bxwacu6Qe6vcFd9g .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Bxwacu6Qe6vcFd9g .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Bxwacu6Qe6vcFd9g .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Bxwacu6Qe6vcFd9g .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Bxwacu6Qe6vcFd9g .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Bxwacu6Qe6vcFd9g .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Bxwacu6Qe6vcFd9g .marker.cross{stroke:#333333;}#mermaid-svg-Bxwacu6Qe6vcFd9g svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Bxwacu6Qe6vcFd9g .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Bxwacu6Qe6vcFd9g .cluster-label text{fill:#333;}#mermaid-svg-Bxwacu6Qe6vcFd9g .cluster-label span{color:#333;}#mermaid-svg-Bxwacu6Qe6vcFd9g .label text,#mermaid-svg-Bxwacu6Qe6vcFd9g span{fill:#333;color:#333;}#mermaid-svg-Bxwacu6Qe6vcFd9g .node rect,#mermaid-svg-Bxwacu6Qe6vcFd9g .node circle,#mermaid-svg-Bxwacu6Qe6vcFd9g .node ellipse,#mermaid-svg-Bxwacu6Qe6vcFd9g .node polygon,#mermaid-svg-Bxwacu6Qe6vcFd9g .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Bxwacu6Qe6vcFd9g .node .label{text-align:center;}#mermaid-svg-Bxwacu6Qe6vcFd9g .node.clickable{cursor:pointer;}#mermaid-svg-Bxwacu6Qe6vcFd9g .arrowheadPath{fill:#333333;}#mermaid-svg-Bxwacu6Qe6vcFd9g .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Bxwacu6Qe6vcFd9g .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Bxwacu6Qe6vcFd9g .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-Bxwacu6Qe6vcFd9g .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-Bxwacu6Qe6vcFd9g .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Bxwacu6Qe6vcFd9g .cluster text{fill:#333;}#mermaid-svg-Bxwacu6Qe6vcFd9g .cluster span{color:#333;}#mermaid-svg-Bxwacu6Qe6vcFd9g div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Bxwacu6Qe6vcFd9g :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 效果演示: #mermaid-svg-SvUqXmUeZ7O3B9C5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .error-icon{fill:#552222;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .marker.cross{stroke:#333333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .cluster-label text{fill:#333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .cluster-label span{color:#333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .label text,#mermaid-svg-SvUqXmUeZ7O3B9C5 span{fill:#333;color:#333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .node rect,#mermaid-svg-SvUqXmUeZ7O3B9C5 .node circle,#mermaid-svg-SvUqXmUeZ7O3B9C5 .node ellipse,#mermaid-svg-SvUqXmUeZ7O3B9C5 .node polygon,#mermaid-svg-SvUqXmUeZ7O3B9C5 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .node .label{text-align:center;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .node.clickable{cursor:pointer;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .arrowheadPath{fill:#333333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .cluster text{fill:#333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 .cluster span{color:#333;}#mermaid-svg-SvUqXmUeZ7O3B9C5 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-SvUqXmUeZ7O3B9C5 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2. 做返回值: #mermaid-svg-vf1d7bGz4GT423tC {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-vf1d7bGz4GT423tC .error-icon{fill:#552222;}#mermaid-svg-vf1d7bGz4GT423tC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-vf1d7bGz4GT423tC .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-vf1d7bGz4GT423tC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-vf1d7bGz4GT423tC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-vf1d7bGz4GT423tC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-vf1d7bGz4GT423tC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-vf1d7bGz4GT423tC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-vf1d7bGz4GT423tC .marker.cross{stroke:#333333;}#mermaid-svg-vf1d7bGz4GT423tC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-vf1d7bGz4GT423tC .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-vf1d7bGz4GT423tC .cluster-label text{fill:#333;}#mermaid-svg-vf1d7bGz4GT423tC .cluster-label span{color:#333;}#mermaid-svg-vf1d7bGz4GT423tC .label text,#mermaid-svg-vf1d7bGz4GT423tC span{fill:#333;color:#333;}#mermaid-svg-vf1d7bGz4GT423tC .node rect,#mermaid-svg-vf1d7bGz4GT423tC .node circle,#mermaid-svg-vf1d7bGz4GT423tC .node ellipse,#mermaid-svg-vf1d7bGz4GT423tC .node polygon,#mermaid-svg-vf1d7bGz4GT423tC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-vf1d7bGz4GT423tC .node .label{text-align:center;}#mermaid-svg-vf1d7bGz4GT423tC .node.clickable{cursor:pointer;}#mermaid-svg-vf1d7bGz4GT423tC .arrowheadPath{fill:#333333;}#mermaid-svg-vf1d7bGz4GT423tC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-vf1d7bGz4GT423tC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-vf1d7bGz4GT423tC .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-vf1d7bGz4GT423tC .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-vf1d7bGz4GT423tC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-vf1d7bGz4GT423tC .cluster text{fill:#333;}#mermaid-svg-vf1d7bGz4GT423tC .cluster span{color:#333;}#mermaid-svg-vf1d7bGz4GT423tC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-vf1d7bGz4GT423tC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. 传值返回:不是把n返回给ret,n在Count函数栈帧里面,函数调用结束栈帧也就销毁了 实际原理是会生成一个临时变量(可能寄存器充当也可能其他方式)n会在返回值之前拷贝给临时变量临时变量不会在Count函数的栈帧一般是在寄存器或者上一层函数的栈帧 #includeiostream using namespace std; int Count() {int n 0;n;// ...return n; } int main() {int ret Count();return 0; }#mermaid-svg-cQyPJfGOS7Ss6tyP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-cQyPJfGOS7Ss6tyP .error-icon{fill:#552222;}#mermaid-svg-cQyPJfGOS7Ss6tyP .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-cQyPJfGOS7Ss6tyP .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-cQyPJfGOS7Ss6tyP .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-cQyPJfGOS7Ss6tyP .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-cQyPJfGOS7Ss6tyP .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-cQyPJfGOS7Ss6tyP .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-cQyPJfGOS7Ss6tyP .marker{fill:#333333;stroke:#333333;}#mermaid-svg-cQyPJfGOS7Ss6tyP .marker.cross{stroke:#333333;}#mermaid-svg-cQyPJfGOS7Ss6tyP svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-cQyPJfGOS7Ss6tyP .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-cQyPJfGOS7Ss6tyP .cluster-label text{fill:#333;}#mermaid-svg-cQyPJfGOS7Ss6tyP .cluster-label span{color:#333;}#mermaid-svg-cQyPJfGOS7Ss6tyP .label text,#mermaid-svg-cQyPJfGOS7Ss6tyP span{fill:#333;color:#333;}#mermaid-svg-cQyPJfGOS7Ss6tyP .node rect,#mermaid-svg-cQyPJfGOS7Ss6tyP .node circle,#mermaid-svg-cQyPJfGOS7Ss6tyP .node ellipse,#mermaid-svg-cQyPJfGOS7Ss6tyP .node polygon,#mermaid-svg-cQyPJfGOS7Ss6tyP .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-cQyPJfGOS7Ss6tyP .node .label{text-align:center;}#mermaid-svg-cQyPJfGOS7Ss6tyP .node.clickable{cursor:pointer;}#mermaid-svg-cQyPJfGOS7Ss6tyP .arrowheadPath{fill:#333333;}#mermaid-svg-cQyPJfGOS7Ss6tyP .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-cQyPJfGOS7Ss6tyP .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-cQyPJfGOS7Ss6tyP .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-cQyPJfGOS7Ss6tyP .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-cQyPJfGOS7Ss6tyP .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-cQyPJfGOS7Ss6tyP .cluster text{fill:#333;}#mermaid-svg-cQyPJfGOS7Ss6tyP .cluster span{color:#333;}#mermaid-svg-cQyPJfGOS7Ss6tyP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-cQyPJfGOS7Ss6tyP :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2. 传引用返回第一种:返回的是n的别名/n的引用 会出现类似野指针的危险n都销毁了在访问n的别名 问n都销毁了还能访问它的别名吗 答可以因为空间销毁并不是这块空间就没了而是被系统回收就像酒店里的房间退房后房间不会消失而是被回收你的入住权租给别人或者空着而野指针就是退房后你还偷偷藏了房间的钥匙然后偷偷跑进房间。但是这里不是野指针返回n的别名是不合法的 #includeiostream using namespace std; int Count() {int n 0;n;// ...return n; } int main() {int ret Count();cout ret endl;cout ret endl;return 0; }#mermaid-svg-v56rtsZegb7jOZ36 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-v56rtsZegb7jOZ36 .error-icon{fill:#552222;}#mermaid-svg-v56rtsZegb7jOZ36 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-v56rtsZegb7jOZ36 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-v56rtsZegb7jOZ36 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-v56rtsZegb7jOZ36 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-v56rtsZegb7jOZ36 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-v56rtsZegb7jOZ36 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-v56rtsZegb7jOZ36 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-v56rtsZegb7jOZ36 .marker.cross{stroke:#333333;}#mermaid-svg-v56rtsZegb7jOZ36 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-v56rtsZegb7jOZ36 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-v56rtsZegb7jOZ36 .cluster-label text{fill:#333;}#mermaid-svg-v56rtsZegb7jOZ36 .cluster-label span{color:#333;}#mermaid-svg-v56rtsZegb7jOZ36 .label text,#mermaid-svg-v56rtsZegb7jOZ36 span{fill:#333;color:#333;}#mermaid-svg-v56rtsZegb7jOZ36 .node rect,#mermaid-svg-v56rtsZegb7jOZ36 .node circle,#mermaid-svg-v56rtsZegb7jOZ36 .node ellipse,#mermaid-svg-v56rtsZegb7jOZ36 .node polygon,#mermaid-svg-v56rtsZegb7jOZ36 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-v56rtsZegb7jOZ36 .node .label{text-align:center;}#mermaid-svg-v56rtsZegb7jOZ36 .node.clickable{cursor:pointer;}#mermaid-svg-v56rtsZegb7jOZ36 .arrowheadPath{fill:#333333;}#mermaid-svg-v56rtsZegb7jOZ36 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-v56rtsZegb7jOZ36 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-v56rtsZegb7jOZ36 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-v56rtsZegb7jOZ36 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-v56rtsZegb7jOZ36 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-v56rtsZegb7jOZ36 .cluster text{fill:#333;}#mermaid-svg-v56rtsZegb7jOZ36 .cluster span{color:#333;}#mermaid-svg-v56rtsZegb7jOZ36 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-v56rtsZegb7jOZ36 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 效果演示: 程序的结果有两种可能1和随机值------调用函数返回n的别名当int retCount(),函数Count()栈帧已经销毁了,再去访问这块空间就会出现两种可能性第一种是1拷贝给ret还有一种可能是随机值(取决于栈帧销毁后空间是否会被置成随机值取决于编译系统) #mermaid-svg-5g4jrTMx08AwhR2b {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-5g4jrTMx08AwhR2b .error-icon{fill:#552222;}#mermaid-svg-5g4jrTMx08AwhR2b .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-5g4jrTMx08AwhR2b .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-5g4jrTMx08AwhR2b .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-5g4jrTMx08AwhR2b .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-5g4jrTMx08AwhR2b .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-5g4jrTMx08AwhR2b .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-5g4jrTMx08AwhR2b .marker{fill:#333333;stroke:#333333;}#mermaid-svg-5g4jrTMx08AwhR2b .marker.cross{stroke:#333333;}#mermaid-svg-5g4jrTMx08AwhR2b svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-5g4jrTMx08AwhR2b .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-5g4jrTMx08AwhR2b .cluster-label text{fill:#333;}#mermaid-svg-5g4jrTMx08AwhR2b .cluster-label span{color:#333;}#mermaid-svg-5g4jrTMx08AwhR2b .label text,#mermaid-svg-5g4jrTMx08AwhR2b span{fill:#333;color:#333;}#mermaid-svg-5g4jrTMx08AwhR2b .node rect,#mermaid-svg-5g4jrTMx08AwhR2b .node circle,#mermaid-svg-5g4jrTMx08AwhR2b .node ellipse,#mermaid-svg-5g4jrTMx08AwhR2b .node polygon,#mermaid-svg-5g4jrTMx08AwhR2b .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-5g4jrTMx08AwhR2b .node .label{text-align:center;}#mermaid-svg-5g4jrTMx08AwhR2b .node.clickable{cursor:pointer;}#mermaid-svg-5g4jrTMx08AwhR2b .arrowheadPath{fill:#333333;}#mermaid-svg-5g4jrTMx08AwhR2b .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-5g4jrTMx08AwhR2b .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-5g4jrTMx08AwhR2b .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-5g4jrTMx08AwhR2b .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-5g4jrTMx08AwhR2b .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-5g4jrTMx08AwhR2b .cluster text{fill:#333;}#mermaid-svg-5g4jrTMx08AwhR2b .cluster span{color:#333;}#mermaid-svg-5g4jrTMx08AwhR2b div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-5g4jrTMx08AwhR2b :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 3. 传引用返回第二种: 这种代表ret也是n的别名第一次访问打印ret是1第二次就变成了随机值为什么 知识点补充cout是一个函数调用(调用函数先传参)第一次先传参取到的还是1然后进行函数调用Count函数的栈帧销毁第一次函数调用占用的还是那块空间只不过可能比之前Count函数栈帧大或者小此时函数调用覆盖这块空间而ret还是这块空间的别名所以取到的就是一个随机值但也不一定是随机值当Count函数栈帧很大n在下面,就不会被覆盖 #includeiostream using namespace std; int Count() {int n 0;n;// ...return n; } int main() {int ret Count();cout ret endl;cout ret endl;return 0; }#mermaid-svg-iz83uSby7I7JJLFp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-iz83uSby7I7JJLFp .error-icon{fill:#552222;}#mermaid-svg-iz83uSby7I7JJLFp .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-iz83uSby7I7JJLFp .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-iz83uSby7I7JJLFp .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-iz83uSby7I7JJLFp .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-iz83uSby7I7JJLFp .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-iz83uSby7I7JJLFp .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-iz83uSby7I7JJLFp .marker{fill:#333333;stroke:#333333;}#mermaid-svg-iz83uSby7I7JJLFp .marker.cross{stroke:#333333;}#mermaid-svg-iz83uSby7I7JJLFp svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-iz83uSby7I7JJLFp .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-iz83uSby7I7JJLFp .cluster-label text{fill:#333;}#mermaid-svg-iz83uSby7I7JJLFp .cluster-label span{color:#333;}#mermaid-svg-iz83uSby7I7JJLFp .label text,#mermaid-svg-iz83uSby7I7JJLFp span{fill:#333;color:#333;}#mermaid-svg-iz83uSby7I7JJLFp .node rect,#mermaid-svg-iz83uSby7I7JJLFp .node circle,#mermaid-svg-iz83uSby7I7JJLFp .node ellipse,#mermaid-svg-iz83uSby7I7JJLFp .node polygon,#mermaid-svg-iz83uSby7I7JJLFp .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-iz83uSby7I7JJLFp .node .label{text-align:center;}#mermaid-svg-iz83uSby7I7JJLFp .node.clickable{cursor:pointer;}#mermaid-svg-iz83uSby7I7JJLFp .arrowheadPath{fill:#333333;}#mermaid-svg-iz83uSby7I7JJLFp .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-iz83uSby7I7JJLFp .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-iz83uSby7I7JJLFp .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-iz83uSby7I7JJLFp .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-iz83uSby7I7JJLFp .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-iz83uSby7I7JJLFp .cluster text{fill:#333;}#mermaid-svg-iz83uSby7I7JJLFp .cluster span{color:#333;}#mermaid-svg-iz83uSby7I7JJLFp div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-iz83uSby7I7JJLFp :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 效果演示: #mermaid-svg-i5V2qU9ZSlwzmfaJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .error-icon{fill:#552222;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .marker.cross{stroke:#333333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .cluster-label text{fill:#333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .cluster-label span{color:#333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .label text,#mermaid-svg-i5V2qU9ZSlwzmfaJ span{fill:#333;color:#333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .node rect,#mermaid-svg-i5V2qU9ZSlwzmfaJ .node circle,#mermaid-svg-i5V2qU9ZSlwzmfaJ .node ellipse,#mermaid-svg-i5V2qU9ZSlwzmfaJ .node polygon,#mermaid-svg-i5V2qU9ZSlwzmfaJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .node .label{text-align:center;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .node.clickable{cursor:pointer;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .arrowheadPath{fill:#333333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .cluster text{fill:#333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ .cluster span{color:#333;}#mermaid-svg-i5V2qU9ZSlwzmfaJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-i5V2qU9ZSlwzmfaJ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 4. 例题及构图解析: int Add(int a, int b) {int c a b;return c; } int main() {int ret Add(1, 2);Add(3, 4);cout Add(1, 2) is : ret endl;return 0; }#mermaid-svg-Nc1iSdi4JTps2exU {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Nc1iSdi4JTps2exU .error-icon{fill:#552222;}#mermaid-svg-Nc1iSdi4JTps2exU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Nc1iSdi4JTps2exU .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Nc1iSdi4JTps2exU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Nc1iSdi4JTps2exU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Nc1iSdi4JTps2exU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Nc1iSdi4JTps2exU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Nc1iSdi4JTps2exU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Nc1iSdi4JTps2exU .marker.cross{stroke:#333333;}#mermaid-svg-Nc1iSdi4JTps2exU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Nc1iSdi4JTps2exU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Nc1iSdi4JTps2exU .cluster-label text{fill:#333;}#mermaid-svg-Nc1iSdi4JTps2exU .cluster-label span{color:#333;}#mermaid-svg-Nc1iSdi4JTps2exU .label text,#mermaid-svg-Nc1iSdi4JTps2exU span{fill:#333;color:#333;}#mermaid-svg-Nc1iSdi4JTps2exU .node rect,#mermaid-svg-Nc1iSdi4JTps2exU .node circle,#mermaid-svg-Nc1iSdi4JTps2exU .node ellipse,#mermaid-svg-Nc1iSdi4JTps2exU .node polygon,#mermaid-svg-Nc1iSdi4JTps2exU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Nc1iSdi4JTps2exU .node .label{text-align:center;}#mermaid-svg-Nc1iSdi4JTps2exU .node.clickable{cursor:pointer;}#mermaid-svg-Nc1iSdi4JTps2exU .arrowheadPath{fill:#333333;}#mermaid-svg-Nc1iSdi4JTps2exU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Nc1iSdi4JTps2exU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Nc1iSdi4JTps2exU .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-Nc1iSdi4JTps2exU .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-Nc1iSdi4JTps2exU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Nc1iSdi4JTps2exU .cluster text{fill:#333;}#mermaid-svg-Nc1iSdi4JTps2exU .cluster span{color:#333;}#mermaid-svg-Nc1iSdi4JTps2exU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Nc1iSdi4JTps2exU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 3. 注意: 注意如果函数返回时出了函数作用域如果返回对象还在(还没还给系统)则可以使用引用返回如果已经还给系统了则必须使用传值返回。 2.5.传值、传引用效率比较 以值作为参数或者返回值类型在传参和返回期间函数不会直接传递实参或者将变量本身直接返回而是传递实参或者返回变量的一份临时的拷贝因此用值作为参数或者返回值类型效率是非常低下的尤其是当参数或者返回值类型非常大时效率就更低 #mermaid-svg-rmcNB7Ogi0UmzRBd {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-rmcNB7Ogi0UmzRBd .error-icon{fill:#552222;}#mermaid-svg-rmcNB7Ogi0UmzRBd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-rmcNB7Ogi0UmzRBd .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-rmcNB7Ogi0UmzRBd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-rmcNB7Ogi0UmzRBd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-rmcNB7Ogi0UmzRBd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-rmcNB7Ogi0UmzRBd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-rmcNB7Ogi0UmzRBd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-rmcNB7Ogi0UmzRBd .marker.cross{stroke:#333333;}#mermaid-svg-rmcNB7Ogi0UmzRBd svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-rmcNB7Ogi0UmzRBd .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-rmcNB7Ogi0UmzRBd .cluster-label text{fill:#333;}#mermaid-svg-rmcNB7Ogi0UmzRBd .cluster-label span{color:#333;}#mermaid-svg-rmcNB7Ogi0UmzRBd .label text,#mermaid-svg-rmcNB7Ogi0UmzRBd span{fill:#333;color:#333;}#mermaid-svg-rmcNB7Ogi0UmzRBd .node rect,#mermaid-svg-rmcNB7Ogi0UmzRBd .node circle,#mermaid-svg-rmcNB7Ogi0UmzRBd .node ellipse,#mermaid-svg-rmcNB7Ogi0UmzRBd .node polygon,#mermaid-svg-rmcNB7Ogi0UmzRBd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-rmcNB7Ogi0UmzRBd .node .label{text-align:center;}#mermaid-svg-rmcNB7Ogi0UmzRBd .node.clickable{cursor:pointer;}#mermaid-svg-rmcNB7Ogi0UmzRBd .arrowheadPath{fill:#333333;}#mermaid-svg-rmcNB7Ogi0UmzRBd .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-rmcNB7Ogi0UmzRBd .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-rmcNB7Ogi0UmzRBd .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-rmcNB7Ogi0UmzRBd .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-rmcNB7Ogi0UmzRBd .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-rmcNB7Ogi0UmzRBd .cluster text{fill:#333;}#mermaid-svg-rmcNB7Ogi0UmzRBd .cluster span{color:#333;}#mermaid-svg-rmcNB7Ogi0UmzRBd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-rmcNB7Ogi0UmzRBd :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. 值和引用作为函数参数的性能比较: #includeiostream using namespace std; #include time.h struct A { int a[10000]; }; void TestFunc1(A a) {} void TestFunc2(A a) {} void TestRefAndValue() {A a;// 以值作为函数参数size_t begin1 clock();for (size_t i 0; i 10000; i)TestFunc1(a);size_t end1 clock();// 以引用作为函数参数size_t begin2 clock();for (size_t i 0; i 10000; i)TestFunc2(a);size_t end2 clock();// 分别计算两个函数运行结束后的时间cout TestFunc1(A)-time: end1 - begin1 endl;cout TestFunc2(A)-time: end2 - begin2 endl; } int main() {TestRefAndValue();return 0; }#mermaid-svg-9hmUU8FbXmObC6mw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-9hmUU8FbXmObC6mw .error-icon{fill:#552222;}#mermaid-svg-9hmUU8FbXmObC6mw .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-9hmUU8FbXmObC6mw .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-9hmUU8FbXmObC6mw .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-9hmUU8FbXmObC6mw .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-9hmUU8FbXmObC6mw .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-9hmUU8FbXmObC6mw .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-9hmUU8FbXmObC6mw .marker{fill:#333333;stroke:#333333;}#mermaid-svg-9hmUU8FbXmObC6mw .marker.cross{stroke:#333333;}#mermaid-svg-9hmUU8FbXmObC6mw svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-9hmUU8FbXmObC6mw .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-9hmUU8FbXmObC6mw .cluster-label text{fill:#333;}#mermaid-svg-9hmUU8FbXmObC6mw .cluster-label span{color:#333;}#mermaid-svg-9hmUU8FbXmObC6mw .label text,#mermaid-svg-9hmUU8FbXmObC6mw span{fill:#333;color:#333;}#mermaid-svg-9hmUU8FbXmObC6mw .node rect,#mermaid-svg-9hmUU8FbXmObC6mw .node circle,#mermaid-svg-9hmUU8FbXmObC6mw .node ellipse,#mermaid-svg-9hmUU8FbXmObC6mw .node polygon,#mermaid-svg-9hmUU8FbXmObC6mw .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-9hmUU8FbXmObC6mw .node .label{text-align:center;}#mermaid-svg-9hmUU8FbXmObC6mw .node.clickable{cursor:pointer;}#mermaid-svg-9hmUU8FbXmObC6mw .arrowheadPath{fill:#333333;}#mermaid-svg-9hmUU8FbXmObC6mw .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-9hmUU8FbXmObC6mw .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-9hmUU8FbXmObC6mw .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-9hmUU8FbXmObC6mw .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-9hmUU8FbXmObC6mw .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-9hmUU8FbXmObC6mw .cluster text{fill:#333;}#mermaid-svg-9hmUU8FbXmObC6mw .cluster span{color:#333;}#mermaid-svg-9hmUU8FbXmObC6mw div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-9hmUU8FbXmObC6mw :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 效果演示: #mermaid-svg-K1PzB9oDd0DwuR6A {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-K1PzB9oDd0DwuR6A .error-icon{fill:#552222;}#mermaid-svg-K1PzB9oDd0DwuR6A .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-K1PzB9oDd0DwuR6A .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-K1PzB9oDd0DwuR6A .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-K1PzB9oDd0DwuR6A .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-K1PzB9oDd0DwuR6A .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-K1PzB9oDd0DwuR6A .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-K1PzB9oDd0DwuR6A .marker{fill:#333333;stroke:#333333;}#mermaid-svg-K1PzB9oDd0DwuR6A .marker.cross{stroke:#333333;}#mermaid-svg-K1PzB9oDd0DwuR6A svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-K1PzB9oDd0DwuR6A .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-K1PzB9oDd0DwuR6A .cluster-label text{fill:#333;}#mermaid-svg-K1PzB9oDd0DwuR6A .cluster-label span{color:#333;}#mermaid-svg-K1PzB9oDd0DwuR6A .label text,#mermaid-svg-K1PzB9oDd0DwuR6A span{fill:#333;color:#333;}#mermaid-svg-K1PzB9oDd0DwuR6A .node rect,#mermaid-svg-K1PzB9oDd0DwuR6A .node circle,#mermaid-svg-K1PzB9oDd0DwuR6A .node ellipse,#mermaid-svg-K1PzB9oDd0DwuR6A .node polygon,#mermaid-svg-K1PzB9oDd0DwuR6A .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-K1PzB9oDd0DwuR6A .node .label{text-align:center;}#mermaid-svg-K1PzB9oDd0DwuR6A .node.clickable{cursor:pointer;}#mermaid-svg-K1PzB9oDd0DwuR6A .arrowheadPath{fill:#333333;}#mermaid-svg-K1PzB9oDd0DwuR6A .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-K1PzB9oDd0DwuR6A .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-K1PzB9oDd0DwuR6A .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-K1PzB9oDd0DwuR6A .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-K1PzB9oDd0DwuR6A .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-K1PzB9oDd0DwuR6A .cluster text{fill:#333;}#mermaid-svg-K1PzB9oDd0DwuR6A .cluster span{color:#333;}#mermaid-svg-K1PzB9oDd0DwuR6A div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-K1PzB9oDd0DwuR6A :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2. 值和引用的作为返回值类型的性能比较: #includeiostream using namespace std; #include time.h struct A { int a[10000]; }; A a;//值返回 A TestFunc1() { return a; }//引用返回 A TestFunc2() { return a; } void TestReturnByRefOrValue() {//以值作为函数的返回值类型size_t begin1 clock();for (size_t i 0; i 100000; i)TestFunc1();size_t end1 clock();//以引用作为函数的返回值类型size_t begin2 clock();for (size_t i 0; i 100000; i)TestFunc2();size_t end2 clock();//计算两个函数运算完成之后的时间cout TestFunc1 time: end1 - begin1 endl;cout TestFunc2 time: end2 - begin2 endl; } int main() {TestReturnByRefOrValue();return 0; }#mermaid-svg-YSR9jqCVyWdTN7kt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-YSR9jqCVyWdTN7kt .error-icon{fill:#552222;}#mermaid-svg-YSR9jqCVyWdTN7kt .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-YSR9jqCVyWdTN7kt .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-YSR9jqCVyWdTN7kt .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-YSR9jqCVyWdTN7kt .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-YSR9jqCVyWdTN7kt .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-YSR9jqCVyWdTN7kt .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-YSR9jqCVyWdTN7kt .marker{fill:#333333;stroke:#333333;}#mermaid-svg-YSR9jqCVyWdTN7kt .marker.cross{stroke:#333333;}#mermaid-svg-YSR9jqCVyWdTN7kt svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-YSR9jqCVyWdTN7kt .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-YSR9jqCVyWdTN7kt .cluster-label text{fill:#333;}#mermaid-svg-YSR9jqCVyWdTN7kt .cluster-label span{color:#333;}#mermaid-svg-YSR9jqCVyWdTN7kt .label text,#mermaid-svg-YSR9jqCVyWdTN7kt span{fill:#333;color:#333;}#mermaid-svg-YSR9jqCVyWdTN7kt .node rect,#mermaid-svg-YSR9jqCVyWdTN7kt .node circle,#mermaid-svg-YSR9jqCVyWdTN7kt .node ellipse,#mermaid-svg-YSR9jqCVyWdTN7kt .node polygon,#mermaid-svg-YSR9jqCVyWdTN7kt .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-YSR9jqCVyWdTN7kt .node .label{text-align:center;}#mermaid-svg-YSR9jqCVyWdTN7kt .node.clickable{cursor:pointer;}#mermaid-svg-YSR9jqCVyWdTN7kt .arrowheadPath{fill:#333333;}#mermaid-svg-YSR9jqCVyWdTN7kt .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-YSR9jqCVyWdTN7kt .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-YSR9jqCVyWdTN7kt .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-YSR9jqCVyWdTN7kt .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-YSR9jqCVyWdTN7kt .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-YSR9jqCVyWdTN7kt .cluster text{fill:#333;}#mermaid-svg-YSR9jqCVyWdTN7kt .cluster span{color:#333;}#mermaid-svg-YSR9jqCVyWdTN7kt div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-YSR9jqCVyWdTN7kt :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 效果演示: 通过上述代码的比较发现传值和指针在作为传参以及返回值类型上效率相差很大。 #mermaid-svg-QkofYBkALfDjqjih {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QkofYBkALfDjqjih .error-icon{fill:#552222;}#mermaid-svg-QkofYBkALfDjqjih .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-QkofYBkALfDjqjih .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-QkofYBkALfDjqjih .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-QkofYBkALfDjqjih .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-QkofYBkALfDjqjih .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-QkofYBkALfDjqjih .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-QkofYBkALfDjqjih .marker{fill:#333333;stroke:#333333;}#mermaid-svg-QkofYBkALfDjqjih .marker.cross{stroke:#333333;}#mermaid-svg-QkofYBkALfDjqjih svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-QkofYBkALfDjqjih .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-QkofYBkALfDjqjih .cluster-label text{fill:#333;}#mermaid-svg-QkofYBkALfDjqjih .cluster-label span{color:#333;}#mermaid-svg-QkofYBkALfDjqjih .label text,#mermaid-svg-QkofYBkALfDjqjih span{fill:#333;color:#333;}#mermaid-svg-QkofYBkALfDjqjih .node rect,#mermaid-svg-QkofYBkALfDjqjih .node circle,#mermaid-svg-QkofYBkALfDjqjih .node ellipse,#mermaid-svg-QkofYBkALfDjqjih .node polygon,#mermaid-svg-QkofYBkALfDjqjih .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-QkofYBkALfDjqjih .node .label{text-align:center;}#mermaid-svg-QkofYBkALfDjqjih .node.clickable{cursor:pointer;}#mermaid-svg-QkofYBkALfDjqjih .arrowheadPath{fill:#333333;}#mermaid-svg-QkofYBkALfDjqjih .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-QkofYBkALfDjqjih .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-QkofYBkALfDjqjih .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-QkofYBkALfDjqjih .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-QkofYBkALfDjqjih .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-QkofYBkALfDjqjih .cluster text{fill:#333;}#mermaid-svg-QkofYBkALfDjqjih .cluster span{color:#333;}#mermaid-svg-QkofYBkALfDjqjih div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-QkofYBkALfDjqjih :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 3. 总结: 传引用传参任何时候都可以用) 提高效率输出型参数(形参的修改影响的实参) 传引用返回(出了函数作用域对象还在才可以用) 提高效率修改返回对象(末尾彩蛋处有体现 2.6.引用和指针的区别 #mermaid-svg-g6dzr6FCwS2sYD7n {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-g6dzr6FCwS2sYD7n .error-icon{fill:#552222;}#mermaid-svg-g6dzr6FCwS2sYD7n .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-g6dzr6FCwS2sYD7n .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-g6dzr6FCwS2sYD7n .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-g6dzr6FCwS2sYD7n .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-g6dzr6FCwS2sYD7n .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-g6dzr6FCwS2sYD7n .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-g6dzr6FCwS2sYD7n .marker{fill:#333333;stroke:#333333;}#mermaid-svg-g6dzr6FCwS2sYD7n .marker.cross{stroke:#333333;}#mermaid-svg-g6dzr6FCwS2sYD7n svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-g6dzr6FCwS2sYD7n .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-g6dzr6FCwS2sYD7n .cluster-label text{fill:#333;}#mermaid-svg-g6dzr6FCwS2sYD7n .cluster-label span{color:#333;}#mermaid-svg-g6dzr6FCwS2sYD7n .label text,#mermaid-svg-g6dzr6FCwS2sYD7n span{fill:#333;color:#333;}#mermaid-svg-g6dzr6FCwS2sYD7n .node rect,#mermaid-svg-g6dzr6FCwS2sYD7n .node circle,#mermaid-svg-g6dzr6FCwS2sYD7n .node ellipse,#mermaid-svg-g6dzr6FCwS2sYD7n .node polygon,#mermaid-svg-g6dzr6FCwS2sYD7n .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-g6dzr6FCwS2sYD7n .node .label{text-align:center;}#mermaid-svg-g6dzr6FCwS2sYD7n .node.clickable{cursor:pointer;}#mermaid-svg-g6dzr6FCwS2sYD7n .arrowheadPath{fill:#333333;}#mermaid-svg-g6dzr6FCwS2sYD7n .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-g6dzr6FCwS2sYD7n .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-g6dzr6FCwS2sYD7n .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-g6dzr6FCwS2sYD7n .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-g6dzr6FCwS2sYD7n .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-g6dzr6FCwS2sYD7n .cluster text{fill:#333;}#mermaid-svg-g6dzr6FCwS2sYD7n .cluster span{color:#333;}#mermaid-svg-g6dzr6FCwS2sYD7n div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-g6dzr6FCwS2sYD7n :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. 在语法概念上引用就是一个别名,没有独立空间,和其引用实体共用同一块空间: #includeiostream using namespace std; int main() {int a 10;int ra a;cout a a endl;cout ra ra endl;return 0; }#mermaid-svg-HlEpKFSmAHE8eKRI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-HlEpKFSmAHE8eKRI .error-icon{fill:#552222;}#mermaid-svg-HlEpKFSmAHE8eKRI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-HlEpKFSmAHE8eKRI .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-HlEpKFSmAHE8eKRI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-HlEpKFSmAHE8eKRI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-HlEpKFSmAHE8eKRI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-HlEpKFSmAHE8eKRI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-HlEpKFSmAHE8eKRI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-HlEpKFSmAHE8eKRI .marker.cross{stroke:#333333;}#mermaid-svg-HlEpKFSmAHE8eKRI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-HlEpKFSmAHE8eKRI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-HlEpKFSmAHE8eKRI .cluster-label text{fill:#333;}#mermaid-svg-HlEpKFSmAHE8eKRI .cluster-label span{color:#333;}#mermaid-svg-HlEpKFSmAHE8eKRI .label text,#mermaid-svg-HlEpKFSmAHE8eKRI span{fill:#333;color:#333;}#mermaid-svg-HlEpKFSmAHE8eKRI .node rect,#mermaid-svg-HlEpKFSmAHE8eKRI .node circle,#mermaid-svg-HlEpKFSmAHE8eKRI .node ellipse,#mermaid-svg-HlEpKFSmAHE8eKRI .node polygon,#mermaid-svg-HlEpKFSmAHE8eKRI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-HlEpKFSmAHE8eKRI .node .label{text-align:center;}#mermaid-svg-HlEpKFSmAHE8eKRI .node.clickable{cursor:pointer;}#mermaid-svg-HlEpKFSmAHE8eKRI .arrowheadPath{fill:#333333;}#mermaid-svg-HlEpKFSmAHE8eKRI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-HlEpKFSmAHE8eKRI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-HlEpKFSmAHE8eKRI .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-HlEpKFSmAHE8eKRI .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-HlEpKFSmAHE8eKRI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-HlEpKFSmAHE8eKRI .cluster text{fill:#333;}#mermaid-svg-HlEpKFSmAHE8eKRI .cluster span{color:#333;}#mermaid-svg-HlEpKFSmAHE8eKRI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-HlEpKFSmAHE8eKRI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2. 在底层实现上实际是有空间的,因为引用是按照指针方式来实现的: #includeiostream using namespace std; int main() {int a 0;int* p1 a;int ref a;(*p1);ref;return 0; }#mermaid-svg-d4AsAPmfvfq0y6Od {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-d4AsAPmfvfq0y6Od .error-icon{fill:#552222;}#mermaid-svg-d4AsAPmfvfq0y6Od .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-d4AsAPmfvfq0y6Od .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-d4AsAPmfvfq0y6Od .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-d4AsAPmfvfq0y6Od .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-d4AsAPmfvfq0y6Od .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-d4AsAPmfvfq0y6Od .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-d4AsAPmfvfq0y6Od .marker{fill:#333333;stroke:#333333;}#mermaid-svg-d4AsAPmfvfq0y6Od .marker.cross{stroke:#333333;}#mermaid-svg-d4AsAPmfvfq0y6Od svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-d4AsAPmfvfq0y6Od .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-d4AsAPmfvfq0y6Od .cluster-label text{fill:#333;}#mermaid-svg-d4AsAPmfvfq0y6Od .cluster-label span{color:#333;}#mermaid-svg-d4AsAPmfvfq0y6Od .label text,#mermaid-svg-d4AsAPmfvfq0y6Od span{fill:#333;color:#333;}#mermaid-svg-d4AsAPmfvfq0y6Od .node rect,#mermaid-svg-d4AsAPmfvfq0y6Od .node circle,#mermaid-svg-d4AsAPmfvfq0y6Od .node ellipse,#mermaid-svg-d4AsAPmfvfq0y6Od .node polygon,#mermaid-svg-d4AsAPmfvfq0y6Od .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-d4AsAPmfvfq0y6Od .node .label{text-align:center;}#mermaid-svg-d4AsAPmfvfq0y6Od .node.clickable{cursor:pointer;}#mermaid-svg-d4AsAPmfvfq0y6Od .arrowheadPath{fill:#333333;}#mermaid-svg-d4AsAPmfvfq0y6Od .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-d4AsAPmfvfq0y6Od .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-d4AsAPmfvfq0y6Od .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-d4AsAPmfvfq0y6Od .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-d4AsAPmfvfq0y6Od .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-d4AsAPmfvfq0y6Od .cluster text{fill:#333;}#mermaid-svg-d4AsAPmfvfq0y6Od .cluster span{color:#333;}#mermaid-svg-d4AsAPmfvfq0y6Od div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-d4AsAPmfvfq0y6Od :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 引用和指针的不同点: 引用和指针的不同点: 引用概念上定义一个变量的别名指针存储一个变量地址。引用在定义时必须初始化指针没有要求引用在初始化时引用一个实体后就不能再引用其他实体而指针可以在任何时候指向任何一个同类型实体没有NULL引用但有NULL指针在sizeof中含义不同引用结果为引用类型的大小但指针始终是地址空间所占字节个数(32位平台下占4个字节)引用自加即引用的实体增加1指针自加即指针向后偏移一个类型的大小有多级指针但是没有多级引用访问实体方式不同指针需要显式解引用引用编译器自己处理引用比指针使用起来相对更安全 三、末尾彩蛋(带你回溯时空联想之前) #mermaid-svg-K0z8Js54XC45EbDZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-K0z8Js54XC45EbDZ .error-icon{fill:#552222;}#mermaid-svg-K0z8Js54XC45EbDZ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-K0z8Js54XC45EbDZ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-K0z8Js54XC45EbDZ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-K0z8Js54XC45EbDZ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-K0z8Js54XC45EbDZ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-K0z8Js54XC45EbDZ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-K0z8Js54XC45EbDZ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-K0z8Js54XC45EbDZ .marker.cross{stroke:#333333;}#mermaid-svg-K0z8Js54XC45EbDZ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-K0z8Js54XC45EbDZ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-K0z8Js54XC45EbDZ .cluster-label text{fill:#333;}#mermaid-svg-K0z8Js54XC45EbDZ .cluster-label span{color:#333;}#mermaid-svg-K0z8Js54XC45EbDZ .label text,#mermaid-svg-K0z8Js54XC45EbDZ span{fill:#333;color:#333;}#mermaid-svg-K0z8Js54XC45EbDZ .node rect,#mermaid-svg-K0z8Js54XC45EbDZ .node circle,#mermaid-svg-K0z8Js54XC45EbDZ .node ellipse,#mermaid-svg-K0z8Js54XC45EbDZ .node polygon,#mermaid-svg-K0z8Js54XC45EbDZ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-K0z8Js54XC45EbDZ .node .label{text-align:center;}#mermaid-svg-K0z8Js54XC45EbDZ .node.clickable{cursor:pointer;}#mermaid-svg-K0z8Js54XC45EbDZ .arrowheadPath{fill:#333333;}#mermaid-svg-K0z8Js54XC45EbDZ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-K0z8Js54XC45EbDZ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-K0z8Js54XC45EbDZ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-K0z8Js54XC45EbDZ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-K0z8Js54XC45EbDZ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-K0z8Js54XC45EbDZ .cluster text{fill:#333;}#mermaid-svg-K0z8Js54XC45EbDZ .cluster span{color:#333;}#mermaid-svg-K0z8Js54XC45EbDZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-K0z8Js54XC45EbDZ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1. C设计顺序表部分接口 #includestdio.h #includeassert.h #includestdlib.h struct SeqList {int a[10];int size; }; //读取第i个位置的接口 int SLAT(struct SeqList* ps, int i) {assert (i ps-size) ;return ps-a [i]; } //修改第i个位置的接口 void SLModify(struct SeqList* ps, int i, int x) {assert(i ps-size);ps-a[i] x; } int main() {return 0; }#mermaid-svg-W9a8MmivsLl9cDF5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-W9a8MmivsLl9cDF5 .error-icon{fill:#552222;}#mermaid-svg-W9a8MmivsLl9cDF5 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-W9a8MmivsLl9cDF5 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-W9a8MmivsLl9cDF5 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-W9a8MmivsLl9cDF5 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-W9a8MmivsLl9cDF5 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-W9a8MmivsLl9cDF5 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-W9a8MmivsLl9cDF5 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-W9a8MmivsLl9cDF5 .marker.cross{stroke:#333333;}#mermaid-svg-W9a8MmivsLl9cDF5 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-W9a8MmivsLl9cDF5 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-W9a8MmivsLl9cDF5 .cluster-label text{fill:#333;}#mermaid-svg-W9a8MmivsLl9cDF5 .cluster-label span{color:#333;}#mermaid-svg-W9a8MmivsLl9cDF5 .label text,#mermaid-svg-W9a8MmivsLl9cDF5 span{fill:#333;color:#333;}#mermaid-svg-W9a8MmivsLl9cDF5 .node rect,#mermaid-svg-W9a8MmivsLl9cDF5 .node circle,#mermaid-svg-W9a8MmivsLl9cDF5 .node ellipse,#mermaid-svg-W9a8MmivsLl9cDF5 .node polygon,#mermaid-svg-W9a8MmivsLl9cDF5 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-W9a8MmivsLl9cDF5 .node .label{text-align:center;}#mermaid-svg-W9a8MmivsLl9cDF5 .node.clickable{cursor:pointer;}#mermaid-svg-W9a8MmivsLl9cDF5 .arrowheadPath{fill:#333333;}#mermaid-svg-W9a8MmivsLl9cDF5 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-W9a8MmivsLl9cDF5 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-W9a8MmivsLl9cDF5 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-W9a8MmivsLl9cDF5 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-W9a8MmivsLl9cDF5 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-W9a8MmivsLl9cDF5 .cluster text{fill:#333;}#mermaid-svg-W9a8MmivsLl9cDF5 .cluster span{color:#333;}#mermaid-svg-W9a8MmivsLl9cDF5 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-W9a8MmivsLl9cDF5 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2. C设计顺序表部分接口 #includeiostream #includeassert.h #includestdlib.h using namespace std;struct SeqList {int a[10];int size; }; int SLAT(struct SeqList ps, int i) {assert(i ps.size);return (ps.a[i]); } int main() {struct SeqList s;s.size 3;SLAT(s, 0) 10;SLAT(s, 1) 20;SLAT(s, 2) 30;cout SLAT(s, 0) endl;cout SLAT(s, 1) endl;cout SLAT(s, 2) endl;return 0; }#mermaid-svg-WUiNMoHskmyztKss {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-WUiNMoHskmyztKss .error-icon{fill:#552222;}#mermaid-svg-WUiNMoHskmyztKss .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-WUiNMoHskmyztKss .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-WUiNMoHskmyztKss .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-WUiNMoHskmyztKss .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-WUiNMoHskmyztKss .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-WUiNMoHskmyztKss .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-WUiNMoHskmyztKss .marker{fill:#333333;stroke:#333333;}#mermaid-svg-WUiNMoHskmyztKss .marker.cross{stroke:#333333;}#mermaid-svg-WUiNMoHskmyztKss svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-WUiNMoHskmyztKss .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-WUiNMoHskmyztKss .cluster-label text{fill:#333;}#mermaid-svg-WUiNMoHskmyztKss .cluster-label span{color:#333;}#mermaid-svg-WUiNMoHskmyztKss .label text,#mermaid-svg-WUiNMoHskmyztKss span{fill:#333;color:#333;}#mermaid-svg-WUiNMoHskmyztKss .node rect,#mermaid-svg-WUiNMoHskmyztKss .node circle,#mermaid-svg-WUiNMoHskmyztKss .node ellipse,#mermaid-svg-WUiNMoHskmyztKss .node polygon,#mermaid-svg-WUiNMoHskmyztKss .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-WUiNMoHskmyztKss .node .label{text-align:center;}#mermaid-svg-WUiNMoHskmyztKss .node.clickable{cursor:pointer;}#mermaid-svg-WUiNMoHskmyztKss .arrowheadPath{fill:#333333;}#mermaid-svg-WUiNMoHskmyztKss .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-WUiNMoHskmyztKss .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-WUiNMoHskmyztKss .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-WUiNMoHskmyztKss .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-WUiNMoHskmyztKss .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-WUiNMoHskmyztKss .cluster text{fill:#333;}#mermaid-svg-WUiNMoHskmyztKss .cluster span{color:#333;}#mermaid-svg-WUiNMoHskmyztKss div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-WUiNMoHskmyztKss :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 效果演示: 读取i位置减少了拷贝返回此时位置的别名修改i位置数组中第i个位置的值出了作用域肯定还在因为结构体在外面不在函数的栈帧里面所以存在出了作用域不会销毁得到它的别名后通过赋值加加等就会修改如果不用引用返回的就是它的临时拷贝打印是没有问题的修改却是不可以的因为临时对象具有常性不能修改
http://www.hkea.cn/news/14337531/

相关文章:

  • 找人做网站都需要提供什么小程序公司开发
  • 电子商务网站总体规划的内容wordpress 图片缩略图不显示
  • 网站上怎样做下载文档链接cms软件有什么功能
  • 做旅游网站多少钱h5制作企业网站有哪些优势
  • 化妆品网站建设项目计划书wordpress 淘客帝国
  • 京东网站开发费用网站外链建设分析
  • 维护网站要做哪些工作app定做定制开发
  • 辽宁朝阳网站建设公司孟津网站建设
  • 建站展示封面制作
  • 深圳制作网站开发费用百度合伙人官网app
  • 网页制作作业网站领券购买网站是怎么做的
  • 成都电商网站开发网站免费网站的方法
  • 网站制作哪些类型wordpress登陆密码错误
  • 还有哪些网站可以做H5做一网站要什么软件
  • 手机网站弹出层插件有哪些做旧工艺品网站
  • 新安网站开发莱州网站设计
  • 网站推广的定义及方法网站安全维护
  • 视频网站中滑动列表怎么做的百川网站维护
  • 网站的不足之处网页制作教程答案
  • 快速建立平台网站开发网站模板设计vs简单的网站开发
  • wordpress多站点 主题制作网站 公司简介
  • 实验室网站制作ai绘画软件免费
  • 新塘做网站手机自助建站永久免费
  • 南充网站建设工作室成都锦江建设局网站
  • 怀远县建设局门户网站wordpress 归档
  • 网站建设佰首选金手指三腕表手表网站
  • 罗定网站建设淄博网站建设培训
  • 北京网站建设出名 乐云践新设计师网站外网
  • pc网站开发我的个人主页怎么制作
  • 织梦修改网站标题万网域名注册查询