2021.1.7号计算机日志

c++的学习

1.1编写一个简单的c++程序

(1)c++程序可以包含多个函数,c++和c语言一样以函数为基础,都必须包含一个main函数来实现c++程序,并在程序的开始首先调用main函数。
(2)那么如何来定义一个函数呢?函数包括(顺序来说):返回类型 函数名称(形参列表)函数体。
其中main函数较为特殊,它可以没有返回值,如果有必须为整数类型,形参列表一般为空,其他情况将在196面介绍到
(3)函数体则是由一个以左花括号‘{’开始,以右花括号‘}’结束的语句块,注:函数体中的每条语句中都要以分号‘;’结尾表明该行语句的结束
(4)大多数系统中main的返回值用以表示程序的执行状态,0为成功非0为机器自己定义
(5)完成c++的执行,可以使用电脑自带的命令行界面调用编译器,也可直接使用IDE集成开发环境一步完成,但无论是哪种方法,所写的程序都应储存在一个或多个文件中,这样的程序文件又叫做源文件,通常以.cc,.cxx,.cpp,.cp,.c为后缀名

1.2初始输入输出

(1)继承c语言的特征,c++没有定义任何输入输出的语句,取而代之的是一个全面的标准库来提供IO(in and out)机制,包含输出流(ostream)输入流(istream)的就是iostream库,其中i即为in,o即为out,而stream即为流的意思。“流”指的就是随着程序的进行,字符的生成或消耗【1】
(2)标准库定义了4个IO对象,输入流的只有一个为cin(c in理解为c++程序的写入)称为标准输入,输出流有三个cout(c out理解为c++程序的写出)称为标准输出,cerr(c err理解为c++程序输出警告和错误信息)称为标准错误,clog(c log理解为c++程序一般性信息的输出注log的引申义为一般)
(3)类似于c语言,c++也有自己的一套输入输出的格式我们先来写个程序,该程序的作用是计算两数之和

#include<iostream>//调用iostream标准库
int main()//函数的定义
{
	std::cout<<"请输入两个数字:"<<std::endl;//输出“请输入两个数字”
	int letter1,letter2;//定义你想输入的数据
	std::cin>>letter1>>letter2;//输入你想输入的数据
	std::cout<<"数字"<<letter1<<"和"<<"数字"<<letter2<<"的总和是"<<letter1+letter2<<std::endl;
	reture 0;//给main函数返回一个表示程序成功结束的值
}//分别以左右花括号开始,结束

我们借此程序来分析一下c++程序的运行,首先是#include<iostream>这是引用IO库的说明,#include表明向系统声明我要引用了,而后跟的就是所要引用的文件名了,以<>标注的iostream文件了注:与C语言不同,引用的文件名后无".h"后缀 猜想:以后可能可以借此引用自己所写的程序库,之后就是函数的定义像1.1所说包含4大部分,来到语句块表达式部分就可以很清楚的看到输入输出的格式了其中输出两句,输入一句
输出(向流写入)两句

std::cout<<"请输入两个数字:"<<std::endl;
. . . . . .
std::cout<<"数字"<<letter1<<"和"<<"数字"<<letter2<<"的总和是"<<letter1+letter2<<std::endl;

"std"是c++相较于C语言的一个不同之处,名为命名空间域,作用是储存定义的名字,可以有效的防止定义的名字相同但作用不相同的状况,虽然这样在语句上有些麻烦,但在处理大规模的程序时却方便了写程序的人避免了同名的冲突,其中标准库所定义的所有名字都在命名空间std中

"::"为域运算符,用以指明我们所想使用保存在命名空间中的哪个名字

"<<"为输出运算符,用以在标准输出上打印你所写的信息,输出的文字为字符串字面量因此需要加双引号,此外在进行变量的输出时不需要重申变量类型,相较于c来说方便许多。

后面的"endl"是一个被称为操纵符的特殊值,作用是结束当前行,用以将缓冲区的剩下内容读出,避免在写下一行代码时出现不必要的错误,一般常常在输出语句后加入该句,避免程序的错误

