C++入门{ACM上交训练营}

这篇博客详细介绍了C++的学习路径,从预处理到主函数,讲解了命名空间和系统头文件的使用。接着深入到变量的概念,包括内存、数据类型、变量声明和初始化,以及常量的分类。文章还阐述了数据类型的细节,如整数、浮点数和字符类型,并讨论了位运算符和表达式。此外,还涉及了关系和逻辑表达式,以及switch语句和循环结构(for、while)的用法。博客最后提到了循环控制语句break和continue的作用。
摘要由CSDN通过智能技术生成

菜鸟————之无聊初学C++

进入学习页面,左面是一种解释,右边是练习
#include<预调用的头文件>

编译预处理 :

编写完源程序,在执行编译之前,编译器 会首先调用预处理器,找到所有以#开头的代码行进行处理。
系统头文件是 < iostream >

使用命名空间namespace

命名空间 ————目的是让大型程序在组合多个厂商的代码时,便于管理重复命名的功能模块。是C++的特性。
他的作用是 :使用using声明之后,程序员可以直接使用命名空间中定义的名称,不需要额外指定前缀。

程序主函数,main()

:C++程序的运行从主函数 -main()开始。
每个C++程序有且仅有一个main()函数,程序在运行时会自动调用main()函数。
返回函数:return语句代表了函数将会返回的内容

1. 当主函数返回一个0时,说明程序正常运行结束 
2. 返回其他非0的数值会造成系统认为程序异常退出。

cout:打印内容 *。。。。。。。。。。*endl:换行

换行符endl可以使内容输出之后,
光标回准到下一行第一个字符,即换行

Tips:在长时间没有接触程序之后,注释也可以帮助代码作者快速理解自己编写的代码。
在编译过程中,注释中的所有内容会被编译器自动忽略,最终也不会被执行。
在C++中,以 双斜杠 “//” 用来注释内容,之后的内容直到行末都为注释。
注释可以单独位于一行上,即占一整行;也可以与代码出现在同一行中。
Tips:使用注释还可以在调试过程中让某一行代码失效,因此,可以通过注释某些代码,来检验程序的运行情况。

新内容————变量

计算机内存

内存是计算机用来记忆和储存信息的硬件
而计算机操作系统将内存划分为不同区域,这些区域里存储着计算机计算时需要使用的数据。
一个存储单应可以存放一个字节的数据,而1byte=8bit
内存单元的唯一地址,常用16进制数表示和区分

