Hello C++

C++快速入门 (一) Hello C++ 序 这一系列文章是学习C++时的笔记整理而来, 当时主要参阅的是 《C++ Primer》,《Exceptional C++》《C++ Common Knowledge: Essential Intermediate Programming 》这几本书,推荐阅读。其中《C++ Primer》有条件的尽量看英文版,中文版的翻译个人感觉很绕。 本系列文章主要是对C++语法介绍,还有一些涉及底层 阅读详情

一、Hello World

今天开始学习C++,我们仍然开始从hello world开始。

在这里插入图片描述

在这里插入图片描述

C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。

  1. 补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用域方面、IO方面、函数方面、指针方面、宏方面等。
    2.为后续类和对象学习打基础。

二、C++入门

1.C++关键字

C++总计63个关键字,C语言32个关键字。
在这里插入图片描述
这里我们简单认识即可,后面会学习部分关键字。

三、输入和输出

1.cout和endl
#include <iostream>
using namespace std;
int main()
{
	cout << "hello world" << endl;

	return 0;
}

在这里插入图片描述
cout是流提取操作符,对应的,也有流插入操作符cin。你可以理解为它们就相当于是C++中的printf和scanf

这里出现的endl是“end of line”的缩写,结束一行,相当于C语言中的\n

因为C++的编译器是完成兼容C语言的,所以你可以用"\n"来替换endl。

2.头文件

在使用cout 、 cin 、 endl的时候必须包含头文件iosream和std标准命名空间。
在这里插入图片描述
在cplusplus网站上可以看出,iostream是一个标准输入输出流的库。

3.优点

在C语言的输入输出中,我们常常要用%d、%c、%f等格式控制字符来输入输出。而C++中我们的cout、cin会自行判断它们的类型。
同时我们也可以连续的输入输出多个数据。
在这里插入图片描述

4.浮点数默认保留5位

在C++中,浮点数默认保留前五位,而C语言是前六位。
在这里插入图片描述
如果我们要控制输出的格式,我们直接使用C语言中的printf和.2f即可,因为C++是兼容C语言的,而C++的控制格式比较麻烦,我们作为初学者,使用C语言的方法即可。

三、命名空间

相比大家已经看到刚刚的输入输出用有这样一句代码

using namespace std;

这是前面已经提到的std标准命名空间。

1.含义

在main函数中如果出现了相同的名字的参数,则编译器会报错。

int main()
{
	float a = 3.1415926;
	int a = 0;
	return 0;
}

在这里插入图片描述

区别这两个参数,就是命名空间要做的。

在大型工程中,写出相同命名的参数十分常见,而命名空间可以解决因为名字相同引发的冲突。

2.设置一个命名空间
#include <iostream>
using namespace std;

namespace 
{
	double a = 3.1415926;
}

int main()
{
	int a = 0;
	return 0;
}

在这里插入图片描述
可以看到程序已经不会编译报错了。

在这里插入图片描述
程序中打印的也是int a,那我们想用double a该怎么办呢?

在这里插入图片描述
我们在变量名前加上命名空间的名字+“ : :”即可。

我们也可以通过using namespace test。来打开这个命名空间中所有东西。

但是这样不太好,我们在接下来会讲解。

如果你写了两个相同名字的命名空间,编译器会把它们合并。

3.命名空间的嵌套定义
#include <iostream>
using namespace std;

namespace test
{
	double a = 3.1415926;
	namespace test2
	{
		int b = 1;
	}
}

int main()
{
	int a = 0;
	cout << a << endl;
	cout << test::a << endl;
	cout << test::test2::b << endl;
	return 0;
}

在这里插入图片描述
命名空间和C语言的结构体十分相似,是可以嵌套定义的。

使用时也可以像上面那样这使用。

4.全部展开的弊端
1.和库的冲突

在这里插入图片描述
我们全部展开命名空间test,编译以上程序。

我们发现会编译报错,这就是全部展开的一个缺点。

因为我们定义的rand和库stdlib.h中的生成随机数的rand命名重复,现在编译器不知道,我们想用的rand到底是哪一个。

在这里插入图片描述

这时候我们就应该单独调用命名空间里的rand变量。

或者

using test::a;

在这里插入图片描述

2.和其他命名空间的冲突

在这里插入图片描述
所以在很多时候,尽量使用::单独展开某一个变量,而不是展开整个命名空间。

以上的命名空间冲突,我们称为命名空间污染。

同时,我们在定义变量时不用关键字和库函数名作为变量名。

四、缺省参数

缺省参数是函数在定义的时候,给指定的参数一个默认值,如果没有指定实参,就会使用这个默认值。

在这里插入图片描述
在传参时,我们也可以只传一个参数。

在这里插入图片描述

但是,我们只能给a穿单个参数,不能只给b传参。

在这里插入图片描述

