| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 【c++】c++核心编程(1) -> 正文阅读 |
|
[C++知识库]【c++】c++核心编程(1) |
目录 主要针对面向对象编程技巧 面向对象程序设计:以类为基本单位组织编写程序 面向过程程序设计:以函数/过程为基本单位组织编写程序 1.1内存分区模型内存分为4个区域:
1.1.1程序运行前 代码区:存放CPU执行的机器指令(二进制代码) (特点)代码区是共享的,目的是对于频繁被执行的程序,内存中只有一份代码。 ? ? ? ? ? ? ? 代码区是只读的,目的是防止程序意外被修改了它的指令。 全局区:(特点)该区域的数据在程序运行完后由操作系统释放
在一个函数体内就叫局部变量,在一个函数体外就叫全局变量 由上述代码可知:局部常量(const修饰的局部变量)和局部变量不属于全局区; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?全局变量、静态变量、常量(字符串常量、全局常量)属于全局区。 1.1.2程序运行后 栈区:由编译器自动分配和释放 注意:不要返回局部变量的地址
代码运行如下: 可以发现两个一样的代码,输出的*p的值却不一样,这是为什么? ?栈区的数据在程序执行完后就会自动释放,第一次还会打印正确的是因为编译器做了保留。 堆区:由程序员分配释放,程序结束时由操作系统回收 利用new可以将数据开辟到堆区
代码运行如下: ? 1.1.3new操作符 new一个数据,则会返回该数据类型的地址,如果想释放堆区的数据,需要利用关键字delete。 如修改如下:
堆区开辟数组: 释放数组需要加[]
1.2引用用途:给变量起别名 语法:数据类型 &别名=原名
代码运行如下: ? 注意:
传参时,可以利用引用让形参修饰实参
代码运行发现a,b发生了交换,所以引用传递形参改变实参也会发生改变。 注意:
引用的本质:在c++内部实现是一个指针常量 如下: 常量引用? 作用:主要用来修饰形参,防止误操作(引用修饰后,形参改变了实参就会改变) eg:int &ref=10;//错? ? 引用需要一个合法的存储空间 const int&ref=10;//加上const之后,编译器将代码修改为int temp=10;int &ref=temp并且ref是不可以修改的 1.3函数提高1.3.1函数默认参数 语法:返回值类型 函数名(参数=默认值){} 要是我们自己传入参数就用我们自己传入的,要是没有传就用默认的。 注意:1、如果某个位置有默认值,则从这个位置开始往右都要有默认值。 ? ? ? ? ? ?2、函数的声明和实现只能有一个含默认参数。
1.3.2函数占位参数 语法:返回值类型 函数名 (数据类型){} 占位参数必须填补,占位参数中还可以有默认参数
1.3.3函数重载 就是让函数名相同,提高复用性。 函数重载满足条件:
注意:函数的返回值不可以做函数重载的条件 eg:一个为void fun(int a,int b)一个为int fun(int a,int b)//错? ? 两个都可以被调用 函数重载的注意事项:
引用作为重载的条件
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:04:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |