c++初学day1(类比C语言进行举例,具体原理等到学到更深层的东西再进行解析)

第一个代码(基本框架)

第一行中 #include<iostream>,是头文件(具体需要看看头文件中包含的内容,在此时因为编译时用的是网上搜的在线编译器,所以只是大概写写自己的理解),相当于C语言中的#include<stdio.h>

第三行中 using namespace std; 这一句的意思要引用一个名为std的命名空间 。命名空间是一个c++中常用的概念。在C语言除标准库外的库会定义有各种各样的关键字,在我们声明变量的时候,我们不能跟这些关键字冲突,否则编译器可能会报错,但是在C++中我们引入了一个叫命名空间的概念,我们可以很好的解决这个问题。

1.1什么是命名空间

命名空间(Namespace)是C++中的一种语言特性,用于将标识符(如变量名、函数名、类名等)组织到逻辑上独立的作用域中。它的主要目的是避免命名冲突,同时提供一种清晰的代码组织方式。简单来说,命名空间可以看作是一个"容器",用来存放代码中的各种标识符。我们常见的int、double、float类型的关键字,处于一个叫std的命名空间里面。

1.2命名空间的定义

对于命名空间的创建,我们需要使用c++中的关键字namespace来进行创建,具体如下:

这里的namespaceName是命名空间的名字,由程序员自己定义,比如:

这里我们定义了一个名为MyNamespace的命名空间,在这个空间里面我定义了一个名为rand的int型变量和doubleNum的double型变量。

1.3命名空间的引用

1.3.1 加命名空间名称及作用域限定符

使用格式 :

命名空间 :: 变量名

举例:

1.3.2 加命名空间名称及作用域限定符

使用格式:

使用using将命名空间中某个成员引入

--->什么是using关键字

using关键字相当于一种引用,它可以将命名空间或者命名空间里面的变量展开,如果说命名空间是一个被墙体包围起来的空间,那么using的作用就是把那座墙拆掉,我们可以直接访问里面的变量,当然我们也可以使用using单一的将命名空间里面的变量单个暴露出来。

举例:

1.3.2 加命名空间名称及作用域限定符

使用格式:

using namespace 命名空间名

举例:

此处的用法即为我们开头写的代码的第三行,这个用法可以直接使用相应命名空间里面的变量、关键字或者参数。

第六、七、九、十行是这个c文件的入口函数,和C语言一样,再次不做过多讲述。

第八行是c++里面的新概念。

其中cout是一个输出流对象,用于向标准输出设备(通常是控制台/在此我理解为终端)输出数据。在此理解如下:

1.cout是一个对象

2.它的作用是把通过 << 输入它的消息显示在屏幕上(具体怎么实现可以暂时不用了解。这就是面向对象的编程好处之一,你可以不需要理解它的内部工作原理,只要知道怎么用就行,在后续深入学习过程中进行理解)。

3.cout<<"hello world\n" 这句语句的含义就是把字符串"hello world"插入到输出流中去,插入之后对象cout 会自动想办法把插入的流显示到屏幕上。,\n"是换行字符,输入之后光标会自动换行.除此之外,还可以写成 cout << "hello world" << endl ; 在这句话中,endl 的作用相当于 "\n" ,区别是 "\n" 必须放在 " " 里面,而 endl 可以直接跟在 << 后面作为换行输出。

4.在输出变量时,一般的写法为:

其中,第十行的关键字 cin 的作用是从终端接受一个数字和一个字符分别给到int型的变量a 和char 型的变量 b 中,比如我们在终端输入 22 和字符 c ,随后用 cout 打印 ,注意在变量输出时直接将 a 单独跟在 << 后面来进行输出,不能将变量跟在 " " 后面,这会引起系统报错,具体原因在学到后续更深入情况下进行解释。

相关推荐
_fairyland2 分钟前
数据结构 力扣 练习
数据结构·考研·算法·leetcode
LIZhang201616 分钟前
基于ffmpeg8.0录制mp4文件
开发语言·c++
Neil今天也要学习21 分钟前
永磁同步电机无速度算法--基于三阶LESO的反电动势观测器
算法·1024程序员节
_OP_CHEN24 分钟前
C++进阶:(九)深度剖析unordered_map 与 unordered_set容器
开发语言·c++·stl容器·哈希表·哈希桶·unordered_map·unordered_set
机器学习之心30 分钟前
NGO-VMD北方苍鹰算法优化变分模态分解+皮尔逊系数+小波阈值降噪+信号重构,MATLAB代码
算法·matlab·重构·信号重构·ngo-vmd·皮尔逊系数·小波阈值降噪
橘颂TA35 分钟前
【剑斩OFFER】算法的暴力美学——山脉数组的蜂顶索引
算法·leetcode·职场和发展·c/c++
速易达网络1 小时前
C语言常见推理题
java·c语言·算法
沪漂的码农1 小时前
C语言队列与链表结合应用完整指南
c语言·链表
freedom_1024_1 小时前
LRU缓存淘汰算法详解与C++实现
c++·算法·缓存
博语小屋1 小时前
力扣11.盛水最多的容器(medium)
算法·leetcode·职场和发展