1.全缺省和半缺省

像上面的那样,所有形参都定义了缺省值的叫全缺省。

函数中只有一部分设置了缺省值的叫做半缺省。

设置缺省参数的时候,必须从右往左设置,不能出现中间空一个的情况。

全缺省

全缺省中,我们可以不传、传一个、传两个或者三个。
在这里插入图片描述

但是隔着传是不允许的。
在这里插入图片描述

半缺省

半缺省中,像下面的代码我们至少要传一个实参。

在这里插入图片描述
半缺省可以是以下形式。

int add(int a, int b = 2, int c = 200);
int add(int a, int b, int c = 200);

和全缺省同样的,不可以是

int add(int a = 100, int b , int c = 200);

因为这种情况会出现歧义,编译器不知道你的参数是给b还是给a。

2.缺省参数的应用

我们在初始化一个顺序表时,我们可以使用缺省参数来控制顺序表开辟的默认空间大小。

这样就避免了单一默认长度导致的多次扩容(realloc扩容是有性能浪费的!)

在这里插入图片描述
缺省参数是只有C++才支持的函数定义方式,这也是C++比C语言更优的体现。

C++基础概念——Hello Cpp! 1 C++程序编写步骤 编写C++程序主要分为4个步骤,IDE以Microsoft Visual Studio 2019(Community版本)为例: 创建项目:创建新项目-空项目-配置项目名称和路径; 创建文件:右键源文件-添加-新建项; 编写代码:在创建的.cpp源文件中编写C++代码; 运行程序:标签栏-点击“本地Windows调试器”,编译运行编写的C++源程序。 2 注释 作用:在代码中添加解释和说明的文字,便于阅读和理解代码。 注释的两种格式 (1)单行注释:// 注释内容 通常使用在某行 阅读详情

相关推荐

【信奥赛·计算机基础】CSP-J 你的第一个C++程序,用Hello World 打开 C++ 的大门

在程序员的世界里,有一个至理名言,不管你学哪个语言,你的第一个程序。一定是输出Hello World,咱们学 C++ 也不例外,通过 Hello World 我们能快速的感受这个语言的结构,以及如何编译、如何运行,学会了这些,再学其他的内容,就非常的简单了。

大事龙 881

C++ 第一节(篇) Hello C++

cout输出(代码)是cout"... ..."在C++中,使用cout连续使用两次"

FFFF_M66的博客 631

1. C++知识点之Hello World!

C++之Hello Cpp!——这是我的第一篇博客,主要介绍了Dev C++的下载安装和使用,带大家编写第一个程序“Hello Cpp!”,这也是程序员入门一个语言的经典程序,今后我会每天写一篇博客,每篇写一个知识点,我的文章主要面向初学者,当然如果你遇到的问题正好我的文章讲到了,这是我的荣幸。欢迎感兴趣的小伙伴留言、关注!也希望有所成的大佬批评指正!

天鹏不是八戒 669

C++从入门到放弃之:Hello.cpp

C++ 从入门到放弃Hello.cpp1. 创建c++程序源代码2. C++程序的编译3. C++扩展名4. C++头文件5. C++输入输出流 Hello.cpp 1. 创建c++程序源代码 vim hello.cpp #include <iostream> int main(void){ std::cout << "hello world" << std::endl; return 0; } 2. C++程序的编译 预处理 编译: 检查语法 汇编:

34hz 1545

一、HELLO,C++

HELLO,C++ —— 初识C++ & 运算符

PanDaoxi 493

c++输出Hello world

Hello world,编程史上里程碑的表现,关于它的由来可以看这篇文章:你知道Hello World程序的由来吗?_WWWWWWWWolf的博客-优快云博客 下面介绍一下它的几种c++实现方式 cin cout 使用流输入,如果用函数的话,主程序只要一行,如下面 #include<bits/stdc++.h> using namespace std; void hello(){ cout<<"Hello world!\n"; } main() { hello();

SB202211的博客 5117

Ubuntu下用C++写的Hello World

最近终于抽出身来写点代码了,我想挑战一下自己,退休前把Linux下的软件开发系统学习一下,亲自动手搞点东西出来。有同事心疼我,劝我有些环节没必要浪费时间,可以委托其他同事代劳。但这不是我的习惯,这辈子自力更生惯了,既然想动手做点开发,各个环节我肯定要自己亲自做一遍。 在Ubuntu 18环境下安装上 GCC,在自己的移动硬盘上建了个hello文件夹,写了一个 hello.cpp 程序: #include <iostream> using namespace std; int main() {

程序猿视角 1221

C++ :输出 Hello, World

