C++初阶学习第一弹——C++入门(上)

news/2024/5/24 12:51:30/ 标签: c++, 学习, 开发语言

前言:

很高兴,从今天开始,我们就要步入C++的学习了,在这之前我们已经对C语言有了不错的了解,对数据结构也有了一些自己的认识,今天开始,我们就进入这个新的主题的学习——C++

目录

一、C++的发展即其特点

二、C++的基本语法

1、C++的关键字

2、命名空间

2.1 命名空间的定义

2.1 命名空间的使用

3、C++的输入输出

4、缺省参数

4.1 什么是缺省参数

4.2 缺省参数的几种类型

三、总结


一、C++的发展即其特点

C++是贝尔实验室在1979年开发出来的,它是在C语言的基础上开发出来的一门新的计算机语言,所以它有着C语言的一些特点,同时又有许多创新的地方,简单来说,C语言是面向过程的,而C++则是面向对象的,C++的实现在很多时候是要比C语言方便很多的

今天,我们就先来浅浅学习一下C++的一些基本用法

二、C++的基本语法

1、C++的关键字

C++是在C语言的基础上发展而来的,它是完全兼容C语言的,也就是说,你在一个cpp文件里,写一个C语言的代码还是可以正常运行的,但作为一个更先进的语言它又有了一些创新,下面我们给出它的关键字,暂时先不做讲解,等以后遇到再慢慢学习

从这张表格中我们就可以看出,C语言的关键字在C++中还是全部适用的

2、命名空间

 C语言的使用上还有一个很大的不利,就是命名空间上,因为它命名的变量一般都是全局变量,就让许多方面变的极为不利

比如,当处理一个大型项目时,我们一般会让多个小组分工实现,每个小组写一段代码,然后再整合到一起,但这就容易导致一个现象出现,那就是命名冲突,可能不同的小组对不同的变量命名了同一个名,然后导致程序不能运行,还要后期继续去改进,这样就很麻烦,所以我们C++就有了命名空间这个概念出现,用来解决这个问题

2.1 命名空间的定义

定义命名空间需要用到一个关键字:namespace

具体做法:在namespace后面加上{ },然后在里面定义变量

namespace zwt   //后面这个可以自定义名字,随便即可
{//命名空间中可以定义变量/函数/类型int a=0;int b=1;int Add(int x, int y){return x + y;}struct Stack{int* c;int capacity;};
}

比较有趣的是,我们可以同时命名多个相同名字的空间,最后这些命名空间中的对象会进行整合,相当于命名在同一个空间中

2.1 命名空间的使用

命名空间的使用有三种方法:

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

int main()
{printf("%d", zwt::a);return 0;
}

2、使用 using 将命名空间中某个成员引入
//2、使用using将命名空间中某个成员引入
using zwt::a;
int main()
{printf("%d\n", a);printf("%d\n", zwt::b);return 0;
}

3、使用using namespace 命名空间名称 引入

//3、使用using namespace 命名空间名称 引入
using namespace zwt;
int main()
{printf("%d\n", a);printf("%d\n", b);return 0;
}

3、C++的输入输出

C++的输入输出与C语言也有很大不同,C++的输入输出函数是定义在std命名空间中的,为了方便,我们一般会在用之前就用using进行展开,下面我们直接通过一段代码来看

#include<iostream>   //C++输入输出所需的头文件
using namespace std;
int main()
{int a = 0;//C++输入函数为cincin >> a;//C++输出函数coutcout << a << endl;return 0;
}

运行结果:

4、缺省参数

4.1 什么是缺省参数

缺省参数就是在函数声明和定义的时候,直接给形参赋一定的值,然后在调用这个参数的时候,就可以不用传参或者传部分参数,比如:

void Func(int a = 10, int b = 20)
{cout << a << endl;cout << b << endl;
}
int main()
{Func();Func(1, 2);return 0;
}

代码中的这两种调用方式都是没问题的,只是输出结果不同,下面我们就来详细讲解一下这几种调用的区别

4.2 缺省参数的几种类型
全缺省参数
void Func(int a = 10, int b = 20)
{cout << a << endl;cout << b << endl;
}
int main()
{Func();return 0;
}

半缺省参数
void Func(int a = 10, int b = 20)
{cout << a << endl;cout << b << endl;
}
int main()
{Func(1,2);Func(1);return 0;
}

