c++_leran

C++基础入门

1 C++初识

1.1 第一个C++程序

编写c++程序分为四步

  • 创建项目

  • 创建文件

  • 编写代码

  • 运行程序

1.1.1 创建项目

我使用的是Visio Stdio2017社区版

1.1.2 新建文件
1.1.3 编写代码

这段是默认的格式

#include<iostream>
using namespace std;
int main()
{system("pause");return 0;
}

输出hello,world

#include<iostream>
using namespace std;
int main()                          //main函数每个程序只有一个,意思是一个程序不管有多少个文件,只能有一个main函数
{cout << "hello,world" << endl;  //这里是endl的字母l不是数字1,这行代码就是输出hello,worldsystem("pause");return 0;
}
1.1.4 运行程序

点击“本地Windows调试器”即可运行出hello,world

1.2 注释

两种格式

  1. 单行注释:一行代码的上方或者一条语句的末尾,对该行代码说明 形式://
  2. 多行注释:一行代码的上方,对该段代码进行整体说明 形式: /* */

1.3 变量

作用:给一段指定的内存空间起名,方便操作这段内容

语法:数据类型 变量名=初始值;

变量就是便于管理内存空间,内存空间一般是以16进制编号,不便于记忆,可以使用变量a代替0x0000,0x0000也可以使用。

变量名是任意的。

1.4 常量

两种格式

  1. #define 常量名 常量
  2. const 数据类型 变量名=初始值;
#include<iostream>
using namespace std;
#define DAY 7
int main()
{const int month = 12;cout << "每年有:" << month << "个月" << endl;cout << "每个星期有:" << DAY << "天" << endl;system("pause");return 0;
}

1.5 关键字

被系统使用的关键字可以自行查阅。

1.6 标识符命名规则

  1. 只能是数字、字母、下划线组成
  2. 开头只能是字母或者下划线
  3. 标识符区分大小写

2 数据类型

2.1 整型

  1. 数据类型意义:给变量分配一个合适的内存空间
  2. c++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同
  3. short占2个字节,int占4个字节,long占4字节(Windows),long long占8字节

实例

2.2 sizeof关键字

作用:利用sizeof可以统计数据类型所占内存的大小

语法:sizeof(数据类型/变量)

实例:

#include<iostream>
using namespace std;
int main()
{short num1 = 10;int num2 = 10;long num3 = 10;long long num4 = 10;cout << sizeof(num1) << endl;cout << sizeof(num2) << endl;cout << sizeof(num3) << endl;cout << sizeof(num4) << endl;system("pause");return 0;
}
结果:2 4 4 8

结论short<int<=long<=long long

2.3 实型(浮点型)

作用:用于表示小数

浮点数分为两种类型:

  1. 单精度float 占4个字节, 7位有效数字(有效数字算整数)
  2. 双精度double 占8字节, 15-16位有效数字

c++编辑器默认认为小数是双精度的浮点数,要在单精度小数后加一个f表示为单精度

c++默认情况下输出一个小数会显示出6位有效数字

科学计数法

示例:float f2=3e2; 输出结果为300

​ float f2=3e-2; 输出结果为0.03

示例

#include<iostream>
using namespace std;
int main()
{float f1 = 3.14;float f2 = 3.14f;double d1 = 10.002;float f3 = 3e2;float f4 = 3e-2;float f5 = 3.1415926;double d2 = 3.1415926;cout << f1 << endl;cout << f2 << endl;cout << d1 << endl;        cout << f3 << endl;cout << f4 << endl;cout << f5 << endl;cout << d2 << endl;           //double和float都一样,只能输出6位有效数字system("pause");return 0;
}
结果:
3.14
3.14
10.002
300
0.03
3.14159
3.14159

2.4 字符型

作用:字符型变量用于显示单个字符

语法:char ch=‘a’;

这个只能放一个字符,只占用一个字节的内存

示例

#include<iostream>
using namespace std;
int main()
{//1.定义一个char类型变量char ch = 'a';//2.计算char类型变量空间大小cout << sizeof(ch) << endl;//3.常见错误/*char ch ="a"  将引号弄成双引号;char ch ='abcdefg' 将赋值字符写成多个字符;*///4.计算字符的ASCII值,直接利用强制类型转换把字符变为数字cout << (int)ch << endl;system("pause");return 0;
}

