2.c++基础语法
文章目录
- 1.c++ 程序结构
- 关键字
- 标识符、操作符、标点
- 预处理指令
- 注释
- main 主函数
- 命名空间
- 2.c++ 变量和常量
- 变量
- 3.c++ 数组和容器
- 4.c++ 程序流程
- 5.c++字符和字符串
1.c++ 程序结构
关键字
关键字事程序保留的,程序员不能使用,c++的常见关键字如下图:
标识符、操作符、标点
:: 这个也是操作符,不是标点。
预处理指令
注释
main 主函数
一个程序只能有一个入口。
代码练手:
#include<iostream>using namespace std;int main(){cout << "hello" << endl;return 0;
}
代码练手
#include<iostream>
using namespace std;//argc 参数数量
//argv 参数列表
int main(int argc,char** argv){cout << "参数数量:" << argc << endl;cout << "==== 参数列表 =====" << endl;for (int i = 0;i < argc; i ++){cout << "参数:" <<argv[i] << endl;} return 0;
}
命名空间
想不发生冲突,还是直接std::cout,比较好一点。
2.c++ 变量和常量
变量
变量名实际上就是你的内存地址。只不过对于不同的对象就是在堆上还是在栈上。因为是一块地址,所以是可以变化的,想放什么就放什么。
变量的初始化。
代码演示:
#include<iostream>
using namespace std;int main(){int age;cout << "age is : " << age << endl;return 0;
}
如果变量没有初始化,会触发警告。如下图。警告不影响运行,但是最好都要做初始化。
。
代码练手,计算房子面积:
#include<iostream>
using namespace std;int main(){int room_width {0};cout << "请输入房间宽度:" ;cin >> room_width;int room_height {0};cout << "请输入房间高度" ;cin >> room_height;cout << "=====================" << endl;cout << "房间的面积是:" << room_height * room_width << endl;return 0;
}
数据基本类型都有哪些:
附上ASCII编码表:
变量声明的时候,因为变量是有大小限制的,如果声明的超过了范围,使用花括号,就会报错。如下图,这也是花括号声明的好处之一。
代码练手:
#include<iostream>
using namespace std;int main(){cout << "=====字符型" << endl;char my_char {'f'};cout << "字符:" << my_char << endl;cout << "=====短整型" << endl;short my_short {59};cout << "短整型:" << my_short << endl;// cout << "======浮点数======" << endl;// 不会报错short overflow_num_1 = 32769;cout << "短整型溢出" << overflow_num_1 << endl;// short overflow_num_2 {32768}; // 会报错,无法编译// cout << "短整型溢出" << overflow_num_2 << endl;cout << "########int#######" << endl;int my_height {182};cout << "int类型:" << my_height << endl;long peolple {10360000};cout << "杭州人数:" << peolple << endl;long long people_in_world {80'0000'0000}; // 方便阅读 c++14标准cout << "全世界的人数:" << people_in_world << endl;//浮点型cout << "=======浮点型=======" << endl;float book_price {24.21f};cout << "书的价格" << book_price << endl;double pi {3.14159};cout << "圆周率:" << pi << endl;cout << "#######bool#########" << endl;bool add_to_cart {true};cout << boolalpha; // 以bool值的形式输出cout << "是否加入购物车:" << add_to_cart << endl;return 0;
}
- sizeof 和climits
代码示例:
#include<iostream>
using namespace std;
// 想要使用看大小的函数,需要引入climits
#include<climits>int main(){cout << "char:" << sizeof(char) << endl;cout << "short:" << sizeof(short) << endl;cout << "int:" << sizeof(int) << endl;cout << "long:" << sizeof(long) << endl;cout << "long long:" << sizeof(long long) << endl;cout << "float:" << sizeof(float) << endl;cout << "double:" << sizeof(double) << endl;cout << " min and max" << endl;cout << "char min:" << CHAR_MIN << ",max:" <<CHAR_MAX << endl;cout << "short min:" << SHRT_MIN << ",max:" <<SHRT_MAX << endl;cout << "long long min:" << LLONG_MIN << ",max:" << LLONG_MAX << endl;cout << "使用变量名称看大小" << endl;int age {11};cout << "age is : " << sizeof age << endl;cout << "age is : " << sizeof(age) << endl;double salary {123123.44};cout << "salary is : " << sizeof(salary) << endl;return 0;
}
- 常量
代码练手:
#include<iostream>
using namespace std;int main(){const double pi {3.1415926};cout << "请输入半径:" ;double radius {};cin >> radius;cout << "圆的面积:" << pi * radius * radius << endl;
}
3.c++ 数组和容器
注意:访问的超出范围会报错。
代码演示:
#include<iostream>
using namespace std;int maopao(int array[]){// 写一段冒泡排序的代码return 0;
} int main(){char vowels[] {'a','e'};cout << "第1个元素:" << vowels[0] << endl;cout << "第2个元素:" << vowels[1] << endl;// cin >> vowels[2];// cout << "第3个元素:" << vowels[2] << endl;double hi_tmps [] {100,101,102,103};hi_tmps[0]= 200;cout << "第五天的温度:" << hi_tmps[4] << endl; // 放到到一个未知的地址空间,数据每次都不同int student_score[5];cout << "第一个学生的成绩是:" << student_score[0] << endl;cout << "第二个学生的成绩是:" << student_score[1] << endl;cout << "第三个学生的成绩是:" << student_score[2] << endl;cout << endl;cin >> student_score[0];cin >> student_score[1];cin >> student_score[2];cin >> student_score[3];cin >> student_score[4];cout << "第一个学生的成绩是:" << student_score[0] << endl;cout << "第二个学生的成绩是:" << student_score[1] << endl;cout << "第三个学生的成绩是:" << student_score[2] << endl;cout << "第四个学生的成绩是:" << student_score[3] << endl;cout << "第五个学生的成绩是:" << student_score[4] << endl;cout << "数组的名称是:" << student_score << endl; // 数组的名称是数组的首地址cout << "数组的名称是:" << *student_score << endl; // 直接用指针指一下,输出的就是第一个数值cout << "定义一个二维数组" << endl;int array_2d[3][4] {{1,2,3,4},{5,6,7,8},{9,10,11,12}};cout << "第一行第一列的值是:" << array_2d[0][0] << endl;cout << "第3行第2列的值是:" << array_2d[2][1] << endl;cout << endl;return 0;
}
- 容器
代码练手:
#include<iostream>
#include<vector>using namespace std;int main(){// vector<char> vowels;// vector<char> vowels2 (5);// cout << "第一个元素是:" << vowels2[0] << "\n";// vector<char> vowels {'a', 'e', 'i', 'o', 'u'};// cout << "第一个元素是:" << vowels[0] << "\n";// cout << "第二个元素是:" << vowels[1] << "\n";// vector<int> test_scores (3);// cout << "第一个元素是:" << test_scores[0] << "\n";// vector<int> students_socre(3,100);// cout << "第一个元素是:" << students_socre[0] << "\n";// vector<int> students_socre {100, 98, 89};// cout << "array方式访问:" << endl;// cout << "三个元素分别是:" << students_socre[0] << " " << students_socre[1] << " " << students_socre[2] << endl;// cout<< "======================" << endl;// cout << "vector方式访问:" << endl;// cout << "三个元素是:" << students_socre.at(0) << " " << students_socre.at(1) << " " << students_socre.at(2) << endl;// // 添加元素// cout << "======================" << endl;// int add_new_value {0};// cout << "请输入一个新的值:";// cin >> add_new_value;// students_socre.push_back(add_new_value); // 添加到最后一个元素// cout << "在添加一个新的值:" ;// cin >> add_new_value;// students_socre.push_back(add_new_value); // 添加到最后一个元素// cout << "添加后一共有多少个元素 :" << students_socre.size() << endl;// cout << "第一个元素是:" << students_socre.at(0) << endl;// cout << "第二个元素是:" << students_socre.at(1) << endl;// cout << "第三个元素是:" << students_socre.at(2) << endl;// cout << "第四个元素是:" << students_socre.at(3) << endl;// cout << "最后一个元素是:" << students_socre.at(students_socre.size() - 1) << endl;// cout << "获取不存在的元素:" << students_socre.at(10) << endl; // 报错// cout << "获取不存在的元素:" << students_socre[10] << endl; // 不报错,显示0cout << "======================" << endl;vector<vector<int>> movie_ratings {{1, 2, 3, 4},{1, 2, 4, 4},{1, 3, 4, 5}};cout << "数组风格的第一个电影第一个评分是:" << movie_ratings[0][0] << endl;cout << "vector风格的第一个电影第一个评分是:" << movie_ratings.at(0).at(0) << endl;cout << "第三个电影的第四个评分是:" << movie_ratings.at(2).at(3) << endl;cout <<endl;return 0;
}
4.c++ 程序流程
if代码练手:
#include<iostream>
using namespace std;int main(){int input_num {0};const int lower_limit {10};const int upper_limit {100};cout << "Enter a number: ";cin >> input_num;if(input_num > lower_limit){cout << "\nNumber is greater than or equal to " << lower_limit << ",大" << (input_num - lower_limit) <<endl;}if (input_num < upper_limit){cout << "\nNumber is less than or equal to " << upper_limit << ",小" << (upper_limit - input_num) << endl;}if (input_num > lower_limit && input_num < upper_limit){cout << "\nNumber is in range " << endl;}if (input_num == lower_limit || input_num == upper_limit){cout << "\nNumber is on the boundary" << endl;}
}
if-esle代码练手
#include<iostream>
using namespace std;int main(){int num {0};const int target_num {10};cout << "请输入一个数字:";cin >> num;if (num <= target_num){cout << "你输入的数字小于等于目标数字" << endl;}else{cout << "你输入的数字大于目标数字" << endl;}return 0;
}
switch代码练手:
5.c++字符和字符串
相关文章:

2.c++基础语法
文章目录 1.c 程序结构关键字标识符、操作符、标点预处理指令注释main 主函数命名空间 2.c 变量和常量变量 3.c 数组和容器4.c 程序流程5.c字符和字符串 1.c 程序结构 关键字 关键字事程序保留的,程序员不能使用,c的常见关键字如下图: 标识…...
applicationContext.getBean 为null
场景: 使用SpringUtils 添加了统一类的调用。单元测试是正常的。 SpringUtils public class SpringUtils implements ApplicationContextAware {private static ApplicationContext applicationContext;Overridepublic void setApplicationContext(Nonnull Applica…...
无线WiFi安全渗透与攻防(六)之WEP破解-Gerix-wifi-cracker自动化破解WEP加密
WEP破解-Gerix-wifi-cracker自动化破解WEP加密 WEP破解-Gerix-wifi-cracker自动化破解WEP加密1.环境准备1.软件和kali2.下载软件,下载地址3.将软件复制到kali,解压4.进入软件目录2.破解步骤1.启动gerix-wifi-cracker-2-master软件2.设置无线网卡位Monitor Mode模式3.重新扫描…...
华为OD机试 - 环中最长子串(Java JS Python C)
题目描述 给你一个字符串 s,首尾相连成一个环形,请你在环中找出 o 字符出现了偶数次最长子字符串的长度。 输入描述 输入是一个小写字母组成的字符串 输出描述 输出是一个整数 备注 1 ≤ s.length ≤ 500000s 只包含小写英文字母用例 输入alolobo输出6说明最长子字符串之一…...
bug-跨域访问问题
问题场景 自定义 header,导致跨域问题 一个大屏项目,设置请求接口获取数据时,有的接口能够正常返回数据,有的接口提示跨域(接口域名不同),后端也进行支持跨域设置,结果还是提示跨域…...

Babyk勒索病毒数据集恢复,计算机服务器中了babyk勒索病毒怎么办?
计算机网络技术的不断应用,为企业的生产运营提供了极大便利,网络技术的不断发展也带来了许多网络安全隐患,近期,云天数据恢复中心陆续接到许多企业的求助,企业的计算机服务器遭到了babyk勒索病毒的攻击,导致…...

(.htaccess文件特性)[MRCTF2020]你传你呢 1
题目环境: 不难看出是一道文件上传漏洞 上传一句话木马文件burpsuite进行抓包<?php eval($_POST[shell]);?> 命名为PHP文件格式 Repeater进行重放 尝试了其它后缀进行绕过都没有成功 通过 application/x-php内容类型,可以看出被识别出是PHP文件&…...

微软Ignite 2023大盘点:GPT-4 Turbo、DALL-E 3等
11月16日,微软在美国西雅图举办“Microsoft Ignite 2023”全球开发者大会。ChatGPT等生成式AI成为了本次大会的重要主题。 下面「AIGC开放社区」将根据大会发布的内容,盘点重要内容。 GPT-4 Turbo、 DALL E 3等全新模型 16K上下文的新GPT-3.5 Turbo模…...

应用架构的演进 I 使用无服务器保证数据一致性
在微服务架构中,一个业务操作往往需要跨多个服务协作完成,包含了读取数据和更新多个服务的数据同时进行。在数据读取和写入的过程中,有一个服务失败了,势必会造成同进程其他服务数据不一致的问题。 亚马逊云科技开发者社区为开发者…...

jupyter修改默认打开目录
当我们打开jupyter notebook(不管用什么样的方式打开,使用菜单打开或者是命令行打开是一样的)会在默认的浏览器中看到这样的界面、 但是每一台不同的电脑打开之后的界面是不同的,仔细观察就会发现,这里面现实的一些文件…...

HTML5学习系列之标题和正文、描述性信息
HTML5学习系列之标题和正文、描述性信息 标题和正文标题段落 描述性信息强调注解备选上下标术语代码预定义格式缩写词编辑提示引用引述换行显示修饰非文本注解 总结 标题和正文 标题 按语义轻重排列:h1\h2\h3\h4\h5\h6 <h1>诗词介绍</h1> <h2>…...

互联网医院系统:数字化时代中医疗服务的未来
随着数字化时代的发展,互联网医院系统在医疗服务中的作用日益凸显。本文将讨论互联网医院系统的一些关键技术方面,探讨这些技术如何推动医疗服务进入数字化时代。 1. 数据智能与个性化服务 互联网医院系统依赖于大数据分析和人工智能技术,…...

(C语言)输入一个序列,判断是否为奇偶交叉数
#include <stdio.h> #include <string.h> int main() {char str[50];gets(str);int len,tmp 1;len strlen(str); //获取字符串长度 for (int i 0;i < len-1 ;i ){if((str[i] % 2 0 ) && (str[i1] % 2 ! 0)) //判断先偶数后奇数序列 tmp ;else if((s…...
蓝桥杯模拟赛:最远滑行距离 ← dfs
【题目来源】https://www.lanqiao.cn/problems/2414/learning/【题目描述】 小蓝准备在一个空旷的场地里面滑行,这个场地的高度不一,小蓝用一个 n 行 m 列的矩阵来表示场地,矩阵中的数值表示场地的高度。 如果小蓝在某个位置,而他…...
广东电信手机号余额查询接口
接口地址:https://gdty.gd189.cn/MOService/mapi/moduleRecharge/recharge/querySerCount 请求参数: {"mphone":"15303*05139","mareaCode":"","busiId":"CDMA","chongzhiType&qu…...

这次轮到微软炸场了;5000+AI工具调研报告 (500万字);狂打一星开喷AI聊天机器人;CMU LLM课程;AI创业的方向与时机 | ShowMeAI日报
👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🉑 Microsoft Ignite 2023 技术大会:微软的年度炸场时刻,而且连炸四天 https://ignite.microsoft.com OpenAI 开发…...
--max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...

单区域OSPF配置
配置命令步骤: 1.使用router ospf 进程ID编号 启用OSPF路由 2.使用network 直连网络地址 反掩码 area 0 将其归于区域0 注意:1.进程ID编号可任意(1-65535)2.反掩码用4个255相减得到 如下图,根据给出要求配置OSPF单区…...

VsCode 安装 GitHub Copilot插件 (最新)
##在线安装: 打开Vscode扩展商店,输入 "GitHub Copilot " ,选择下载人数最多的那个。(这个是你写一部分代码或者注释,Ai自动帮你提示/补全代码),建议选择这个 注意下面有个和他类似的 "GitHub Copilo…...

人工智能基础_机器学习039_sigmoid函数_逻辑回归_逻辑斯蒂回归_分类神器_代码实现逻辑回归图---人工智能工作笔记0079
逻辑斯蒂回归(Logistic Regression)是一种常用的分类算法,其基本思想是通过拟合一个逻辑斯蒂函数来预测样本所属的类别。它广泛应用于各个领域,如医学、金融、市场营销等,具有较好的解释性和可解释性。在逻辑斯蒂回归中,我们通常使用的是二分类问题,即样本只属于两个类别…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...