缺省参数注意事项:

1、缺省参数必须依次给出,不能间隔给出

2、缺省参数声明和定义不能分开,尤其是不能分开在两个文件中

3、缺省参数必须是常量或者全局变量

4、缺省参数在C语言中不支持

三、总结

以上就是我们对C++的初步讲解,讲解内容并不多,意在让大家慢慢接受理解,接下来我们就会慢慢扩大知识面,在以后会有更多有趣的知识点等着我们去学习,继续前进吧

创作不易,还请各位大佬点赞支持一下!!!


http://www.ppmy.cn/news/1424588.html

相关文章

AI大模型之路 第二篇: Word2Vec介绍

你好&#xff0c;我是郭震 今天我来总结大模型第二篇&#xff0c;word2vec&#xff0c;它是大模型的根基&#xff0c;一切NLP都会用到它。 Word2Vec Word2Vec 是一种流行的自然语言处理&#xff08;NLP&#xff09;工具&#xff0c;它通过将词汇表中的每个单词转换成一个独特的…

探索人工智能绘图的奇妙世界

探索人工智能绘图的奇妙世界 人工智能绘图的基本原理机器之美&#xff1a;AI绘图作品AI绘图对艺术创作的影响未来展望与挑战图书推荐&#x1f449;AI绘画教程&#xff1a;Midjourney使用方法与技巧从入门到精通内容简介获取方式&#x1f449;搜索之道&#xff1a;信息素养与终身…

电脑桌面便签软件哪个好?好用的电脑桌面便签

电脑作为我们日常工作的重要工具&#xff0c;承载着大量的任务和项目。当工作任务繁重时&#xff0c;如何在电脑桌面上高效管理这些任务就显得尤为重要。这时&#xff0c;选择一款优秀的桌面便签软件&#xff0c;无疑会给我们带来极大的便利。 一款好的桌面便签软件&#xff0…

Bilstm双向长短期神经网络多输入单输出回归分析

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 BILSTM神经网络 Bilstm双向长短期神经网络多输入单输出回归分析 完整代码: Bilstm双向长短期神经网络多输入单输出回归分析.zip资源-CSDN文库 https://download.csdn.net/download/abc991835105/89087121 效果图 结果分析 展望 …

NSA发布《在数据支柱中推进零信任成熟度》报告

4月9日&#xff0c;美国国家安全局&#xff08;NSA&#xff09;发布了题为《在数据支柱中推进零信任成熟度》的报告&#xff0c;旨在于数据安全层面提供指导&#xff0c;以增强数据整体安全性并保护静态和传输中的数据。(如下图&#xff09; 一、主要内容 报告中的建议侧重于将…

flutter知识点---三棵树

在Flutter开发领域中&#xff0c;提到“三棵树”这个概念&#xff0c;通常是指构成Flutter UI构建体系的三个核心组件树&#xff1a;Widget树、Element树和RenderObject树。这三棵树相互关联、协同工作&#xff0c;共同构成了Flutter灵活、高效、高性能的UI渲染机制。下面分别对…

C#值传递和引用传递,ref和out关键字,装箱和拆箱

C#值传递和引用传递 1.值传递和引用传递 值传递&#xff1a;值传递时&#xff0c;系统首先为被调用方法的形参分配内存空间&#xff0c;并将实参的值按位置一一对应复制给形参&#xff0c;被调用方法中形参得任何改变都不会影响到相应的实参。 引用传递时&#xff1a;系统不是…

机器视觉各类光源特点

1. 环形光源 提供不同照射角度和颜色组合突出物体的三维信息高密度LED阵列&#xff0c;高亮度多种紧凑设计&#xff0c;节省安装空间解决对角照射阴影问题可选配漫射板导光&#xff0c;光线均匀扩散 2. 背光源系列 高密度LED阵列面提供高强度背光照明突出物体的外形轮廓特征…

# 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(1)

从浅入深 学习 SpringCloud 微服务架构&#xff08;三&#xff09;注册中心 Eureka&#xff08;1&#xff09; 段子手168 1、微服务的注册中心 注册中心可以说是微服务架构中的”通讯录”&#xff0c;它记录了服务和服务地址的映射关系。 在分布式架构中服务会注册到这里&am…

修改taro-ui-vue3的tabs组件源码增加数字标签