输入(从流读取数据)一句

std::cin>>letter1>>letter2;

">>"为输入运算符
完成程序

小总结

c++的输入输出不同于c,c++不用重申输出输入的数据类型,不用花括号,改用特定的输入输出运算符。输出输入运算符的左边必须是一个iostream的对象右侧则是输入输出的对象,此外这样的对象可以嵌套,或是换行例如上述程序的

std::cin>>letter1>>letter2;

可以理解为

(std::cin>>letter1)>>letter2;

先处理完letter1后再处理letter2
再例如

std::cout<<"数字"<<letter1<<"和"<<"数字"<<letter2<<"的总和是"<<letter1+letter2<<std::endl;

程序过长可以分行

std::cout<<"数字"<<letter1<<"和"<<"数字"<<letter2<<"的总和是"
<<letter1+letter2<<std::endl;

也可以使程序正常的运行

再就是c++的输入不需要取地址符,避免了错误

1.3程序的注释

无论是哪一种计算机语言,程序的注释是非常重要的,注释的对错往往关乎着整个程序的健康性,程序错了可以根据注释来进行修改,但注释错了往往难以发现。
c++的注释方式有两种一种是单行注释以“//”开始,以回车换行符为结束,另一种则是继承C语言的两个界定符(/**/)以“/*”为开始,以“*/”为结束,想要用界定符进行多行的注释,一般习惯性的在除(/**/)那一行每一行的开头以“*”为开头

单行注释是可以进行叠加的注释,也就是“//”中可以包含多个“//”,但界定符不可叠加注释,也就是(/**/)中不可再有(/**/)。因此为了避免错误,我们常常两种一起使用,例如:

// /*现在
// *这里也可以使用/* */
// *了哦
// */

1.4控制流

“流”在c++中可以理解为“序”,程序按序执行命令,语句按序输入输出,就像读书写字从左向右,自上而下一样,c++程序的执行也有类似于读书写字一样的序,那就是顺序从左向右,自上而下。可往往某些原因,一个程序的完成,有的时候往往不能顺序完成,由此诞生了迭代(循环),条件等语句;在这里先介绍几种,之后再具体学习
首先是迭代语句while,for,和c语言类似
while(条件)
{

}
条件为真,进行while的内部循环,假就跳出执行后面的语句
for(初始赋值;循环条件;想循环的表达式)
{

}
for语句中的三个语句可以根据情况来进行填写,先进行初始赋值,后判断循环条件为真继续,为假跳出,再执行完花括号中的语句后再进行想要循环的表达式

注:在这里值得注意的是c++支持读取数量不定的输入数据,例如

while(std::cin>>value)

当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,则返回为真,当遇到文件结束符,或遇到一个无效或错误的输入是,则返回为假,以此来完成数量不定时的条件判断
if(判断条件)
{

}
if语句为单纯的判断语句,真就执行花括号中的语句,假则跳出

1.5类介绍

可以说类是c++语言一个十分重要的特性,就像指针一样,它是独立出来的一种类型称为类类型,对于c++语言的扩展具有很大的作用,什么是类,其实可以类比结构体,类是用来定义自己的数据结构的,但类与结构体也有不同
(1)、结构体基本用在很多数据,需要一个结构体来封装这些数据。而类的话,是面向对象的思想,可以有很多接口让人调用,私有变量等外部不能调用,还有保护类型的变量。

(2)、结构体也可以被认为是一种特殊的类,它不存在任何函数,构造和析构函数也没有,而且是一个公共的的类。

(3)、结构体在默认情况下成员是公共的(public),类在默认情况下成员是私有的(private)。

(4)、C++结构体内部成员变量及成员函数默认的访问级别是public,而c++类的内部成员变量及成员函数的默认访问级别是private。

(5)、C++结构体的继承默认是public,而c++类的继承默认是private。

(6)、类要加上public变成共有的才能被访问,而结构本身就是共有的可直接访问。

(7)、C定义结构体变量时需要加struct关键字,C++中定义结构体变量时可以不加struct关键字。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值