C++(1)--概况、开发工具、hello word

简介

  • 1. 概况
  • 2. 开发工具
  • 3. mac 写hello word
  • 4. c++ 基本概念
  • 5.两个数相加代码分解
    • 5.1编译预处理命令# include
    • 5.2输入输出库iostream
  • 6.注释
  • 7.编码规范

《老九学堂C++课程》《C++ primer》学习笔记。《老九学堂C++课程》详情请到B站搜索《老九零基础学编程C++入门》

1. 概况

20世纪70年代,贝尔实验室的Thompson和Ritchie在想玩游戏的过程中,开发了C语言用于重写unix系统。

20世纪80年代贝尔实验室Bjarne Stroustrup在C语言的基础上开发了C++ ,主要是为了解决软件设计危机。C++应用范围:Office工具,编译器,操作系统,大型游戏。

一开始C++叫带类的C,可想而知其和C语言的关系。

C++衍生出了Java(语法比较简单),Java和C# 是兄弟。

2. 开发工具

1.记事本+命令行–专业大牛身份标识别,上手慢;
2.Visual c++ – 经典开发工具,与流行的操作系统有冲突;
3.VS --功能强大,体积同样强大;(3-5G)只支持微软版本的C,但是课程推荐标准C。
4.Code::blocks–开源免费C++开发工具,专业开发人员推荐
5.DEV C++, Xcode, Clion(收费), C-free(国产), Xcode(苹果公司的开发工具mac),C4droid(手机端运行)
6.eclipse c++ 开发

3. mac 写hello word

1.Mac OS中使用VScode配置C++语言开发环境
一键运行,不用配置编译,运行,调试:
2.在mac上使用vscode创建第一个C++项目
(不会配置,回头再说)

#include <iostream>
int main()
{	std::cout<<"hello world 2" << std::endl;return 0;	
}

4. c++ 基本概念

1.每个C++程序都包含至少一个函数,至少一个函数为main函数。操作系统通过调用main函数来执行程序(唯一被操作系统显示调用的函数)。

2.函数定义4要素:
​–>返回类型–main 函数的返回类型一定要是int,return语句所返回值的类型必须和函数返回类型一致。main返回0表示其成功执行,其他非零的值都有操作系统定义的含义,-1表示程序运行失败。
​–>函数名–函数名的命名规范
–​>圆括号–(参数列表)
–​>函数体–以花括号包围的语句块

3.c++中的语句大多数都是以分号结尾。(不用分号:块语句,大括号括起来的)

4.源文件–保存待编译程序的文件,源文件的后缀与具体编译器有关。有.cpp .cp .c等等,C++ primer 一书中的源文件以.cc结尾。

5.常用编译器
​ gnu-默认命令为g++ prog1.cc -o prog1
​ 微软visual studio: cl -GX prog1.cpp

6.表达式:C++中表达式有一个/几个操作数+操作符组成;每个表达式都会产生一个结果,通常是将操作符作用到操作数所产生的值。

7.定义一个变量,最好记得赋初值(变量的初始化)。

5.两个数相加代码分解

#include <iostream>
int main(){std::cout<<"Enter two numbers:"<<std::endl;int v1,v2;std::cin>>v1>>v2;std::cout<<"The sum of "<<v1<<" and "<< v2<< " is "<< v1+v2 << std::endl;return 0;
}

5.1编译预处理命令# include

编译预处理命令,尖括号中是一个头文件的名字,程序使用库文件必须包含相关的头文件。编译预处理命令应该写在文件的最开始部分。

C 头文件一般是.h结尾,C++采用C前缀兼容C头文件,其底层实际还是导入了.h文件。也可以在C++中采用.h的头文件。

5.2输入输出库iostream

iostream 格式化处理输入输出数据的标准库,iostream 的基础:istream,ostream。

秉持C++一切皆对象原则,iostream 库包含4个标准输入输出对象

iostream 库4个标准输入输出对象
cin标准输入
cout标准输出
err标准错误,用于输出警告和错误给程序使用者,try -expect?
clog产生程序执行的一般信息?这些信息是什呢?
<<输出操作符;两个操作数:左操作数–ostream对象,右操作数–输出内容;返回左操作数,所以可以连接输请求
>>输入操作符;两个操作数:左操作数–ostream对象,右操作数–变量;返回左操作数,所以可以连接输请求
endl操纵符;输出换行符并清空缓存区,通过刷新缓冲区,使得用户立即可以看到写入到流中的内容[\n+fflush(stdin)]
std::前缀 ,其表明 cout,cin 和 endl 是定义在命名空间 std 中的,可以避免与库中定义的名字相同而引起无意冲突

不用endl也是能看到,就是没有换行而已
忘记刷新输出流可能会造成输出停留在缓冲区中,如果程序崩溃,将会导致程序错误推断崩溃位置。

命名空间是C++的一大特性,用来在编写大型程序时组织源代码。

6.注释

注释用于概括算法、确认变量的用途或者阐明难以理解的代码段。

注释并不会增加可执行程序的大小,编译器会忽略所有注释。

错误的注释比没有注释更可怕

//–单行注释

/**/–定界符号,用于段落注释。多行注释时,注释内容的每一行都用* 开始,表明这一行是注释块的一个 部分。一般将注释块放在要解释的代码上方。

临时注释,建议用单行注释符。

7.编码规范

1.每条语句占一行
2.函数体花括号独占一行
3.函数中的语句相对于花括号进行缩紧
4.函数名后紧跟小括号,没有空格

注释的模版

/***************************************** 文件名:xxx* 创建人:xxx* 日 期:xxx* 修改人:xxx* 日 期:xxx* 版 本:1.0.0****************************************/
//****************************************
// Method:
// Fullname:
// Access:		public
// Return:		viod
// Parameter:	int fontsize
//****************************************

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

class 和 struct的区别

C中的struct对C中的struct进行了扩充&#xff0c;它已经不再只是一个包含不同数据类型的数据结构了&#xff0c;它已经获取了太多的功能。 struct能包含成员函数吗&#xff1f; 能&#xff01; struct能继承吗&#xff1f; 能&#xff01;&#xff01; struct能实现多态吗&…

leetcode206 反转链表

反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题&#xff1f; 经典题不解释 /*** Definition for singly-linked list.* public class ListNode…

浅议柔性数组

很多时候,柔性数组应用在了变长结构体中,如: StructPacket {Int state; Int len;

leetcode 152 乘积最大子序列

给定一个整数数组 nums &#xff0c;找出一个序列中乘积最大的连续子序列&#xff08;该序列至少包含一个数&#xff09;。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子…

PaperNotes(5)-Conditional Generative Adversarial Nets

Conditional GAN 论文阅读笔记Abstract1 Introduction2 Related Work3 Conditional Adversarial Nets3.1 Generative Adversarial Nets3.2 Conditional Adversarial Nets4 Experimental Results4.1 Unimodal4.2 Multimodal5 Future Work6.思考文章地址&#xff1a;https://arxi…

蛙泳姿势教学

偶尔看到分享的一篇日志&#xff0c;记录下&#xff0c;忙过这段时间努力学蛙泳。 蛙泳配合有一个顺口溜&#xff0c;在讲解蛙泳动作要领之前先介绍给大家&#xff1a;“划手腿不动&#xff0c;收手再收腿&#xff0c;先伸胳膊后蹬腿&#xff0c;并拢伸直漂一会儿。”从顺口溜中…

leetcode238 除本身以外数组的乘积

给定长度为 n 的整数数组 nums&#xff0c;其中 n > 1&#xff0c;返回输出数组 output &#xff0c;其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请不要使用除法&#xff0c;且在 O(n) 时间复杂度内完…

C 和c++的一些杂想,想到哪儿写到哪儿

关于C和c++一直有好多的程序猿在研究,研究区别研究相似的地方,究竟用那个预言好,没有确定的说法,要看你做什么了。 初始化操作: 在初始化的时候,我们都知道C语言一般都是这样处理的: int a=12; C++ 呢,除了这样复制初始化之外还可以直接初始化: int a(12); 啊…

C++(2)--mac使用VScode 进行C++编译、运行、调试

mac 使用VScode 进行C开发1.编译的基础概念2. mac 编译c代码2.1 查看编译器情况2.2 安装插件C/C&#xff0c;C/C Clang Command Adapte2.3新建一个C project2.3.1本地新建文件夹2.3.2新建mian.cpp文件2.3.3 编写hello word demo2.4 代码编译&#xff0c;运行&#xff0c;调试2.…

boost库linux编译安装

0.下载 1.解压boost_1_49_0.tar.g然后放到/opt/ 2. 进入解压后的文件夹 cd /opt/boost_1_49_0 3.将boost安装配置在/boost/prefix目录下 不过之前先 mkdir -p /boost/prefix

leetcode136 只出现一次的数字

给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 说明&#xff1a; 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗&#xff1f; 示例 1: 输入: [2,2,1] 输出: 1 示例 2: …

C++(3)--编译、gdb调试

3--编译和执行过程1.编译2.gdb调试gdb 查coreGCC是一个编译套件&#xff0c;是一个以"gcc"命令为首的源码施工队。施工队的成员有gcc、cpp、as、ld四个成员 预处理–宏定义展开&#xff0c;头文件引入-- cpp 等价于 gcc -E编译–C语言->汇编语言–gcc -S汇编–汇…

leetcode94 二叉树的中序遍历

给定一个二叉树&#xff0c;返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单&#xff0c;你可以通过迭代算法完成吗&#xff1f; 递归 /*** Definition for a binary tree node.* public class TreeNode …

使用动态链接库

1. 动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。库中函数和变量的地址是相对地址,不是绝对地址,其真实地址在调用动态库的程序加载…

算法(29)--两棵树匹配

树匹配1.剑指 Offer 26. 树的子结构2.剑指 Offer 27. 二叉树的镜像3.剑指 Offer 28. 对称的二叉树1.剑指 Offer 26. 树的子结构 判断&#xff1a;小树B是否是大树A的一部分&#xff0c;需要以大树A的每个为根节点进行匹配判断。 算法&#xff1a;判断两个节点是否相等&#xf…

leetcode647 回文子串

给定一个字符串&#xff0c;你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符组成&#xff0c;也会被计为是不同的子串。 示例 1: 输入: "abc" 输出: 3 解释: 三个回文子串: "a", "…

windows下关于Objective-C开发环境的配置

最近IOS一直很火&#xff0c;也想学习以以下OC开发&#xff0c;一般装个虚拟机&#xff0c;然后装个mac&#xff0c;我相信大多数人的机子跑不起来或者很卡&#xff0c;所以之前借鉴了一个文章&#xff0c;就是关于在windows下配置OC开发环境&#xff0c;这里我把自己的安装说一…

如何选择商铺投资

如何选择商铺&#xff1f; 选择商铺时&#xff0c;需要考虑哪些因素呢&#xff1f; 聂先生表示&#xff0c;要看地段&#xff0c;包括周围的商业环境、停车方便程度、汽车流量、未来发展前景、视觉效果等因素。此外&#xff0c;地域经济也很重要&#xff0c;必须要有一个好的投…

PaperNotes(6)-GAN/DCGAN/WGAN/WGAN-GP/WGAN-SN-网络结构/实验效果

GAN模型网络结构实验效果演化1.GAN1.1网络结构1.2实验结果2.DCGAN2.1网络结构2.2实验结果3.WGAN3.1网络结构3.2实验结果4.WGAN-GP4.1网络结构4.2实验结果5.WGAN-SN5.1网络结构5.2实验结果小结1.GAN 文章&#xff1a; https://arxiv.org/pdf/1406.2661.pdf 代码&#xff1a; Py…

Spring Security使用

Spring Security 在web应用开发中&#xff0c;安全无疑是十分重要的&#xff0c;选择Spring Security来保护web应用是一个非常好的选择。 Spring Security 是spring项目之中的一个安全模块&#xff0c;可以非常方便与spring项目无缝集成。特别是在spring boot项目中加入sprin…