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++字符和字符串

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

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

相关文章

机器人导航+OPENCV透视变换示例代码

透视变换又称四点变换&#xff0c;所以不能用于5边形这样的图形变换&#xff0c;不是真正的透视变换&#xff0c;但是这个方法可以把机器人看到的图像转换为俯视图&#xff0c;这样就可以建立地图&#xff0c;要不然怎么建立地图呢。 void CrelaxMyFriendDlg::OnBnClickedOk()…

Python如何调用ixchariot进行吞吐量测试

Python如何调用ixchariot进行吞吐量测试 要使用Python调用IxChariot进行吞吐量测试&#xff0c;您可以使用 subprocess 模块来执行IxChariot的TCL命令行。下面是一个简单的示例代码&#xff1a; import subprocess# 定义IxChariot的安装路径和测试脚本路径 ixchariot_path &q…

Ubuntu 18.04无网络连接的n种可能办法

文章目录 网络图标消失&#xff0c;Ubuntu无网络连接VMware上Ubuntu18.04&#xff0c;桥接了多个网卡&#xff0c;其中一个用来上网&#xff0c;均设置为静态ip网络桥接链路没有接对路由不对 网络图标消失&#xff0c;Ubuntu无网络连接 sudo service network-manager stop sud…

增删改查mysql

查询 -- 查询表结果-- 查看 当前数据库下的表show tables;-- 查看指定的表desc tb_emp; -- td_emp 是表名-- 查看 数据库的见表语句show create table tb_emp; 修改 -- 修改表结构 -- 修改 为表 tb_emp 添加字段 qq varchar(11) alter table tb_emp add qq varchar(11) …

【LeetCode刷题-滑动窗口】--340.至多包含K个不同字符的最长子串

