C++语言入门知识点(详细版)【持续更新每周三更】,小舒舒戳这里!!!
时间过得好快啊,LITTLESUN已经在这块新地图摸打滚爬了一个多月了。前一段时间出了点小意外一直没能更新博客,昨天被小舒舒催更了(惭愧惭愧)便准备着手来一篇回忆录回首一下这一个月走过的风风雨雨,也希望可以帮到要入门C++的小可爱们~【如果有错误欢迎各位大佬指正】
一. 输入和输出
入门C++几乎所有人的第一个程序都是“Hello,World!”吧。所以最最基础的就是输入和输出啦!
想要完成输入和输出由三个技能可以进行选择
- getchar()&putchar()
- cin&cout
- scanf&printf
经常使用的是后面的两种这里我就仅展开讲解它们啦!
cin和cout是C++语言中特有的输入输出语言需要调用iostream库
使用cin>>输入变量>>“输入常量”来实现输入
使用cout<<输出变量<<“输出常量”来实现输出
第三种是C语言的相比于上一种区别在于比较快但写起来比较麻烦调用cstdio库
但在学习这种输入方式时,新手很容易就会迷。所以下面要划重点啦!!!睡觉的同学醒一醒啊!!!(敲黑板)
首先我们来对比一下这组输入输出之间的不同在哪里:
例:
scanf("%d",&n);
printf("n=%d",n);
在大家思考上面的问题时LITTLESUN来给大家分析一下上面的语句:
%d出现了两次是什么意思呢?
这里我们就要引入数据类型的概念了!(请先行查看知识点二)
而%d对应的数据类型就是int 整数型了
longlong的话则替换为%lld
double则是%lf
单个字符是%c
字符串是%s
而n就是int这个整数型变量的变量名。我们可以随意替换只要这个变量名在前面已经定义过且数据类型与前面%后面的相对应。
在输出时" "里面有什么就会打印到屏幕上什么%用于转义变量(如果不是很理解可以上机手操试一下区别会有深刻的理解)
现在回到最初的问题第三种输入输出方式中最大的不同就是输入的变量前面由一个&,这个&是用于访问输入变量的地址(这个可以不用理解只要记得一定不要忘记打&就好啦!)
最后补充一个小的知识点:
换行的问题——当输出多个数据的时候我们为了区分可能需要在输出中加入换行的格式
上面两种输出方式的换行可以这样来写:
cout<<endl;
printf(“%d\n”,n);
二.数据类型
程序通常是要用于解决一类问题所以我们会经常的需要定义变量,变量的名字可以随我们的喜好来定义(为了增加程序的可读性最好定义一个有意义的变量名字【对于变量的命名其实还是很讲究的这里放上一位大佬的博客的链接如果对这个技能点感兴趣可以去学习一波https://www.cnblogs.com/Mrpopo/p/5714718.html】)
在这里介绍三种基本的数据类型:
- 整数型
根据整数的范围定义整数型变量的标识符也会有所不同,下面是三种数据范围
short -32768 ... 32767(一般不用)
int -2147483648 ... 2147483647
long long -10^18 .. 9.22*10^18
一般情况下使用int 变量名 就可以满足我们的需求。但是做题的时候使用long long会比较保险(当然long long也有会爆的时候,如果遇到这种情况就需要考虑换一个程序来解决这个问题了!)
- 实数型
实数也被叫做浮点数。
常见的由float和double,它们的区别主要在于精度不同也就是有效小数位数不同。
所以我们常用的还是有效位数比较多的double(18位)
这里要注意一个问题就是由于计算机使用的时二进制,所以使用浮点数会存在浮点误差,也就是很难想明白的一个问题:3不等于3
为了解决浮点误差带来的问题我们可以采取下面的方式(这里不是很理解或者看不懂可以先跳过去)
for(n=1;(S < K) || (fabs(S - K) < 1e-8);n=n+1)
- 字符
我们使用char和string来定义字符变量
在这里我们可能会经常使用到一个神奇的表ASCII表https://baike.baidu.com/pic/ASCII/309296/0/c2fdfc039245d688c56332adacc27d1ed21b2451?fr=lemma&ct=single#aid=0&pic=c2fdfc039245d688c56332adacc27d1ed21b2451(美国信息交换标准代码)
对这个表的意义和作用LITTLESUN就不班门弄斧了,大家可以去维基百科看一看哦~
三.布尔
很多时候我们都需要去判断一个条件的真假。这个时候我们就需要使用布尔逻辑或者定义一个布尔变量。
布尔逻辑是什么呢?通俗点来说就是或,且,非。(就是我们数学在学习集合之间关系的那个知识)。
之后要谈到的知识点if语句,while语句,for语句等等中我们会经常使用布尔逻辑。
多个条件间使用&&表示这多个条件要同时满足才为真;
多个条件间使用||表示这多个条件只要有一个满足就为真;
==表示询问是否等于(注意区分它和=的区别【=是用于赋值的】)
!表示非,就是所谓的补集。
在计算机的认知里只要所给数字不是0就可以等价与1。这里0也就是false,1是true。
我们经常使用布尔逻辑进行特判,注意在多个条件出现时要学会使用()分清楚其不同条件的优先级。
我们会经常使用布尔变量进行标记。
四.入门难度第一阶段推荐题单
这道题可以尝试使用第一个知识点中的两种输入输出方式进行练习。
- 洛谷P1421 小玉买文具
这道题有两种思路,一个分组计算,一个化整为零。大家可以都尝试一下!
C++语言入门知识点(详细版)【持续更新每周三更】,小舒舒戳这里!!!的更多相关文章
- C/C++编程笔记:C语言入门知识点(三),请收藏C语言最全笔记!
今天我们继续来学习C语言的入门知识点,第一课:C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记! 21. 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据.输入可 ...
- 4W字的后端面试知识点总结(持续更新)
点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...
- html知识点汇总(持续更新中)
本人从事前端行业三年多,打算从今天开始整理一些关于前端的一些比较经典的知识点,持续更新中...希望能对一些相关知识点有疑问的朋友有一些帮助! HTML篇: 1.常见的行内元素/块级元素/空元素有哪些? ...
- C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记!
今天我们继续来学习C语言的入门知识点 11. 作用域规则 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问.C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 ...
- 剑指offer面试题-Java版-持续更新
最近在用Java刷剑指offer(第二版)的面试题.书中原题的代码采用C++编写,有些题的初衷是为了考察C++的指针.模板等特性,这些题使用Java编写有些不合适.但多数题还是考察通用的算法.数据结构 ...
- react知识点总结(持续更新。。。)
一.webpack 1. 什么是以及为什么要使用webpack 现在的网页功能越来越丰富,所需要的JavaScript和模块也会很多,为开发更加简洁,出现了以下方法,如模块化,scss,typescr ...
- 黑马2022最新redis课程笔记知识点(面试用)持续更新
redis入门 redis的常见五种数据类型 String类型 String类型,类似于java中的String类型,常见使用get,set方法. String类型还可以存储json字符串格式. Ha ...
- 关于JavaScript初级的知识点一(持续更新 )
自己刚开始接触JS这是自己一个多月以来的一些总结和回顾. 一.什么是js? js是一种弱类型的脚本语言,是HTML的3大组成部分之一.HTML标签 CSS样式 JS脚本. 二.js的5种基本数据类型 ...
- mybatis新手入门常见问题集(持续更新)
一.参数为集合 Q:parameterType指的的类型是集合类型还是对象? A:都可以,甚至不用在xml中指定也可以.第一,mybatis会对传入的参数进行判断是不是list或者array,第二,m ...
随机推荐
- Python语言程序设计基础(3)—— 基本数据类型
天天向上 dayup,dayfactor = 1.0,0.01 for i in range(365): if i % 7 in [6,0]: dayup = dayup*(1-dayfactor) ...
- POJ 3070 矩阵快速幂
题意:求菲波那切数列的第n项. 分析:矩阵快速幂. 右边的矩阵为a0 ,a1,,, 然后求乘一次,就进一位,求第n项,就是矩阵的n次方后,再乘以b矩阵后的第一行的第一列. #include <c ...
- Going deeper with convolutions(GoogLeNet、Inception)
从LeNet-5开始,cnn就有了标准的结构:stacked convolutional layers are followed by one or more fully-connected laye ...
- Window下搭建foundation apps环境
Window下搭建foundation apps环境 框架:AngularJS.Foundation, 构建工具:Gulp, 开发环境:node.js. 操作系统:windows (一)环境准备 1 ...
- 【转】Java虚拟机类型卸载和类型更新解析
[摘要] 前面系统讨论过java类型加载(loading)的问题,在这篇文章中简要分析一下java类型卸载(unloading)的问题,并简要分析一下如何解决如何运行时加载newly ...
- 【luogu P1307 数字反转】 题解
题目链接:https://www.luogu.org/problemnew/show/P1307 刚入门的一道字符串模拟,分四种情况讨论来做比较好. #include<iostream> ...
- java循环作业0912
题目一:一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)? double a = 0.08; double h =0; int i=0; for(i=1;h&l ...
- 车站分级 (2013noip普及组T4)(树形DP)
题目描述 一条单向的铁路线上,依次有编号为 1,2,…,n 的 n个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 x ...
- 没有上司的舞会(树形DP)
题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...
- springMVC中接收请求参数&&数据转发
### 1. 接收请求参数 #### 1.1. [不推荐] 通过HttpServletRequest获取请求参数 假设存在: <form action="handle_login.do ...