2.5 转义字符

作用:用于表示一些不能显示出来的ASCII字符

常用的\n \t \

示例

#include<iostream>
using namespace std;
int main()
{//1.\n的作用就是代替endlcout << "hello,world\n" ;//2.\\代表输出一个‘\’cout << "\\"<<endl;//3.\t是为了保持美观,\t会保持8个位置,包括你已经有的字符cout << "a\thello,world"  << endl;cout << "aa\thello,world" << endl;cout << "aaa\thello,world"<< endl;system("pause");return 0;
}
结果:
hello,world
\
a       hello,world
aa      hello,world
aaa     hello,world

2.6 字符串型

作用:用于表示一串字符

两种风格

  1. C语言风格:格式 char 变量名 []=“xxxx”;
  2. string 格式:string 变量名=“xxxx”;

示例

#include<iostream>
#include<string>
using namespace std;
int main()
{//1.使用c语言的字符串char str1[] = "hello,world";cout << str1 << endl;//2.使用c++的string,要注意写头文件---#include<string>string str2 = "wjk";cout << str2 << endl;system("pause");return 0;
}

c++无法读取编译器命令行的解决办法

后来发现是TMP/TEMP环境变量路径有空格的问题,更新环境变量后需要重新启动VS再测试。

我是重新找了个C盘位置建了个temp文件夹,目前来说还没有问题。

很奇怪为什么突然路径里不能有空格,但也没法求证。

2.7 布尔类型

作用:布尔类型代表真或假的值

true的含义为真,(本质是1)

false的含义为假,(本质是0)

bool类型只占1个字节大小

示例:

int main()
{//1.创建布尔数据类型bool flag = true;cout << flag << endl;flag = false;cout << flag << endl;//2.查看bool类型所占空间cout << sizeof(flag) << endl;system("pause");return 0;
}

2.8 数据的输入

作用:用于从键盘获取数据

关键字:cin

语法:cin>>变量

示例