340.至多包含K个不同字符的最长子串 class Solution {public int lengthOfLongestSubstringKDistinct(String s, int k) {int len s.length();if(len < k){return len;}//滑动窗口的左右指针int left 0,right 0;//定义一个哈希映射HashMap<Character,Integer> hash…

2023-11-18 mysql-sysbench压测TPS/QPS-记录

摘要: 2023-11-18 mysql-sysbench压测TPS/QPS sysbench压测TPS/QPS 使用 sysbench 压测 TPS/QPS 的基础测试数据是 6 张表,每张表写入 10 万行数据,然后在此基础测试数据上分别进行 300 秒的混合写、更新、删除压测。 sysbench --mysql-host=192.168.41.xxx --mysql-port=3…

java中的深度复制和浅复制的BUG

刷题刷到LeetCode回溯DFS的算法题39题的时候,碰见一个Arraylist里面的bug,其中dfs函数里面的第一个if判断里面的语句 paths.add(path); path.clear();其中path是添加了path,但是添加之后path.clear(),导致原来添加到paths的path置为空数组,因为ArrayList的add只是把一个引用指…

使用Postman进行压力测试

1.打开Postman新建测试接口 2.点击右边保存&#xff0c;选择一个文件集合&#xff0c;如果没有就创建&#xff0c;然后保存 就是这个东西&#xff0c;这里不便展示出来&#xff0c;压力测试需要在文件夹里面进行 3.选择要测试的接口&#xff0c;iterations 表示请求发起次数&a…

基于Vue+SpringBoot的大学计算机课程管理平台 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…

金蝶云星空签出元数据提示“数据中心业务对象版本高于应用版本”

文章目录 数据中心业务对象版本高于应用版本签出元数据提示建议 数据中心业务对象版本高于应用版本 签出元数据提示 建议 每次签出元数据前&#xff0c;先获取最新的代码后再签出&#xff0c;如果还是提示&#xff0c;那就根据你的情况选择版本。

@Autowired注解和@Resource注解的区别

Autowired 和 Resource 都是用于依赖注入&#xff08;Dependency Injection&#xff09;的注解&#xff0c; 区别如下&#xff1a; 1、来源不同: Autowired 是Spring框架的注解&#xff0c;用于自动装配bean。 Resource 是Java EE&#xff08;Java Platform, Enterprise Edi…

IDEA远程一键部署SpringBoot到Docker

IDEA是Java开发利器&#xff0c;Spring Boot是Java生态中最流行的微服务框架&#xff0c;docker是时下最火的容器技术&#xff0c;那么它们结合在一起会产生什么化学反应呢&#xff1f; 一、开发前准备 1. Docker安装 可以参考&#xff1a;https://docs.docker.com/install/ 2…

JavaScript对象

在JavaScript中&#xff0c;对象是一种非常重要的数据类型。它们允许我们组织和存储相关的数据&#xff0c;并提供了一种灵活的方式来操作和访问这些数据。本文将介绍JavaScript对象的基本概念&#xff0c;包括创建对象、访问对象属性、对象的方法和构造函数&#xff0c;以及原…

【人工智能实验】A*算法求解8数码问题 golang

人工智能经典问题八数码求解 实际上是将求解转为寻找最优节点的问题&#xff0c;算法流程如下&#xff1a; 求非0元素的逆序数的和&#xff0c;判断是否有解将开始状态放到节点集&#xff0c;并设置访问标识位为true从节点集中取出h(x)g(x)最小的节点判断取出的节点的状态是不…

智慧能源太阳能光伏数据采集终端钡铼技术4G无线RTU

智慧能源太阳能光伏系统在当今的能源行业中扮演着越来越重要的角色&#xff0c;而钡铼技术有限公司的4G无线RTU&#xff08;远程终端单元&#xff09;作为数据采集终端&#xff0c;为智慧能源太阳能光伏系统的监测和管理提供了全新的解决方案。 首先&#xff0c;钡铼技术的4G无…

2023年中国恒温蜡疗仪发展趋势分析:应用前景存有很大发展与探索空间[图]

恒温电蜡疗仪可将蜡熔化&#xff0c;利用蜡自身特点&#xff0c;能阻止热的传导、散热慢、气体和水分不易消失&#xff0c;保温性能优越。利用蜡能紧密贴于体表的可塑性&#xff0c;可加入其他药物协同进行治疗&#xff0c;也可将中药与蜡疗有机地结合在一起&#xff0c;产生柔…

CentOS和Ubuntu中防火墙相关命令

CentOS和Ubuntu中防火墙相关命令 1、CentOS7中防火墙相关命令2、Ubuntu中防火墙相关命令 1、CentOS7中防火墙相关命令 在CentOS 7中&#xff0c;与防火墙相关的命令主要包括firewalld命令。以下是一些常用的firewalld命令&#xff1a; 查看firewalld服务状态&#xff1a; syst…

Vue-Pinia

目录 Pinia状态管理库 使用步骤 1、安装Pinia 2、在vue应用实例中使用pinia 3、在src/stores/token.js中定义stores 4、在组件中使用store axios请求拦截器 代码实现 Pinia状态管理库 Pinia是Vue的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态 一般在登录时…

开启CentOS/Debian自带的TCP BBR加速

BBR 是什么我就不多做介绍了。如果系统自带内核高于4.9 则默认已包含 BBR。 操作方法&#xff1a; 1、使用 root 权限运行下面代码 uname -r //内核版本高于 4.9 就行。2、开启BBR echo "net.core.default_qdiscfq" >> /etc/sysctl.conf echo "net.ip…

系列三、GC垃圾回收【总体概览】

一、GC垃圾回收【总体概览】 JVM进行GC时&#xff0c;并非每次都对上面的三个内存区域&#xff08;新生区、养老区、元空间/永久代&#xff09;一起回收&#xff0c;大部分回收的是新生区里边的垃圾&#xff0c;因此GC按照回收的区域又分为了两种类型&#xff0c;一种是发生在新…