好了初级代码讲完了,接下来是高级代码(其实也不怎么高级),要想了解高级代码的语句的意思,请务必懂得自定义函数、递归、队列、结构体、字符串、ASCLL码。输出:Hello, World!是C++ 和很多编程语言的最简单、基本的程序。目前为止,cout 的用法已经讲完了(其实还有很多,只是这里用不到了)此代码可以输出一个数字 1 ,可是我们要输出的东西不是数字,怎么办?好了,Hello, World!此代码纯属原创,可以用来把人整懵。此代码可以输出一段乱七八糟的东西。现在,我们来写一下这个程序。......

小天狼星_布莱克 的博客 1万+

VScode 运行C++ (经典hello world!)

4.按下ctrl+shift+p,然后输入>C/C++1.安装 mingw64,路径F:/mingw64。6.运行出来了第一个hello world!2.vscode安装插件。

呵呵哒!的博客 920

【001】C++的第一个程序Hello World

C++的第一个程序Hello World是一个简单的输出语句,可以用来测试编译器是否正常工作。这个程序的作用是向屏幕输出“Hello World!”这个字符串。C++的第一个程序Hello World是一个简单但必要的程序,它确保了C++编译器的正确性和可用性,并为以后进一步学习和开发程序做好了铺垫。C++的第一个程序Hello World程序的代码分为两部分:头文件和主函数。头文件< iostream >包含了C++输入输出库中的标准输入输出对象和函数的声明。

Lion_Long的博客 1708

C++中的“Hello, World!”:多种输出方法的探索

本文还有配套的精品资源,点击获取 简介:本文将介绍在C++编程语言中输出“Hello, World!”的几种不同方式。首先,使用传统的 std::cout 进行基本输出,并解释其工作原理。然后,通过字符数组逐个输出,接着演示使用字符串拼接输出。最后,展示如何通过字符串操作来绘制简单的字符图案。这些示例不仅用于教学C++的输出功能,也展示了编程语言的灵活性和创造...

weixin_42590539的博客 4102

始动:hello world-cpp

 开场使用了一个日文形式的标题,因为个人是个日漫迷啊,哈哈哈。我在长期憋大招之后,终于走上了CPP的学习之路。今天新入的poker2也刚刚到到手,兴奋地正式开启了C++的学习之路,这个博客是遵从某前辈的指示,用于记录学习历程的。同时也希望日后能够以此为戒,勿忘初心,能够坚持将这条路走下去。今天主要还是初步接触了C++在VS中的应用,小小的写了一个“hello world-cpp“,说实话这也

Kuroij 470

VSCode中使用CMake构建C++ “Hello World“ 教程

Visual Studio Code(简称VScode)是一款由微软开发的免费、开源且功能强大的代码编辑器。它支持跨平台使用,能够在Windows、macOS以及Linux操作系统上运行。VScode的界面布局简洁,用户可以自定义主题和快捷键,提高开发效率。其扩展市场十分丰富,涵盖从代码美化、版本控制到特定语言支持等多种功能,使得VScode能适应各种开发场景。在本章,我们将从VScode的安装开始,逐步探讨其核心功能和界面布局。

weixin_35671843的博客 1778

C++的Hello World

C++的Hello World C语言学得很仓促,就开始贸然接触C++,导致后面的内容不能够很好的掌握。现在决定放下一些东西,重新从头开始回顾C++。 我选择的编译器是C-free5.0,因为用的时间长了,也不愿意换了。 按照惯例,每个程序员学习一种新的语言,总是要写的第一个程序是Hello World! 以下是代码: #include using namespace std; int mai...

Lemon_Yark的博客 2068

IS-IS协议深度解析(二):LSDB同步机制与骨干网实战部署

本文深度解析IS-IS协议的LSDB同步机制与骨干网实战部署。详细阐述了DIS角色如何通过CSNP/PSNP报文高效管理链路状态数据库同步,并与OSPF DR机制进行对比。重点介绍了Level-2骨干网作为逻辑高速公路系统的工作原理,以及通过ATT比特位实现跨区域路由的自动化。最后提供了高可靠性骨干网的实战配置要点与验证方法。

kite3的博客 643

手把手教学|用飞书+扣子工作流实现自动化批量图片生成,效率提升99%!体验完整操作流程

在先前的文章中,我们已经深入探讨了扣子智能体的多种应用场景,以及如何创建和使用工作流进行高效管理。本文将引领大家通过一个具体案例,将扣子的工作流功能嵌入飞书应用中,实现操作的自动化与高效化。

weixin_66485800的博客 6028

C/Cpp 中 Hello World 的前世今生

在程序界,似乎有一个不成文的规定,不管是学啥,都要先写一个 Hello world, 要是写成功了,那就证明,你对这个东西已经了解了大半;要是失败了,那就得继续加油。 那么在 C/Cpp 世界里,一个 Hello World 的程序,究竟是如何把我们写的那三两行代码转变成一个输出呢?这里面代码是如何转化的,又是如何被搞成一个可执行文件,系统又是如何调用这个程序的呢? 书中总是告诉我们,一段代码...

