目录
1、初识c++
1.1第一个程序
1.1.1Hello world
1.1.2运行结果
1.2注释
2、数据类型
2.1数据类型
2.3标识符命名规则
2.2变量
2.4常量
2.5输入输出流
2.6关键字
3、运算符
3.1算术运算符
3.2关系运算符
3.3逻辑运算符
3.4位运算符
4、程序流程结构
4.1顺序结构
4.2选择结构(分支结构)
4.2.1if-else语句
4.2.2switch语句
4.2.3多条件的if分支结构
4.3循环结构
4.3.1for循环
4.3.2while循环
3.3.3do...while循环
3.3.4嵌套循环
4.4三目运算符
4.5跳转语句
5、数组
5.1一维数组
5.2二维数组
5.3数组增删改查
6排序
6.1桶排序
6.2选择排序
6.3冒泡排序
7、字符串
7.1c++字符串输入总结
7.2 字符串处理函数
8、函数
9、指针
9.1一维指针
9.2const修饰
9.3二维数组
9.4指针与数组、函数
10、结构体
10.1结构体概念与定义
10.2结构体数组
10.3结构体指针
10.4结构体嵌套(含数组)
10.5结构体作函数参数
11、查找
1、二分查找
编写一个C++程序,总共包含4个步骤
- 创建项目
- 创建文件
- 编写代码
- 运行程序
dev安装
1.1.1Hello world
1.1.2运行结果
作用:在代码中加一些说明和解释,方便自己或其他程序员阅读代码
两种格式:
1、单行注释: / / 相关描述
通常放在某行代码的上方,或者某一条语句的末尾,对该行代码说明
2、多行注释: / * 相关描述 * /
通常放在一段代码的上方,对该段代码做整体说明
注:编译器在编译代码时,注释不会执行,会忽略注释的内容
一个字节 = 8bit = 8 个位
一些基本类型可以使用一个或多个类型修饰符进行修饰:
- signed 符号型
- unsigned 无符号型
- short 短型
- long 长型
字符型
作用:存单个字符
语法: char ch = '单个字符' ; 如: char ch = 'p' ;
注: 1、用单引号将字符括起来,不要用双引号
2、单引号内只能有一个字符,不可以是字符串
字符串型
作用:存多个字符组成的字符串
语法: string str = "字符串" 如: string str = "abc123";
布尔型(bool)
作用:布尔数据类型代表真或假的值
bool类型只有两个值:
- true -- 真(本质是1)
- false -- 假(本质是0)
即变量、常量、函数的命名规则:
- 标识符只能由字母、数字、下划线组成
- 第一个字符必须为字母或下划线,不能是数字
- 标识符中字母区分大小写
- 标识符不能是关键字
正确命名:abc_、a1、c3、_t 、Char 、 int4 等
错误命名:int、4ab、long、"abc" 等
大写字母和小写字母是不同的,因为 C++ 是大小写敏感的。所以Char可以当作变量使用。
变量:
1 变量代表一个有名字的、具有特定属性的一个存储单元;
2 变量用来存放数据,也就是存放变量的值;
3 变量的值可以改变;
4 变量有特定的类型,类型决定了存储单元的大小和变量值的范围,运算符可应用于变量上
语法: 数据类型 变量命 = 初始值 ;
注:每个变量名都是唯一,不能重命名。
作用:用于记录程序中不可更改的数据
两种方式:
1、宏定义:# define 常量名 常量值
- 位于头文件后,主函数前。
2、const修饰的变量: const 数据类型 变量 = 常量值
- 修饰该变量为常量,不可修改。
输出:cout
输出:cin
新手主要学习一下三种运算符:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符(新手不学)
注:
- 只有整型变量可以进行取模运算
- 在除法运算中,除数不能为0
a++:先赋值,后自增
++a:先自增,后赋值
a--、--a 同理
判断两个操作数的值是否相等,如果相等则条件为真。
a==b、b==c假、真!=判断两个操作数的值是否不相等,如果不相等则条件为真。
a != b、b != c真、假>判断左操作数的值是否大于右操作数的值,如果是则条件为真。a>b、b>c真、假<判断左操作数的值是否小于右操作数的值,如果是则条件为真a<b、b<c假、假>=判断左操作数的值是否大于或等于右操作数的值,如果是则条件为真。a>=b、b>=c真、真<=判断左操作数的值是否大于或等于右操作数的值,如果是则条件为真。a<=b、a<=c假、假(后续更新)
三大基本结构:
- 顺序结构:程序按照顺序一次执行,不发生跳转
- 选择结构:判断条件是否满足,执行相应的程序
- 循环结构:判断条件是否满足,对某段程序重复执行
如上图所示。
4.2.1if-else语句
4.2.2switch语句
注意:
- switch语句中表达式数据类型只能是整型或者字符型
- case里如果没有break,那么程序会一直向下执行
总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间
4.2.3多条件的if分支结构
c++中有三种循环,
for循环:一边用于已知循环次数
while循环:未知循环次数
do...while循环:第一次不用进行条件判断
4.3.1for循环
语法:
for(表达式1;表达式2;表达式3){ // 表达式2为真继续循环,否则结束循环
循环体语句;
}
其中:
表达式1:初始条件
表达式2:循环条件
表达式3:初始条件变化
4.3.2while循环
语法:
while( 循环条件 ){ // 条件为真继续循环,否则结束循环
循环体语句
}
3.3.3do...while循环
语法:
do{
循环体语句
}while( 循环条件);
注:该循环与while循环有区别,这是先循环一次,再进行判断
3.3.4嵌套循环
在某循环体中再嵌套一层循环。
一个变量相当于输出一个点,一个循环相当于输出一条线,双重循环相当于输出一个平面,三重循环相当于输出一个立体图形
语法:由for、while、do...while循环,其中两个或以上的组合
语法:
解释:
- 当表达式1的值为真,执行表达式2,并返回表达式2的结果;
- 当表达式1的值为假,执行表达式3,并返回表达式3的结果。
- 在switch条件语句中,终止case并跳出switch
- 在循环语句中,跳出当前的循环
- 在嵌套循环中,跳出最近的内层循环
注意:continue并不会终止整个循环,而break会跳出循环
goto语句示例:
注意:不建议使用goto语句,容易造成程序流程混乱
定义:是一个集合,存放相同数据类型的数据元素。
特点:数组中的每个元素都是相同的数据类型,内存是连续的。
语法: 数据类型 数组名称 [ 数组大小 ]
注:数组中下标是从0开始索引
获取数组大小及地址
&:取地址符号
语法: 数据类型 数组名[ 行数 ] [ 列数 ]
学生成绩 :
初始化只有一列:
求字符数组的长度: strlen( 数组名 )
- 按值删除
- 按下标删除
- 某元素,插入某个位置
- 修改某个位置的值
- 查找某个元素的位置
- 找某下标的值
思想:在已知数据范围的情况下,分配相应范围大小的数组空间。遍历所有数据,遇到对应下标时,计数增一。
思想:
- 在待排序的一组数据中,选出最小(最大)的一个数与第一个位置的数交换。
- 然后在剩下的数中,再找最小(最大)的数与第二个位置的数交换位置。
- 依次类推直到第 n-1 个元素与第 n 个元素交换位置,选择排序结束。
思想:
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这一趟比较完后,最后的元素会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。(排好序的数不再进行比较)
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
如:气泡在水中上浮时,气泡越来越大
基本解法:
优化程序:
直接输出string类型,须加<string>
分为:cin、getchar和scanf、cin.get()、gets、cin.getline()、getline
1、cin: 接收字符串时,遇“空格”、“TAB”、“回车”都结束
2、scanf: 接收字符串时,遇“空格”、“TAB”、“回车”都结束
getchar: 接收一个字符
3、 cin.get(): 接收字符串时, 可以接收空格
4、gets(): 接收字符串时, 可以接收空格
5、cin.getline():接收字符串时,可以接收空格并输出
6、getline() : 接收字符串时,可以接收空格并输出,需包含头文件“ #include<cstring> ”
头文件:#iclude<cstring>
strcpy(s1,s2)、strcmp(s1,s2)、strlen(s1)、strcat(s1,s2)、strlwr(s1)、strupr(s1)
1、strcpy(s1, s2)
说明:把字符串s2拷贝到s1,即s1的数据变成了s2的数据
注意:必须保证s1的内存空间大于或等于s2
2、strcmp(s1, s2)
说明:按照ASCII码顺序,s1和s2中的每个字符进行比较,
注意:当遇到某个字符不等时结束判断
返回值:比较结果。
- 字符串1=字符串2,返回值=0;
- 字符串1>字符串2,返回值>0,即 1;
- 字符串1<字符串2,返回值<0,即 -1。
3、strlen(s1)
作用:求字符数组或字符串的长度
4、strcat(s1, s2)
作用:把s2拼接到s1后面
5、strlwr(s1) 大写转小写
6、strupr(s1) 小写转大写
作用: 将一段经常使用的代码封装起来,减少重复代码
- 形参数据改变时,实参不会改变。
- 形参和实参可以同名,也可以不同名
语法: 数据类型 * 指针变量
指针所占内存:32位电脑占4字节,64位电脑占8字节。所有数据量类型都一样。
示例:
输出时可以简单的理解成:* 号取值,& 号取地址
指针与数组:
指针与函数:
传地址会改变实参的值,穿值不改变
结构体就像excel表格一样,可以存不同类型的元素。数组只能存一种类型的元素。
语法:
struct 结构体名{
结构体成员列表
};
struct是关键字不能省略。
结构体的使用有三种方式:
嵌套时也可以使用数组。
到此这篇编程入门(c加加编程入门)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!传值的时候不改变实参的值,穿地址会修改实参的值。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/32734.html