int main()
{//1.整型int a = 0;cout << "请给整型变量a赋值:"<< endl;cin >> a;cout << "整数a为:"<<a << endl;//2.浮点型float b = 1.0f;cout << "请给浮点型变量b赋值:" << endl;cin >> b;cout <<"浮点数b为:"<< b << endl;//3.字符型char ch = 'a';cout << "请给字符型变量ch赋值:" << endl;cin >> ch;cout <<"字符ch的值为:"<< ch << endl;//4.字符串型string str = "abc";cout << "请给字符串型变量str赋值:" << endl;cin >> str;cout << "字符串str的值为:"<<str << endl;//5.布尔型bool flag = true;cout << "请给布尔变量flag赋值:" << endl;cin >> flag;cout <<"布尔型变量flag的值为:"<< flag<< endl;system("pause");return 0;}

其中,布尔变量flag不能输入true,真值只能给数字非0值,假值给0

3 运算符

作用:用于执行代码的运算

运算符类型作用
算术运算符用于处理四则运算
赋值运算符用于将表达式的值赋给变量
比较运算符用于表达式的比较,并返回一个真值或假值
逻辑运算符用于根据表达式的值返回真值或假值

3.1 算术运算符

作用:用于处理四则运算

算术运算符包括以下符号:

运算符术语示例结果
+正号+33
-负号-3-3
+10+515
-10-55
*10*550
/10/52
%取模(取余)10%31
++前置递增a=2;b=++a;a=3,b=3;
++后置递增a=2;b=a++;a=3,b=2;
前置递减a=2;b=–a;a=1,b=1;
后置递减a=2;b=a–;a=1,b=2;

两个数相除,除数不可以为0, 0做除数会报错,取模运算中也不能为0

两个小数不能做取模运算,只有整数可以进行取模运算

两个整数相除,结果为整数

cout <<0.5/0.25<< endl;
结果为2

3.2 赋值运算符

作用:用于将表达式的值赋给变量

运算符术语示例结果
=赋值a=2;b=3;a=2;b=3
+=加等于a=0;a+=2;a=2
-=减等于a=3;a-=2;a=1
*=乘等于a=3;a*=3;a=9
/=除等于a=10;a/=2;a=5
%=模等于a=10;a%=2;a=0

3.3 比较运算符

作用:用于表达式的比较,并返回一个真值或假值

运算符术语示例结果
==相等于4==30
!=不等于4!=31
&

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

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

相关文章

最新android icon和splashScreen适配兼容至2024android

android在12做了splashScreen的变动&#xff0c;即&#xff0c;android12有自带的screenSplash过渡&#xff0c;不论你是否自己有变化&#xff0c;都会插入该动画。 android8做了icon的巨大变动。13做了图标的主题兼容。 一、icon制作 制作 使用android自带的工具&#xff0…

03:HAL---中断

目录 一:中断 1:简历 2:AFIO 3:EXTI 4:NVIC基本结构 5:使用步骤 6:设计中断函数 二:中断的应用 A:对外式红外传感计数器 1:硬件介绍 2:计数代码 B:旋转编码计数器 1:硬件介绍 2:旋转编码器代码 C:按键控制LED D:代码总结 一:中断 1:简历 中断&#xff1a;在主程序…

第二十二周周报

论文研读&#xff1a;Camera Distance-aware Top-down Approach for 3D Multi-person Pose Estimation from a Single RGB Image 粗读10篇文献。 通过图2 我可以知道这个论文大概实现的这个姿态估计效果的方法&#xff0c;首先是把图片输入到DetectNet网络&#xff0c;该网络…

Python批量提取Word文档表格数据

在大数据处理与信息抽取领域中&#xff0c;Word文档是各类机构和个人普遍采用的一种信息存储格式&#xff0c;其中包含了大量的结构化和半结构化数据&#xff0c;如各类报告、调查问卷结果、项目计划等。这些文档中的表格往往承载了关键的数据信息&#xff0c;如统计数据、项目…

Twitter的分布式自增ID雪花算法snowflake

Twitter的分布式自增ID雪花算法snowflake 一、Twitter的分布式自增ID雪花算法snowflakeendl 一、Twitter的分布式自增ID雪花算法snowflake /*** Twitter的分布式自增ID雪花算法snowflake* SnowFlake的结构如下(每部分用-分开):* 0 - 0000000000 0000000000 0000000000 0000000…

外连接 (outer join)

外连接 (outer join) 左外连结 (left outer join) 右外连结 (right outer join) 全外连结 (full join) 内连接与外连接的区别 内连接操作在表关系的笛卡尔积中去掉了不匹配的数据记录&#xff0c;只输出满足连接条件的数据记录。 在连接语句中只写join&#xff0c;而不写是…

打破信息差,计算机专业必须知道的进大厂的方式

现在的信息茧房有多可怕&#xff0c;如果你提前知道这几个进大厂实习的方法&#xff0c;你将超越百分之九十的大学生。 一、高校就业指导中心 大学生们找实习可以从本校高校就业指导中心网站上找&#xff0c;这个渠道建议重点关注下&#xff0c;此类渠道推荐的实习机会&#…

B2B2C电商系统源代码部署,让你轻松开启网店生意

在当今数字化时代&#xff0c;开设一家网店已经变得异常简单。借助B2B2C电商系统源代码部署&#xff0c;你可以轻松搭建自己的在线商城&#xff0c;开始网店生意。这种系统为企业提供了一个强大的平台&#xff0c;让他们可以直接与制造商和消费者进行交易&#xff0c;从而实现品…

AcWing16. 替换空格

题目 请实现一个函数&#xff0c;把字符串中的每个空格替换成"%20"。 数据范围 0≤0≤ 输入字符串的长度 ≤1000≤1000。 注意输出字符串的长度可能大于 10001000。 样例 输入&#xff1a;"We are happy."输出&#xff1a;"We%20are%20hap…

ETL的数据挖掘方式

ETL的基本概念 数据抽取&#xff08;Extraction&#xff09;&#xff1a;从不同源头系统中获取所需数据的步骤。比如从mysql中拿取数据就是一种简单的抽取动作&#xff0c;从API接口拿取数据也是。 数据转换&#xff08;Transformation&#xff09;&#xff1a;清洗、整合和转…

WebGL开发数字孪生系统

使用WebGL开发数字孪生系统通常涉及以下步骤。WebGL是一种用于在浏览器中实现3D图形渲染的JavaScript API&#xff0c;它可以用于创建交互性强、高度可视化的数字孪生系统。 1.需求分析&#xff1a; 确定数字孪生系统的目标和用途。明确系统的功能需求、用户需求以及与物理实体…

高性能服务系列【六】网络的有效载荷

谈到高性能服务是很难绕开网络部分&#xff0c;毕竟单机时代早已过去。对于多节点构成的服务系统&#xff0c;要提高总体性能&#xff0c;除了单节点足够强悍外&#xff0c;节点之间的通讯代价是必须考虑的关键。我们在刚开始的章节&#xff0c;就谈到网卡和磁盘是挂接在低速南…

Java项目:46 ssm005基于SSM框架的购物商城系统+jsp(含文档)

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 项目是单体ssm电商水果平台&#xff0c;包括前台商城平台及后台管理系统 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流…

连接端口和连接端口转换OrCAD补丁

来介绍此功能之前先复习一下一些OrCAD的基础知识。 说到连通两个器件&#xff0c;有什么办法呢&#xff1f;最直接的就是用线连通。比如下面这两个器件需要连通&#xff0c;我们可以直接用线Place wire连接。 但是如果这两个器件由于某些原因&#xff0c;他们之间相隔很远&…

c# 使用 Oxyplot 创建和绘制 ContourSeries

我有一个 WPF 应用程序&#xff0c;我需要在其中可视化 y y(x1, x2)&#xff0c;其中 x1、x2 是线性坐标。我可以使用 Oxyplot 中的 HeatMapSeries 来做到这一点&#xff0c;但是当我想在同一窗口中绘制两组数据时&#xff0c;热图不是合适的工具。几个轮廓系列会更好。 现在&…

MS5583N高分辨率模数转换器

产品简述 MS5583N 是一款高分辨率模数转换器&#xff0c;内部集 成高阶 Σ-Δ 调制器、低噪声可编程增益放大器、多 路输入选择器和多种内部数字滤波器。其转换速率 从 250SPS 到 4kSPS 。此外&#xff0c;芯片内部集成失调校准 寄存器和增益校准寄存器。 MS5583N …

题目 2113: T1309-回文数

题目描述: 若一个数&#xff08;首位不为零&#xff09;从左向右读与从右向左读都是一样&#xff0c;我们就将其称之为回文数。例如&#xff1a;给定一个 10进制数 56&#xff0c;将 56加 65&#xff08;即把56从右向左读&#xff09;&#xff0c;得到 121是一个回文数。又如&…

haproxy-高性能负载均衡反向代理服务

目录 一、HAProxy&#xff08;High Availability Proxy&#xff09;概述 1、HAProxy的概念 2、HAProxy的主要特性 3、HAProxy的优缺点 4、Haproxy负载均衡策略 5、LVS、nginx、HAProxy的区别 二、安装HAProxy 1、yum安装 2、第三方rpm包安装 3、编译安装 3.1 解决 l…

流量分析-webshell管理工具

文章目录 CSCS的工作原理CS流量特征 菜刀phpJSPASP 蚁剑冰蝎哥斯拉 对于常见的webshell管理工具有中国菜刀&#xff0c;蚁剑&#xff0c;冰蝎&#xff0c;哥斯拉。同时还有渗透工具cobaltstrike(CS)。 CS CobaltStrike有控制端&#xff0c;被控端&#xff0c;服务端。(相当于黑…

day52 动态规划part13● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

考虑到一般动态规划的写法是n方&#xff0c;为了降低复杂度&#xff0c;考虑每次假如选择当前数dp[i]对应最长的序列&#xff0c;就找前面上一个数&#xff08;已经做递推的时候记录了上一个数的比他小的一个数&#xff0c;因为等于上一个比他小的数的序列长度&#xff08;已经…