当前位置: 首页 > news >正文

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 程序结构 关键字 关键字事程序保留的&#xff0c;程序员不能使用&#xff0c;c的常见关键字如下图&#xff1a; 标识…...

applicationContext.getBean 为null

场景&#xff1a; 使用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&#xff0c;导致跨域问题 一个大屏项目&#xff0c;设置请求接口获取数据时&#xff0c;有的接口能够正常返回数据&#xff0c;有的接口提示跨域&#xff08;接口域名不同&#xff09;&#xff0c;后端也进行支持跨域设置&#xff0c;结果还是提示跨域…...

Babyk勒索病毒数据集恢复,计算机服务器中了babyk勒索病毒怎么办?

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

(.htaccess文件特性)[MRCTF2020]你传你呢 1

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

微软Ignite 2023大盘点:GPT-4 Turbo、DALL-E 3等

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

应用架构的演进 I 使用无服务器保证数据一致性

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

jupyter修改默认打开目录

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

HTML5学习系列之标题和正文、描述性信息

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

互联网医院系统:数字化时代中医疗服务的未来

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

(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/【题目描述】 小蓝准备在一个空旷的场地里面滑行&#xff0c;这个场地的高度不一&#xff0c;小蓝用一个 n 行 m 列的矩阵来表示场地&#xff0c;矩阵中的数值表示场地的高度。 如果小蓝在某个位置&#xff0c;而他…...

广东电信手机号余额查询接口

接口地址&#xff1a;https://gdty.gd189.cn/MOService/mapi/moduleRecharge/recharge/querySerCount 请求参数&#xff1a; {"mphone":"15303*05139","mareaCode":"","busiId":"CDMA","chongzhiType&qu…...

这次轮到微软炸场了;5000+AI工具调研报告 (500万字);狂打一星开喷AI聊天机器人;CMU LLM课程;AI创业的方向与时机 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f251; Microsoft Ignite 2023 技术大会&#xff1a;微软的年度炸场时刻&#xff0c;而且连炸四天 https://ignite.microsoft.com OpenAI 开发…...

--max-old-space-size=8192报错

vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

单区域OSPF配置

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

VsCode 安装 GitHub Copilot插件 (最新)

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

人工智能基础_机器学习039_sigmoid函数_逻辑回归_逻辑斯蒂回归_分类神器_代码实现逻辑回归图---人工智能工作笔记0079

逻辑斯蒂回归(Logistic Regression)是一种常用的分类算法,其基本思想是通过拟合一个逻辑斯蒂函数来预测样本所属的类别。它广泛应用于各个领域,如医学、金融、市场营销等,具有较好的解释性和可解释性。在逻辑斯蒂回归中,我们通常使用的是二分类问题,即样本只属于两个类别…...

购买阿里云服务器需要多少钱?活动价3000元-5000元的阿里云服务器汇总

购买阿里云服务器需要多少钱&#xff1f;如果我们只有3000元-5000元的预算可以购买什么实例规格和配置的阿里云服务器呢&#xff1f;因为阿里云服务器价格是由实例规格、配置、带宽等众多配置决定的&#xff0c;所以&#xff0c;目前阿里云活动中的价格在3000元-5000元的云服务…...

CentOS修改root用户密码

一、适用场景 1、太久没有登录CentOS系统&#xff0c;忘记管理密码。 2、曾经备份的虚拟化OVA或OVF模板&#xff0c;使用模板部署新系统后&#xff0c;忘记root密码。 3、被恶意攻击修改root密码后的紧急修复。 二、实验环境 1、VMware虚拟化的ESXI6.7下&#xff0c;通过曾经…...

Android消息机制(Handler、Looper、MessageQueue)

一、ThreadLocal 1、什么是ThreadLocal ThreadLocal 是一个线程内部的数据存储类&#xff0c;通过它可以在指定的线程中存储数据&#xff0c;数据存储以后&#xff0c;只有在指定线程中可以获取到存储的数据&#xff0c;对于其他线程来说则无法获取到数据。 一般来说&#xf…...

Pikachu漏洞练习平台之XXE(XML外部实体注入)

目录 什么是 XML&#xff1f; 什么是DTD&#xff1f; 什么是XEE&#xff1f; 常见payload 什么是 XML&#xff1f; XML 指可扩展标记语言&#xff08;EXtensible Markup Language&#xff09;&#xff1b; XML 不会做任何事情&#xff0c;而是用来结构化、存储以及传输信息…...

ubuntu中/etc/rc.local和/etc/init.d/rc.local的区别是什么

在早期版本的Ubuntu中&#xff0c;通常会使用 /etc/rc.local 或 /etc/init.d/rc.local 文件执行在系统启动时需要运行的自定义脚本或命令。然而&#xff0c;随着Ubuntu的版本升级&#xff0c;这两者的使用方式有了一些变化。 /etc/rc.local&#xff1a; 功能&#xff1a; /etc/…...

vue项目中 commonJS转es6

背景&#xff1a;项目中需要使用一个插件&#xff0c;但是插件底层是commonJS语法 项目结构&#xff1a;webpackvue2.x 转换准备工作 安装插件&#xff1a; 以下插件如已安装请忽略 npm install babel/preset-env vue/cli-plugin-babel/preset babel/plugin-transform-runt…...

【C++】AVL树(动图详解)

文章目录 一、前言二、AVL树的概念&#xff08;引入bf&#xff09;三、AVL节点树的定义四、AVL树的基本框架五、AVL树的旋转5.1左单旋&#xff08;新节点插入较高右子树的右侧---右右&#xff1a;左单旋&#xff09;例一&#xff08;h0&#xff09;例二&#xff08;h1&#xff…...

「Verilog学习笔记」用3-8译码器实现全减器

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 首先列出3-8译码器和全减器的真值表 全减器真值表如下 3-8译码器真值表如下 timescale 1ns/1nsmodule decoder_38(input E ,input A0 …...

rocketmq: MQClientException: No route info of this topic

可能是broker没连接到&#xff08;或配置&#xff09;name server有关...

【Vue全家桶 合集 关注收藏】

【Vue全家桶】全面了解学习并实践总结Vue必备知识点 写在前面 &#x1f917; 这里是SuperYi Vue全家桶合集站&#xff01; &#x1f33b; 人海茫茫&#xff0c;感谢这一秒你看到这里。希望我的文章对你的有所帮助&#xff01; &#x1f31f; 愿你在未来的日子&#xff0c;保持…...