需求&#xff1a;taro-ui-vue3的tabs组件上增加数字标记 步骤一&#xff1a;node_modules文件夹下找到taro-ui-vue3/lib/tabs/index.js 把173行的这一段替换成下面这段&#xff0c;然后写上样式 default: () > item.number ? [h(View, {class: at-tabs__item_in}, {defau…

如何在浏览器Web前端在线编辑PPT幻灯片?

有时候在项目中我们会遇到需要在网页在线打开并编辑PPT文档保存到本地或者服务器指定位置&#xff0c;猿大师办公助手可以很方便的调用本机Office实现在网页上编辑PPT幻灯片&#xff0c;效果与本机Office打开PPT完全一样。 猿大师办公助手支持完整嵌入模式&#xff0c;也就是本…

新型物联网创新实践教学体系建设

新型物联网创新实践教学体系建设 一、设计背景 随着物联网技术的快速发展&#xff0c;物联网已成为当今科技创新的重要领域。为了培养能够紧跟物联网技术发展趋势的高素质人才&#xff0c;高校物联网专业教学急需构建一套创新实践教学体系。本毕业设计旨在探索和设计一套新型…

K8s中的控制器和资源对象是什么关系呢?

K8s中的控制器和资源对象是什么关系呢&#xff1f; Kubernetes&#xff08;简称k8s&#xff09;是一个开源的容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序。在Kubernetes中&#xff0c;控制器和资源对象是两个核心概念&#xff0c;它们共同构成了Kubern…

ChatGPT畅想:论文写作新境界

ChatGPT无限次数:点击直达 html ChatGPT畅想&#xff1a;论文写作新境界 作为一名拥有10年经验的CSDN网站原创文章优质创作者&#xff0c;我深知论文写作在科研领域的重要性。随着人工智能技术的发展&#xff0c;ChatGPT作为一款强大的语言模型&#xff0c;正在为论文写作带…

负载均衡的原理及算法

负载均衡&#xff08;Load Balancing&#xff09;是指在计算机网络中将工作负载&#xff08;如请求、数据流量等&#xff09;分配给多个计算资源&#xff08;如服务器、网络连接等&#xff09;&#xff0c;以实现资源利用的均衡和性能优化。其原理和算法如下&#xff1a; 原理…

在Rust中使用ini配置文件

一、概述 INI文件是一种无固定标准格式的配置文件。它以简单的文字与简单的结构组成&#xff0c;常常使用在Windows操作系统上&#xff0c;许多程序也会采用INI文件作为配置文件使用。Windows操作系统后来以注册表的形式取代INI档。但是INI还是流传到现在。 rust-ini是一个在R…

一个文生视频MoneyPrinterTurbo项目解析

最近抖音剪映发布了图文生成视频功能&#xff0c;同时百家号也有这个功能&#xff0c;这个可以看做是一个开源的实现&#xff0c;一起看看它的原理吧~ 一句话提示词 大模型生成文案 百家号生成视频效果 MoneyPrinterTurbo生成视频效果 天空为什么是蓝色的&#xff1f; 天空…

CommunityToolkit.Mvvm笔记---AsyncRelayCommand

AsyncRelayCommand 是 CommunityToolkit.Mvvm 中的一个功能&#xff0c;专门设计用来处理异步操作。它是 RelayCommand 的一个变体&#xff0c;提供了对异步任务的支持&#xff0c;允许开发者在 MVVM&#xff08;Model-View-ViewModel&#xff09;模式中方便地实现异步命令。使…

华为OD-C卷-密码解密[100分]Python3+C语言-90%

题目描述 给定一段“密文”字符串 s,其中字符都是经过“密码本”映射的,现需要将“密文”解密并输出。 映射的规则(a ~ i)分别用(1 ~ 9)表示;(j ~ z)分别用("10*" ~ "26*")表示。 约束:映射始终唯一。 输入描述 “密文”字符串 输出描述 …

Hive进阶(4)----MapReduce的计算过程(赋图助君理解)

MapReduce的计算过程 MapReduce是一种编程模型和处理大规模数据集的方法。它通常用于分布式计算环境中&#xff0c;能够将数据处理任务分解成独立的部分&#xff0c;分配给多台计算机进行并行处理。这个模型由Google提出&#xff0c;并在开源领域中得到了广泛的应用和实现。Map…