菜鸟成长记录【3】C++学习(一)
C++与C的关系:
C++(C plus plus),见名知意,C++是C的加强版,当然也是很大程度的兼容C的。
C++的新操作:(以下多数是与C对比)
命名空间:
namespace AA
{int n = 0;
}namespace BB
{int n = 8;
}
在定义全局变量时若有两变量名相同就会报错,当加上命名空间后就可以有效防止命名冲突;
当需要使用变量时可用 空间名+作用域符号+变量名
如:AA::n ----------> 0
BB::n ----------> 8
输入输出:
C++中既可以使用原来的 printf、scanf,也可以使用 cout、cin;
cout、cin用法:
cout << "哈哈哈\n"; <------------------> printf("哈哈哈\n");
cin >> a; <------------------> scanf("%(任意格式)",&a);
区别:
当使用printf、scanf时,我们往往需要看看需要什么类型的格式符,而cout、cin不区分这些;
引用:
用法:
数据类型 &新变量名 = 原变量名
int a = 5; int &b = a;
如上:最后a,b的值都为5;
实际上引用的操作就是给变量a的空间起了个别名叫b,两个变量使用的是同一片空间;
函数重载:
假定我需要子函数帮我算加法,那么用C时这样做
int addtwo(int a,int b)//两数和
{return a + b;
}int addthree(int a,int b,int c)//三数和
{return a + b + c;
}
像这样要用同样的功能,但是因为参数个数不同,我就得记下很多种函数名字,鸭梨山大;
在C++中可以这样:
int add(int a,int b)//两数和
{return a+b;
}int add(int a,int b,int c)//三数和
{return a+b+c;
}
虽然在定义时会有多个函数重名,但在编译时会对每个函数重载(根据参数重命名),这样在使用一类功能时仅记住一个函数名即可。
堆区空间的申请与释放:
在C中使用 malloc 与 free, C++中提供 new 和 delete
//申请一个int 的空间
int *p = (int *)malloc(sizeof(int));
free(p);int *p = new int;
delete p;//申请10个int 的空间
int *p = (int *)malloc(sizeof(int) * 10);
free(p);int *p = new int[10];
delete []p;
由上可以看出:使用malloc时需要对申请的空间进行强制类型转换且需要计算空间的大小,new不需要;
菜鸟成长记录【3】C++学习(一)相关推荐
- STM32菜鸟成长记录---系统滴答定时器(systick)应用
1.systick介绍 Systick就是一个定时器而已,只是它放在了NVIC中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断).滴答中断?这里来简单地解释一下.操作系统进行运转的时候 ...
- STM32菜鸟成长记录——移植FreeModbusRTU
本文章用于记录学习RS485及配置Modbus协议 参考博文: FreeModbus移植文章1 FreeModbus移植文章2
- 如何从菜鸟成长为高手!
如何从菜鸟成长为高手!!这的确是一个很难回答的问题,但我总结出了答案:不断学习.积极学习:不断思考.积极思考.肯定会有人问为什么是这么简单的16个字.请往下看. 首先,什么样的人叫菜鸟?本意上是指对电 ...
- 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——第1章 系统•嵌入•硬件 01-01 Welcome on board!...
本节书摘来自异步社区<嵌入式系统开发之道--菜鸟成长日志与项目经理的私房菜>一书中的第1章,第01-01节,作者 邱毅凌,更多章节内容可以访问云栖社区"异步社区"公众号 ...
- 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-04项目范围(Scope)管理...
本节书摘来异步社区<嵌入式系统开发之道--菜鸟成长日志与项目经理的私房菜>一书中的第2章,第2.4节,作者:邱毅凌,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——01-05 基本职能:老鸟也曾是菜鸟...
本节书摘来自异步社区<嵌入式系统开发之道--菜鸟成长日志与项目经理的私房菜>一书中的第1章,第01-05节,作者 邱毅凌,更多章节内容可以访问云栖社区"异步社区"公众号 ...
- 基于JAVA小学生素质成长记录平台计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA小学生素质成长记录平台计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA小学生素质成长记录平台计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S ...
- 一个小白的Thingworx成长记录
一个小白的Thingworx成长记录 这个为开发平台的主界面,在随后的文章中会逐步进行讲解每个部分的功能 Thingworx是什么 对一名开发人员来说,代码是底层,那么Thingworx就是产品,一个 ...
- 计算机毕业设计ssm儿童成长记录与分享系统cc35g系统+程序+源码+lw+远程部署
计算机毕业设计ssm儿童成长记录与分享系统cc35g系统+程序+源码+lw+远程部署 计算机毕业设计ssm儿童成长记录与分享系统cc35g系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B ...
最新文章
- 程序员食品营养(1)-面包基础
- GIS创新实践【实验1】郑州市地图制作与发布
- LeetCode Algorithm 572. 另一棵树的子树
- 【斜率优化】玩具装箱(luogu 3195)
- ArrayList基操
- 前端笔记-JavaScript中放json数组要注意的地方(构造灵活的echarts)
- ssh整合,明明已经导入包,却总是有很多ClassNotFoundException
- 计算机英语句子及翻译,英文的唯美句子带翻译 最火英文句子带翻译
- 深度xp系统插入光盘显示上一张光盘资料解决方法
- Java一组数据,满足数量和求和的最优解
- WARNING: There was an error checking the latest version of pip.
- 2022-2027年中国机动车检测行业发展前景及投资战略咨询报告
- Android添加手机黑名单,手机来电拦截实现详解与Demo,一个不错的练手项目,涵盖Android四大组件。
- CVPR 2022 部分行人重识别
- 百度信息流是什么?哪些行业适合投放百度信息流?
- 计算机高级搜索文章内容,外文信息计算机检索
- Vue3PDF预览(vue3-pdf-app)
- element若依 菜单点击改变背景色
- vivado时序约束
- Android 入门第二讲03-约束布局ConstraintLayout(可视化介绍,Chains链,MATCH_CONSTRAIN,百分比布局,圆形定位,Guideline,Barrier)