语句“cout<<"Hello!"<<endl;“的作用是输出字符串Hello和换行符到屏幕,下面详解这句话!

cout是标准库iostream中的定义好的一个对象(如果你不知道啥叫对象,请参考C++的相关书籍,我这里给大家提供一本我认为比较好的C++学习书籍:PDF电子档链接:百度网盘 请输入提取码 密码:xawx),这个cout对象用于将字符数字等显示到屏幕上。cout与<<配合使用就能将字符数字等显示到屏幕上。
那么为cout与<<为啥能这样配合呢?下面就对这个问题解释~
我们不去探究具体的实现过程,我们只从编译器对“cout<<”的认识角度去说明这个问题!在认识这个问题前我们首先看下我们的C++编译器对“+”是怎么实现的?
在C++中的任何运算都是通过函数来实现的,比如说,1+2,编译器会自动将这个表达式解释为:operator+(1,2);
接着再找一下有没有以operator+(int,int)为原型的函数,由于c++已经定义了一个这样的函数,因此会自动调用该函数,然后再将1和2当参数传递进去。同样如果执行浮点数的加法运算4.5+5.6,则也是调用该函数operator+(4.5,5.6);,只是传递的参数类型不同,因而通过重载函数实现了整型和浮点型的参数传递。【PS:如果你不知道什么叫重载函数,可以参看文章:C++函数重载详解_C语言中文网,函数重载可是c++的一个非常重要的基础,不懂这个完全没法看懂好的c++代码】
同理,对于++运算符,比如++i,系统会自动调用operator++(),参数就是i;在C++中由于多了个对象的念,为了便于大家对程序的书写,所以规定,对象名的前面和后面跟一个操作符等于“对象.操作符”,如果a是一个对象,那么a++或++a等价于a.++再等价于a.operator++(),即相当于调用了a对象中的一个方法函数opeartor++()。再同理,cout<<"Hello!"等价于cout.operator<<( Hello!)。说到这里,大家肯定还是不明白语句“cout<<"Hello!"<<endl;”中“<<endl”为什么可以直接跟在cout<<"Hello!"的后面? 
要说明这个问题,我们其实看下表达式1+2+3;就可以理解了,+3不是直接跟在1+2的后面么,而且这个表达示我们都用烂了,根本没啥问题。所以同理我们对于符号<<可以写出这样的形式1<<2<<3;,所以相同的形式有cout<<"Hello!"<<endl;这样就理解了这种写法了撒!这句话程序编译后运行的顺序时先运行cout<<"Hello!"{即cout.opeartor++( Hello!))},再运行cout<<endl{即cout.opeartor++( endl))}。既然说到这里了,那顺便说下endl是什么东东?它的作用就是“向缓冲区插入换行符号并刷新,将内容写入输出设备”!
至于cout.operator<<( Hello!)具体和cout.opeartor++( endl))是怎么样实现将字符显示到屏幕上的,我们就不用操心了,这就是人家给我们一个封装好的对象,就没必要考虑那么多了。

