黑马c++学习笔记基础篇-创新互联
基础篇
网站标题:黑马c++学习笔记基础篇-创新互联
网页网址:http://scyanting.com/article/dhggee.html
- 命名空间的作用
- 避免同名问题
- 变量
- 方便我们进行内存管理,给一段内存起一个名方便管理内存空间
- 不用记忆内存名字
- 语法
- 数据类型 变量名 = 变量初始值;
- 常量
- 记录程序中不可更改的数据
- 语法
- # define 宏常量
- const 修饰的变量
- 关键字
- c++中预先保留的单词,这些单词编译器全懂=都征用了,有其特定的含义
- 不能用关键字起名,在编译器中会产生歧义
- 标识符
- c++给标识符(变量或者常量)命名时,有自己的一套规则
- 不能用关键字
- 有字母、数字、下划线组成,开头不能是数字
- 区分大小写
- 最好能见名知意
- 数据类型
- 给变量分配一段合理的内存空间
- 一般数据大小就用int即可
- sizeof关键字
- 语法
- sizeof(数据类型/变量)
- 语法
- 实型(浮点数)
- 默认情况下输出一位小数,显示六位有效数字
- float 7位有效数字 占用四个字节
- 通常在float后面加上f,告诉它是float类型的数据类型
- double 15-16位有效数字 占用8个字节
- 科学计数法
- 3e2=3*10^2
- 3e-2=3*0.1^2
- 字符型
- 用于显示单个字符 占一个字节
- 语法
- char 变量名 = 字符
- 单引号里面只能有一个字符
- 用单引号括起来
- 字符型变量并不是将字符存在内存中,而是将对应的ASCII码存在了内存中
- (补充知识点)
- 强转 (int)字符
- 将字符强转为整型为了看他的ASCII码
- a-97 A-65
- ASCII码主要分为两部分
- 0-31个为非打印控制符
- 32-126为打印控制符
- 强转 (int)字符
- 转译字符
- 用于显示一些不能显示出来的ASCII码字符
- 语法
- /符号
- 放在输出内容中
- \n
- 换行
- \\
- 输出\
- \t
- 制表符用于对齐数据
- 字符串型
- 用于表示一串字符
- 语法
- char 变量名[] ="字符串"
- string 变量名="字符串"
- 用c++分格需包含它的头文件
- 布尔数据类型
- 布尔数据表示真和假的值
- 占用一个字节大小
- 只要非0即为真
- 数据的输入
- 从键盘上获取数据
- cin>>变量
- 运算符
- 算数运算符
- 除法分母不能为0
- 取模运算即取余运算
- 不可为0,不可为小数
- 前置,先递增递减在做运算,后置先运算,在进行递增递减
- 数值运算符
- 比较运算符
- 返回表达式的比较
- ==,等价
- 逻辑运算符
- 算数运算符
- 程序流程结构
- 顺序结构
- 按顺序
- 选择结构
- 按条件是否满足,执行相应功能
- 三目运算符
- 表达式1?表达式2:表达式3
- 表达式1为真,执行表达式2否则执行表达式3
- 返回的是一个变量,可以继续进行赋值操作
- 表达式1?表达式2:表达式3
- swich语句
- 如果break前的语句过长会报错,这时,用一个{}将内容括起来
- 语法
- swich(条件)
- {
- case 1:
- 执行语句;
- break;
- case……
- default:
- 执行语句
- break;
- }
- 执行效率高,但不可判断区间
- 满意度游戏
- 循环结构
- 按条件是否满足,循环的执行某段代码
- while
- 语法
- while()
- {}
- 条件为真执行
- 循环应避免死循环的出现
- 猜数字游戏
- 语法
- do while
- 语法
- do
- {}
- while()
- 先执行后判断
- 案例水仙花树
- 语法
- for循环
- 语法
- for(起始表达式;条件表达式;末尾循环体)
- {执行语句}
- 敲桌子游戏
- 语法
- 嵌套循环
- 双重for循环
- 跳转语句
- 出现在swich中,跳出case和swich
- 出现在循环中,跳出当前循环
- 出现在嵌套循环中,跳出最近的一层循环
- 加上判断条件,可实现特定情况下的退出
- continue语句
- 作为筛选条件,跳过之后的未执行循环语句,进行下次循环
- goto语句
- 无条件的跳转语句
- 尽量不要使用goto语句,以免造成程序流程混乱
- goto FLAG;
- flag:
- 顺序结构
- 数组
- 一位数组
- 一个集合,存放相同数据类型的元素
- 存放在一段连续的内存空间中
- 下标从0开始
- 初始化没写的默认为0
- 数组名不要和变量名字重复
- 数组名是常量不能进行赋值操作
- 语法
- 数据类型 数组名 [数组长度];
- 数据类型 数组名 [数组长度]={值1,值2,......};
- 数据类型 数组名 []={值1,值2};
- 数组名的用途
- 统计数组大小
- sizeof(arr)
- 数组首地址
- arr
- 数组元素个数
- sizeof(arr)/sizeof(arr[0])
- 看数组元素的首地址
- &arr[0]
- 统计数组大小
- 游戏
- 五只小猪称体重
- 定义额外变量存储大值,不要改变数组元素内容
- 数组元素逆置
- 用两个变量存储开始位
- 置和结束位置,来进行while语句中的判断
- while(start
- while(start
- 五只小猪称体重
- 二维数组
- 名称用途
- 看占用的内存空间
- 查看地址
- 名称用途
- 一位数组
- 函数
- 将一段经常使用的代码封装起来,减少重复代码
- 语法
- 函数的为形参,调用时为实参
- 值传递
- 函数调用时,实参将数值传入形参
- 如果形参发生改变,不影响实参
- 函数的常见样式
- 无参无返
- 有参无返
- 无参有返
- 有参有返
- 函数的声明
- 函数只能定义一次可以声明多次
- 在函数定义前声明
- 函数的分文件编写
- 指针
- 指针也是一种数据类型,32位操作系统占4个字节,64位占8个字节,不区分变量类型
- 作用
- 通过指针简介访问内存
- 用指针变量保存地址
- 定义指针
- 数据类型 * 指针变量名(是一个16进制的数字)
- 解引用
- *指针变量
- 告诉计算机你找到了指针指向的内存
- *指针变量
- 空指针和野指针
- 空指针
- 空指针,给指针变量进行初始化
- 空指针指向的内存不能直接访问
- 0-255均为系统占用
- 野指针
- 在程序中野指针是非常危险的
- 直接指向一个地址空间
- const修饰指针
- 根据const位置读
- 修饰指针
- const int *
- 可改指向,不可改值
- 修饰常量
- int* const p
- 可以改值,不改指向
- 修饰指针修饰常量
- const int* const p
- 均不可改
- 利用指针来访问数组
- int*p p++指针指向后移,一次移动4/8个字节
- 值传递
- void kk(int*p)
- 指针、数组、函数应用实例
- 将数组进行冒泡排序
- 空指针
- 结构体
- 用户自定义的数据类型
- 创建结构体变量和创建结构体均要写struct
- 传入参数的话,只要写student s;
- 利用.访问结构体成员
- 语法
- struct 结构体名{结构体成员列表};
- 可以在创建变量的同时赋值
- struct student s1{"张三","男",““15”};
- 也可在创建变量后一个一个赋值
- struct student s1;
- s1 .name=??;
- s1.sex=??;
- s1.age=??;
- 结构体数组
- 语法
- struct student 变量名[3]={{},{},{}};
- 可在之后进行赋值
- 语法
- 结构体指针
- 自己创建的数据类型* 变量名;
- 变量名->成员;
- 结构体嵌套
- 结构体中可以定义另一个结构体,用于解决实际问题
- 结构体作为函数参数
- 结构体作为函数参数传入
- 想修改实参的值用地址传递
- 结构体中const的使用场景
- 将函数中的形参改为指针,不用备份一份新的数据,减少内存开销
- 传入指针时,在其前面加上const,一但有修改的操作就会报错,防止误操作
- 游戏案例
- 老师带学生
- 设置英雄的结构体,根据年龄排序
- 通讯录管理系统
- 具体程序自己找文件
- 清空联系人只要将数量置为0即可,无需管信息是否还在里面,只是逻辑上的清空
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站标题:黑马c++学习笔记基础篇-创新互联
网页网址:http://scyanting.com/article/dhggee.html