卖鱼的小白菜的专栏 626

寒假实训笔记day01——认识M4单片机之STM32F405RGT6

认识M4单片机之STM32F405RGT6(含义、规格、参数)

weixin_47200070的博客 8550

c++编译hello初步

1.c++代码hello.cpp #include&lt;iostream&gt; using namespace std; int main(){ cout &lt;&lt; "hello world" &lt;&lt; endl; return 0; } 2.编译 g++ -o hello hello.cpp 编译后生成hello可执行文件 3.执行 ./...

何超杰的博客 5424

python实现语音信号的分帧、加窗、预处理

语音信号实现分帧、加窗、预处理音频文件读取预加重分帧加窗 音频文件读取 librosa是非常强大的python语音信号处理库。 读取音频: 使用语句librosa.load(path, sr=22050, mono=True, offset=0.0, duration=None)读取音频文件,默认的采样率是22050,若要保留音频的原始采样率,使用sr=None。 其中: path:表示音频文件的路径 sr:表示采样率 mono:bool,是布尔类型,表示是否将信号转换为单声道 offset:float,后

weixin_45272908的博客 1万+

局域网ip冲突检测工具_python 小工具实现 windows笔记本与 ipad数据互传

宅在家没事的时候就开始琢磨ipad的进阶使用,由于没有mac无法隔空投送,ipad与windows的数据交互表现极差,所以设计了这个ftp小工具。当然,这个工具不仅仅能用于windows与ipad,还可以用于局域网任意两台设备之间程序源码与下载见文章末尾使用说明windows端:biubiubiu.exeipad端: appsotre下载 FE文件管理器windows端操作在c盘下创建ftp目录...

weixin_39866265的博客 4435

c++的Hello World!

C++语言的标准库文件,文件名的末尾不带.h,iostream用于标准输入输出头文件,C语言的相关头文件还可以继续使用。为了统一命名风格,C++为C语言重定义了不带.h标准库头文件,例如:stdio.h重定义了cstdio。cout和cin可以自动识别数据类型,但输入输出复杂格式的数据时,没有printf和scanf好用。cout << 要输出的数据 << endl,多个数据用<<隔开。printf和scanf还可以继续使用,但需要包含相关的头文件。自定义的头文件,还可以继续以.h结尾。

zzt_is_me的博客 488

【精品5万字图文详解】特征平台建设方案与最佳实践

关键词:特征工程、特征平台、特征存储、特征服务、机器学习、数据工程摘要:本文全面介绍了特征平台的建设方案与最佳实践,从特征工程的基本概念出发,深入剖析了特征平台的核心组件、架构设计和实现方法。文章通过生动的类比和实例,使读者能够轻松理解特征工程的重要性及特征平台如何解决企业在机器学习过程中面临的数据管理挑战。同时,详细探讨了主流开源特征平台的对比分析、系统设计要点、实际落地案例以及未来发展趋势,为企业构建高效特征平台提供了全面的指导和参考。想象一下,小明是一位热爱烹饪的小学生。有一天,他想做一道美味的菜肴送

AI天才研究院 952

hello,world C++

C++ 基础认识c++一个简单的C++程序 认识c++ C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。(注:抄袭菜鸟教程简介) 一个简单的C++程序 #include <iostream> using namespace std; int main() { cout << "hello, world!" <<endl; return 0

qq_34262886的博客 331

PyCharm 配置 Anaconda 环境时找不到 python.exe 的解决办法

通过本文的排查步骤与详细解决方案,你应该能够迅速定位并修复 PyCharm 配置 Anaconda 环境时找不到 python.exe 的问题。确保正确设置环境路径、激活目标环境以及手动指定解释器路径是解决此问题的关键。随着开发工具与包管理器的不断更新,类似的问题可能会出现新的变体。持续关注官方文档、社区讨论和版本更新,可以帮助开发者及时适应新变化,并优化工作流程。希望本文提供的分析和代码示例能为你的开发环境配置带来帮助,让你在 PyCharm 与 Anaconda 的高效协同下,专注于创新与代码实现。

s13596191285的博客 3115

药物吸收仿真软件:Caco-2_(9).Caco-2模型在药物开发中的案例分析

通过以上五个案例,我们可以看到Caco-2模型在药物开发中的重要作用。它不仅能够帮助我们预测药物的肠道吸收情况,还能够用于优化药物配方、评估代谢稳定性、研究药物相互作用以及转运蛋白的影响。这些体外实验和仿真分析的结果为药物的进一步临床研究提供了重要的参考依据,有助于缩短药物开发周期,提高研发效率。

kkchenjj的博客 863
上一篇: 数据结构之队列
下一篇: C++入门
沉着冷静2024
博客等级 码龄5年 669粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值