那我们就要谈到变量声明
**变量:**存储数据的容器,数据大小决定容量
变量对应着内存中的一个地址,可以在这个地址存取变量。
声明方式: 数据类型 变量名称
变量名称法则:

  • 1.数字不可以出现在第一个位置上;
  • 2.名称中英文字母大小写是区分大小的
  • 3.C++的关键字不可以做变量名称。
    变量初始化:即赋予变量一个初始值。(必须有初始化,否则此变量具有不确定的数值,计算时会产生错误。
    =:赋值运算符,它是将等号右边数值存放到左边的变量
    初始化时应根据数据类型来赋值,否则会发生错误。

常量

分为:符号常量和字面量
用来赋值给变量的是表示固定值的数据,称为字面量
常用的两类字变量:——整数字面量和浮点字面量。
举个例子:整数自变量:十进制,八进制,十六进制都是
浮点自变量:意为是有分数形式或指数形式的数学字面量。
以及字符字面量:单字符字面量:将单个字符括在单括号内
创建字符字面量。
这种都叫转义符字面量

  • '\n'表示换行符;
  • '\t'表示制表符;
  • '\''表示单引号字符(不被解析成字符外的单引号);
  • '\\'表示真正的斜杠字符。
    而还有一种字符串变量:字符串字面量是由一对双引号括起来的字符序列字符串中可以包含类似于字符字面量普通字符以及转义字符
    在C++中,随着程序运算不改变的量叫做
    符号常量**,可以使用const关键字来定义并且初始化,—定义的时候必须进行初始化-----,且在初始化之后不能再进行修改与重新赋值。

数据类型

数据类型指定一般在变量声明之前。
结构为:数据类型 变量名称
数据类型分为基本类型(整数、浮点数)和复合类型(数组、字符串、结构体等等)。它决定一个变量的范围有多大和内存需要分配的空间。
整数类型(按占内存大小分为short【至少2byte】、int【4byte】、long【至少4byte】、longlong【至少8byte】)占用内存越大的类型表示的范围更大。
计算机内存采用二进制的存储方式,每一个位可以表示0与1两种状态,因此占据n位的内存块,可以表示 2^n 个不同的数字。
字符类型:英文字母、数字、标点等(用于存储计算机中的基本符号)。
每个类型数据可以分别指定有符号版本和无符号版本,不指定有无符号,默认有符号。如unsigned int 只能表示正值或是signed int 可以表示负值。
字符整数类型虽然存储方式和数值整数类型相似,都是存放一个数值,但是在输出显示时是不同的。

浮点类型

共有三种类型:float :通常占4byte,有效位数为6位,double:占用空间为float的两倍,即8byte,有效位数为15位 ,long double:一般占用16个字节的空间,它们分别表示不同的精度。
浮点数的精度在于它可以表示的有效位数以及指数范围
有效位数用来描述浮点数值的刻画精确程度。指数范围指的是可以表示的指数幂次大小。
需要注意的是,有效位数不会因为小数点的改变而改变,无论314000或者3.14000,它们的有效位数都是3位,多出来0可以看作是一种占位符。

位运算符与表达式

在计算机中,数据以二进制形式储存,每8位构成一个字节,每个位都有0/1两种状态中的一种
C++包括六种按位运算符

按位与运算符&
按位或运算符|
异或运算符^
按位取反运算符~
左移运算符<<
右移运算符>>

按位运算符只能对字符整型以及数值整型数据类型的常量或变量使用,不能对浮点类型数据进行计算。
移位优先级高于异或,基础语法,乘除优先于加减优先于赋值运算符。
&运算符只有在两个操作数的对应位同时为1时,才会得到结果1。
^位异或运算在两个操作数的对应位不相同时,会得到结果1;也可以看作是二进制下的无进位相加。
在计算机中,所有的二进制数据都是用补码保存的。

  • 正数的补码就是原码本身
  • 正数变量A的原码为0011 1100,补码同样等于0011 1100。
  • 负数的补码是在其原码的基础上,符号位不变,其余各位取反然后+1
    所以对于二进制位来说取反则先取反然后再取补码。
    在C++中,左移运算符<<可以将一个操作数的各二进制位全部左移若干位。右移运算符>>可以将一个操作数的各二进制位全部右移。若干位左侧对于有符号数,会用符号位补齐:正数为0,负数为1
  1. 左边多余的二进制位将被丢弃,右边不足的二进制位将被补0。(<<)
  2. 右边多余的二进制位将被丢弃,左侧对于无符号数,会在左侧补0
    左侧对于有符号数,会用符号位补齐:正数为0,负数为1。(>>)。
    cin>>输入cout<< 输出。

关系表达式和逻辑表达式,实现条件真假的判断。
浮点数一般不会用 == 或者 != 来判断,因为可能产生表示误差
比较两个浮点数是否相等,需要看两个数的差值是否小于一定的精度,比如:
对于浮点数a和b,如果(a - b) < 1e-6 如果值为真,就判断两个浮点数相等。
逻辑运算符有:大于>和大于等于>=;
小于<和小于等于<=;相等==和不相等!=;
对于这些常用的运算符,优先级从高到低进行排列在这里插入图片描述
tips:虽然可以通过计算优先级省略掉括号,但为了代码的可读性,我们在编写时一般都选择把括号加上。
switch语句
switch 后面的变量名:整型变量(比如int或者char),或者值为整型的表达式。在一个switch中可以有
任意
数量的case语句。
当switch后面的变量等于case后的常量时,case后跟的所有语句将被执行,直到遇到break语句为止。当遇到 break 语句时,switch 终止,控制流将跳转到整个 switch 语句后的下一行。case后可以没有break, 如果某个case后没有break语句,程序就会接着往下执行。
default:在其上所以case都为假时,运行。

接下来我们学习for循环

什么是循环结构?像1/3那样的无限循环还是派那样的无限不循环呢?

我也不知道,接下来继续学习:
循环结构:指在程序中需要反复执行某个功能而设置的一种程序结构。

for (循环变量赋初始值;循环条件;更新循环变量) 
{
    循环体
}

那么循环控制结构需要有结束循环,所以出现了break。
break:通常放在循环体中,当执行到这句语句时,跳出整个循环,也就是说整个循环立即终止。
那break有个好兄弟continue:通常也是放在循环体中,当执行到这句语句时,跳过当前循环体,强迫进入下一次循环。

while语句

循环其实本质上只需要根据循环条件来判断是否继续循环。这样看起来,for循环的写法相对比较复杂,需要关注循环变量怎么变化,并用循环变量来判断循环是否终止。

for 和 while 的比较
相同点:都是表达循环结构的语句,都可以使用break和continue作为循环控制语句

  • break:当执行到这句语句时,跳出循环,也就是说整个循环立即终止。
  • continue:当执行到这句语句时,跳过当前循环,强迫进入下一次循环。

不同点:for循环需要清楚循环次数/循环变量的变化范围;while循环只需要知道什么时候停下来就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值