C++语言对C语言的扩充
1.新的数据类型bool
2.新的变量初始化方法,int x(1024);等价于int x = 1024;
3.变量随用随定义
4.IO方法,不用关注占位符,不用关注数据类型,不易出错。下面的几幅图展示了这种区别。
5.命名空间namespace
目的:解决标识符冲突,相当于Java中的package
6.引用类型
1)普通变量的引用
int a = 3;
int &b = a; // 引用必须初始化,且初始化以后不能再改变,其本质是常指针
b = 10;
效果:a与b指向同一块内存空间,a的值变成了10
2)结构体的引用
typedef struct{
int x;
int y;
}Point;
Point p1;
Point &p = p1;
p.x = 10;
p.y = 20;
cout<<p1.x<<p1.y<<endl;
结果:10 20
3)指针类型的引用
int a = 10;
int *p = &a;
int *&q = p;
*q = 20;
cout<<a<<endl;
结果:a = 20
7.const关键字
1)const与基本数据类型
const int x = 3;
x = 5; // 错误,x不可改变
2)const与指针类型
const int *p = NULL;等价于int const *p = NULL;
int *const p =NULL;
此时const还有各种用法,个人感觉这块C++太麻烦了!各大IT公司笔试老是喜欢这么搞!
const char *pc = "abcd"; // 声明指向常量的指针变量pc,它指向一个字符串常量
pc[3] = 'x'; // 不合法
pc = "efgh"; // 合法
char* const pc = "abcd"; // 常指针
pc[3] = 'x'; // 合法
pc = "efgh"; // 不合法
const char* const pc = "abcd"; // 指向常量的常指针
pc[3] = 'x'; // 不合法
pc = "efgh"; // 不合法
3)const与函数形参
const修饰函数形参,用于保证实参在该函数内部不被改动
8.函数新特性
1)函数参数默认值
void fun(int i,int j = 5,int k = 10);
void fun(int i,int j = 5;int k); // 错误
有默认参数值的参数必须在参数表的最右端
2)函数重载
在同一个作用域下,函数名相同,但是参数个数、参数类型或者参数顺序不同的函数之间叫重载
3)内联函数
内联函数关键字:inline
调用时执行代码替换,执行效率高,但是是有条件的
9.内存管理
申请内存用运算符new,释放内存用运算符delete
例:
int *p = new int;
*p = 5; // 可以合在一起,int *p = new int(5);
delete p;
int *arr = new int[10]; // 申请块内存
delete []arr; // 释放块内存
注意:申请内存要判断是否成功,释放内存要设空指针
int *arr = new int[1024];
// 一定要判断一下
if(arr == NULL){
// 分配失败
}else{
delete []arr;
arr = NULL; // 一定要有,否则误操作以后,后果很严重
}
10.提供了字符串处理类string,注意区分于Java中的String类
C++语言对C语言的扩充相关推荐
- R语言可视化斜率图、扩充图像纵横比为数据标签显示更整齐、ggrepel包来帮忙
R语言可视化斜率图.扩充图像纵横比为数据标签显示更整齐.ggrepel包来帮忙 目录
- c语言程序实际问题,《编程解决问题之程序规划语言(c语言)》.doc
<编程解决问题之程序规划语言(c语言)> <编程解决问题之程序设计语言(c语言)> 课程内容介绍: 本课程主要是介绍如何利用c程序设计语言,编写程序,解决实际问题.目的是提高学 ...
- Swift语言指南(一)--语言基础之常量和变量
原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swif ...
- 零基础学C语言(C语言入门)
C语言入门(初识C语言) 初识C语言 前言 什么是C语言 为什么要选择C语言作为学习的第一门语言 一.第一个C语言程序 1.1 #include 1.2 int main() 1.3 printf 1 ...
- 一起学习C语言:C语言数据类型(二)
上一篇<一起学习C语言:C语言数据类型(一)>中,我们了解到"位与字节"的含义,并分析无符号短整形和有符号短整形的运算方式.本篇文章中,我们进行分析二进制到八进制.十六 ...
- c语言是静态语言python语言是脚本语言吗_C语言还是Python语言哪个更好?
最近,很多人问我问题. C语言还是Python,哪个更好?实际上,没有什么好坏之分,而且由于Python的基本逻辑是用C语言实现的,因此它们都有自己的特点.如果您想了解更多信息,建议您先学习C语言,然 ...
- What is 计算机程序语言、C语言?
什么是计算机程序? 所谓程序,就是一组计算机能识别和执行的指令,每一条指令使计算机执行特定的操作,一个特定的指令序列用来完成一定的功能. 计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成: ...
- [Lua语言编程]Lua语言基础知识
文章目录 `Lua` `Lua`语言的起源 `Lua` 特性 `Lua下载` Linux 系统上安装 Mac OS X 系统上安装 Window 系统上安装 `Lua` `Lua`语言语法 `Lua` ...
- c语言表达式3178的值为,【C语言】C语言运算符
c语言 &取地址运算符的理解 对于c语言中的&运算符,百度百科是这样定义的:(&p)则是这样一种运算,返回当时声明p 时开辟的地址:但是根据我对代码的观察,我觉得&am ...
- 多语言php,多语言 · ThinkPHP5.0完全开发手册 · 看云
ThinkPHP内置通过`\think\Lang`类提供多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. ## 开启和加载语言包 默 ...
最新文章
- 如何使用TensorFlow Eager执行训练自己的FaceID ConvNet
- java script中==和===_Java Script与CSS的问题
- CF183D T-shirt
- FlowVisor入门教程
- linux c 内核 warning: the frame size of 1040 bytes is larger than 1024 bytes
- 全球及中国智能交通行业应用方向分析及创新发展战略报告2021版
- H.264中的量化过程
- 【时间序列】时间序列建模的时间戳与时序特征衍生思路
- ES6常用知识总结(20%的知识占80%的份额)
- 前端学习(2584):ant design pro
- C++构造函数/析构函数 设置成private的原因
- shell初学之nginx(负载均衡)
- arctan查表法_DSP正弦波查表法原理
- 计算机控制系统与常规仪表控制系统的主要异同点,计算机控制技术复习资料-20210711112641.doc-原创力文档...
- SSM社区医院卫生所病人患者随访信息管理javaweb网站系统设计与实现
- 直流斩波电路在matlab中的建模与仿真,毕业设计直流斩波电路的MATLAB建模与仿真...
- webpack:Error: Compiling RuleSet failed: Exclamation mark separated loader lists has been removed
- mysql phpmyadmin远程_phpMyAdmin远程连接mysql数据库
- 如何查看当前IP地址
- 未来五年,物联网三大技术发展趋势!
热门文章
- pytest基础知识一
- java毕业生设计学生考勤管理系统计算机源码+系统+mysql+调试部署+lw
- Element-UI框架多个el-input标签并排
- Thinkpad X201拆机清灰
- protoc编译错误
- 淘宝直播技术干货:高清、低延时的实时视频直播技术解密
- 自然语言处理—初始自然语言处理技术—走进自然语言处理
- 缓冲器74HC541D/SN74HC541PWR/74HC541PW/AIP74HC541最新中文资料
- Java基于springboot+vue的眼镜销售购物商城系统 element 前后端分离
- 林子雨-Spark入门教程(Python版)-学习笔记(二)