详解让人闹心的C++语句 cout<<“Hello“<<endl;相关推荐

  1. Oracle一张表写多个触发器,详解oracle中通过触发器记录每个语句影响总行数

    详解oracle中通过触发器记录每个语句影响总行数 需求产生: 业务系统中,有一步"抽数"流程,就是把一些数据从其它服务器同步到本库的目标表.这个过程有可能 多人同时抽数,互相影响 ...

  2. 闹钟应用盘点: 闹人闹心应用 总有一款适合你

    随着智能手机的出现,各式各样的闹钟应用层出不穷,很多人已经不再局限于手机里自带的单调呆板的闹钟功能,转而寻求各种风格各异的闹钟应用来催自己起床.一日之计在于晨,有多少人早上喜欢睡懒觉而必须要闹钟给你叫 ...

  3. 如何获取如何获取datagrid复选框的值_火影忍者博人传木叶丸获取方法详解 博人传木叶丸如何获取...

    火影忍者手游博人传木叶丸如何获取,相信很多玩家都不是很了解,那么具体的获取方法是什么呢,同时技能强度如何呢,下面小编给大家带来了详细的攻略内容,一起来看看吧. 火影忍者手游博人传木叶丸获取方法 距离策 ...

  4. 详解~前端人需要了解的DevOps

    点击上方关注 前端技术江湖,一起学习,天天进步 你知道的越多,不知道的就越多,业余的像一棵小草! 成功路上并不拥挤,因为坚持的人不多. DevOps 日渐成为研发人员耳熟能详的一个组合词,但什么是 D ...

  5. 老鼠出迷宫详解(人人能搞懂)

    常见问题: 小伙伴们在第一次遇到该问题时,思路大家都能清楚,就是遇到走不通的时候就换方向走,但是却不知道代码是如何走的. 解决问题: 代码如下: public static void main(Str ...

  6. 史上最简单MySQL教程详解(基础篇)之SQL语句以及预留关键字介绍

    SQL简单介绍 数据操作语句 (Data Manipulation Language,DML) 数据定义语句 (Data Definition Language ,DDL) 数据控制语句 (Data ...

  7. 详解MySQL的逻辑架构和SQL语句执行流程

    文章目录 1. 逻辑架构 1.1 连接层 1.2 服务层 1.3 引擎层 1.3.1 InnoDB 存储引擎 1.3.2 MyISAM 存储引擎 1.3.3 其他存储引擎 1.4 存储层 3. SQL ...

  8. 详解大中小数据常用数据库的SQL语句、函数以及常见优化

    本篇文章主要介绍目前我在目前项目中使用过的一些数据库的用法,像中小型数据常用的关系型数据库Sql Server,大数据常用的数据库Hive,Hbase. 文章目录 SQL 你必须知道的 SQL网站 关 ...

  9. 远心光学成像系统原理详解

    目录 1 预备知识 1.1 光阑的概念 1.2 孔径光阑.入射光瞳.出射光瞳 1.3 主光线 1.4 光学系统的景深 1.5 远心光学系统 2 远心镜头详解 2.1 远心镜头分类 2.2 远心镜头的特 ...

最新文章

  1. 易邮邮箱服务器的安装和配置
  2. 爱国者首款手机正式上市 零售价不超2000元
  3. 大学中计算机考查课不及格怎么办,大学体测不及格怎么办 有哪些补救方法
  4. [leetcode] 935 Knight Dialer 骑士拨号器
  5. UML之独孤九剑总纲
  6. GNSS/INS组合导航(1)-- 姿态矩阵
  7. ADF 入门教程(1)
  8. 【图论训练】天气晴朗的魔法【最小生成树】
  9. A beginning Flags
  10. SAP 如何在选择画面中显示图片 <转载> cl_gui_docking_container
  11. vue 获取当年当前季度
  12. Detail information about Withholding Tax in SAP
  13. 计算机二级mysql考试经验分享(2021年3月)
  14. 大数据的后台分析模式
  15. 2023年美赛完整介绍
  16. SQL 语句如何保留两位小数
  17. Linux kernel可设置参数说明(sysctl.conf)
  18. 软件测试用例设计方法-因果图法
  19. Java——final关键字,String为什么不可变
  20. 风火全区维护结束 商城第一版新春上线

热门文章

  1. 用python画花瓣-Python教程:使用Turtles画出带有花瓣的花
  2. python装饰器函数-python函数装饰器
  3. python3.6安装opencv-python3.6.5安装opencv3
  4. 怎样学好python-零基础如何学好Python?
  5. python编程难吗-Python、C+这些编程语言难吗?十岁女孩告诉你答案
  6. python语言程序设计梁勇-Python语言程序设计(美-梁勇)第1章习题解答
  7. python导入txt文件并绘图-Python实现读取txt文件并画三维图简单代码示例
  8. python降级-关于卸载:如何从Python 3.2降级到2.7?
  9. 用PIL读取保存图片错误 :OSError: cannot write mode RGBA as JPEG
  10. LA4238 Area of Polycubes(立方体的表面积)