从C语言到C++的进阶之C++的非类新特性(篇二)
文章目录
- 1、输出输入使用“cout<<”和“cin>>”
- 2、访问外部变量
- 3、从指针到引用
- 4、引用与指针的比较
- 5、返回引用类型的函数
1、输出输入使用“cout<<”和“cin>>”
#include <iostream>
using namespace std;int main(int argc, char* argv[])
{int a;char ss[100];cout << "Input your name:\n";cin >> ss;cout << "Input your age:" << endl; //endl就相当于换行 cin >> a;cout << "Hello, " << ss << "!Your are " << a << " old.";
}
同时,需要包含的库文件是iostream,io代表输入输出,所以iostream就是输入输出流,其中还包含一些其他很基础的输入输出函数:
cin:标准输入istream类对象,cin使我们可以从设备读如数据。
cout;标准输出(standard output)的ostream类对象,cout使我们可以向设备输出或者写数据。
cerr:标准错误(standard error)的osttream类对象,cerr是导出程序错误消息的地方,它只能允许向屏幕设备写数据。
2、访问外部变量
在C++中,即使内部变量和外部变量同名,外部变量仍然能够被访问到,只要在变量名前冠以作用域分辨符“::”:
#include <iostream>
using namespace std;int a = 111;
int main(int argc, char* argv[])
{int a = 314;cout << "Local a= " << a << endl;cout << "Global a= " << ::a << endl;
}
3、从指针到引用
在C++中,可以使用“&”运算符来声明引用另外一个变量,相当于给另个变量起了一个别名(化名)。
#include <iostream>
using namespace std;int main(int argc, char* argv[])
{double a = 1.23456;double &b = a; //给变量a取一个化名(别名)为b,然后就可以通过修改b来修改a的值了 b = 99.9;cout << "a的值为:" << a << endl;
}
对于这样的引用,我们可以把它想象成一个形式上比较漂亮的指针,它的好处在于我们不用担心指针是否被初始化,也不用担心如何获取它的值。
4、引用与指针的比较
(1)在C++用别名(引用)
#include <iostream>
using namespace std;void change(double &a, double b)
{a= 1314;b= 520;
}
int main(int argc, char* argv[])
{double x=1.11, y=2.22;change(x, y);cout << "x的值:" << x << endl;cout << "y的值:" << y << endl;
}
(2)在C++用指针
#include <iostream>
using namespace std;void change2(double *a, double b)
{*a= 1314; //改变指针所指向地址的数 b= 520;
}
int main(int argc, char* argv[])
{double x=1.11, y=2.22;change2(&x, y); //指针传入值需要取址 cout << "x的值:" << x << endl;cout << "y的值:" << y << endl;
}
其结果是与使用引用一样的。
5、返回引用类型的函数
#include <iostream>
using namespace std;int &biggest(int &a, int &b)
{if(a > b) return a; else return b;
}
int main(int argc, char* argv[])
{int k=2, m=9, res;res= biggest(k, m);cout << "The biggest is:" << res << endl;
}
在判断最大值的函数中返回的是引用类型的数据,因此需要用&来定义函数 。
若此时若返回的是一个具体的数字而不是某引用类型数据,那编译器必然就会报错 ,因为返回值和函数类型不对应。
biggest函数若用C语言格式写,则是如下:
int *biggest(int *a, int *b)
{if(*a > *b)return a;elsereturn b;
}
从C语言到C++的进阶之C++的非类新特性(篇二)相关推荐
- 从C语言到C++的进阶之C++的非类新特性(篇三)
文章目录 1.从宏到内联函数 2.函数参数的缺省值 3.C++的常量与引用 4.函数重载 5.new运算和delete运算 1.从宏到内联函数 (1)写一个返回最大值的宏定义(C语言) #includ ...
- 从C语言到C++的进阶之C到C++的转变(篇一)
文章目录 一.C语言到C++语言 1.C语言 2.C++语言 3.C与C++的联系 二.C到C++的明显转变 1.C++的关键字系列 2.函数必列参数 3.指针类型相同才能赋值 4.对struct等封 ...
- 从C语言到C++的进阶之面向对象、using与命名空间(篇四)
文章目录 一.面向过程到面向对象 二.namespace的使用 三.using的用法 一.面向过程到面向对象 1.面向过程编程思想 C语言是典型的面向过程编程语言,面向过程是一种以过程为中心的编程思想 ...
- C++11新特性选讲 语言部分 侯捷
C++11新特性选讲 语言部分 侯捷 本课程分为两个部分:语言的部分和标准库的部分.只谈新特性,并且是选讲. 本文为语言部分笔记. 语言 Variadic Templates move semanti ...
- Scala进阶之路-并发编程模型Akka入门篇
Scala进阶之路-并发编程模型Akka入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Akka Actor介绍 1>.Akka介绍 写并发程序很难.程序员不得不处 ...
- vs2008中C#3.0语言的新特性
看了YJingLee's Blog的文章,收获很大,以下文章转自http://www.cnblogs.com/lyj/archive/2008/01/08/1030525.html 总体来说,Visu ...
- 卷不动也得继续学!紧跟vue3的步伐,再来get一波进阶新特性!
vue3进阶新特性 一.
- c语言将一个已知头结点的单链表逆序_C语言实现常用数据结构:静态链表数组实现(第5篇)...
「今天是学习C语言第 148 天」 纸上学来终觉浅,绝知此事要躬行.-- 陆游「冬夜读书示子聿」 # 静态链表 使用数组实现,利用数组下标代替指针,从而实现数据结点之间的先后关系.实现要点: 1.数组 ...
- JAVA进阶开发之(异常类)
保姆级别的异常类教学(附代码) 目录 1.什么是异常: 2. java语言中异常以什么形式存在的呢? 3.异常对应的现实生活中是怎样的? 4.异常处理机制 5.异常处理的具体方式 6.运行时异常编写程 ...
最新文章
- R语言广义线性模型函数GLM、glm函数构建泊松回归模型、模型中存在过离散(Overdispersion)、则将连接函数从possion函数替换为quasipoisson函数重新构建泊松回归模型
- WinForm界面开发之布局控件WeifenLuo.WinFormsUI.Docking的使用
- 树莓派4直接运行linux,树莓派4最小化安装Linux
- 4行代码AC——L1-038 新世界 (5分)
- pojBuy Tickets2828线段树或者树状数组(队列中倒序插队)
- stack 的优势 - 每天5分钟玩转 Docker 容器技术(113)
- 拆分窗口QSplitter
- 基于Quartz.Net的任务管理平台开发(3) —— 任务管理平台
- Flutter第七期 - 布局总结篇
- java64位安装包下载_java64位安装包
- 前端工作汇报PPT技巧
- 机器学习之聚类——模糊聚类FCM
- linux怎么限制文件大小,Linux文件系统文件大小限制
- ThinkPad T480不拆电脑后盖更换键盘
- 一天完成写出一篇毕业设计论文(2020年版本)
- 是时候放弃循环神经网络了
- python3多线程爬取微博配图相册,可自动获取session【简单,快速】
- STM8S003FP6 TIM4配置
- Android JetPack底部导航Navigation 组件的介绍与使用
- 用标号法求最短路径matlab,标号法求最短路径问题
热门文章
- ionic4 引入外部字体ttf
- 移动端点击链接元素出现蓝色边框或者出现半透明蓝色背景
- linux服务器和客户端配置,Linux基础教程:YUM服务端与客户端配置步骤
- Javascript button onclick和input type button在form中失效解决方案
- c语言开发移动通信,基于ARM的高效C语言编程
- 大屏数据可视化源码_AxureBI数据大屏可视化原型设计软件
- linux中用户 机器名,Python 在linux下获得当前工作目录,主机名,用户名,操作系统平台等信息...
- hpux11.31 环境下如何查看磁盘的WWID( scsimgr lun_map)
- java实验类与对象_【实验课件】上机实践2 类与对象
- linux下怎么创建root,Linux用root账号创建一个新的登录账号的方法