C++ 黑马

C++ 课程安排

  • 第一阶段
    1.C++ 基础语法入门
    2.对 C++ 有初步了解,能够有基础编程能力
    3.通讯录管理系统
  • 第二阶段
    1.C++ 核心编程
    2.介绍 C++ 面向对象编程,为大型项目做铺垫
    3.职工管理系统
  • 第三阶段
    1.C++ 提高编程
    2.介绍 C++ 泛型编程思想,以及 STL 的基本使用
    3.演讲比赛系统
  • 综合案例:机房预约系统

C++ 基础入门

C++ 初识

注释

  • 注释一般放在一段代码的上方

变量

  • 给一段指定的内存空间起名,方便操作这段内存
  • 数据类型 变量名 = 初始值
  • 注:C++ 在创建变量时,必须给变量一个初始值,否则会报错

常量

  • 用于记录程序中不可更改的数据
  • C++ 定义常量的两种方式
    1.define 宏常量【常在文件上方定义】
    #define 常量名 常量值
    2.const 修饰的变量
    const 数据类型 变量名 = 常量值

标识符命名规则

  • 标识符命名规则
    1.标识符不能是关键字
    2.标识符只能由 字母、数字、下划线 组成
    3.第一个字符必须为 字母 或 下划线
    4.标识符中的字母严格区分大小写

数据类型

  • C++ 规定在创建一个变量或常量时,必须指出相应的数据类型,否则无法给变量分配合适的内存

整型

  • 短整型 short、整型 int、长整型 long、长长整型 long long 的区别在于所占内存空间不同
  • short:2B,(-2^15 ~ 2^15-1)
  • int:4B,(-2^31 ~ 2^31-1)
  • long:4B(Windows 或 32b Linux) / 8B(64b Linux),(-2^31 ~ 2^31-1)
  • long long:8B,(-2^63 ~ 2^63-1)

实型 / 浮点型

  • 单精度 float、双精度 double 的区别在于表示的有效数字范围不同
  • float:4B,7位有效数字【默认情况下,输出小数显示 6位 有效数字】
  • double:8B,15~16位有效数字【默认情况下,输出小数显示 6位 有效数字】【小数默认都为double】
  • float vs double
    float f1 = 3.14;  // 光标移到 3.14 上,实际显示为 double 类型,故不推荐此种写法
    float f2 = 3.14f;  // 推荐写法
    float f3 = 3e2;  // 3 * 10^2
    float f4 = 3e-2;  // 3 * 0.1^2
    

字符型

  • 字符型变量用于显示单个字符
  • char ch = 'a';
    注1:显示字符型变量时,用 单引号 将字符括起来,不要用双引号
    注2:单引号内只能有一个字符,不可以是字符串
  • C / C++ 中字符型变量占用 1B
  • 示例
    char ch1 = "a";  // 报错,"const char*"类型的值不能用于初始化"char"类型的实体
    char ch2 = 'abcdefg';  // 报错,字符常量中的字符过多
    cout << (int)ch1 <<endl;  // 此种方法可查 ch1 对应的 ASCII码
    ch1 = 97;  // 可以直接用 ASCII码 给字符型变量赋值
    
  • ASCII码
    非打印控制字符:0 ~ 31 分配给了控制字符,用于控制像打印机等一些外围设备
    打印字符:32 ~ 126 分配给了能在键盘上找到的字符,当查看 / 打印文档时会出现

字符串型

  • C 风格字符串:char 变量名[] = "字符串值"【需用双引号括起来】
    char str1[] = "hello world";
    cout << str1 << endl;
    
  • C++ 风格字符串:string 变量名 = "字符串值"【需包含头文件 #include <string>

布尔类型

  • bool 类型只有两个值:0、1
  • bool 类型占 1B

转义字符

  • 用于表示一些不能显示出来的 ASCII 字符
  • 常用转义字符
    1.\n:换行,将当前位置移到下一行开头
    2.\\:反斜线字符\
    3.\t:水平制表,跳到下一个 TAB 位置
    // aaa 和 \t 一共 8bit
    cout << "aaaa\thelloworld" << endl;  // 4 空格
    cout << "aa\thelloworld" << endl;  // 6 空格
    cout << "aaaaaa\thelloworld" << endl;  // 2 空格
    

sizeof 关键字

  • sizeof 关键字可以统计数据类型所占内存大小
  • sizeof(数据类型名 / 变量名)

运算符

  • 运算符类型:算术运算符、赋值运算符、比较运算符、逻辑运算符

程序流程结构

  • 三种程序运行结构:顺序结构、选择结构、循环结构

选择结构

  • if 语句
  • 三目运算符
    C++ 中三目运算符返回的是变量,可以继续赋值
    int a = 10, b = 20, c = 0;
    (a > b ? a : b) = 100;  // a = 10, b = 100, c = 0
    
  • switch 语句
    switch(表达式) {
    	case 结果1:
    	case 结果2: 语句1;
    			break;  // 若无 break,会一直向下执行
    	...
    	default: 语句n;
    			break;
    }
    
    注:switch 表达式只能为 整型 / 字符型,不可以为区间。switch 执行效率高

循环结构

  • while 循环语句
    // 添加随机数种子,利用当前系统时间生成随机数,防止每次随机数都一样
    srand((unsigned int)time(NULL));
    // rand() % 100 + 1 生成 0 + 1 ~ 99 + 1 伪随机数
    int num = rand() % 100 + 1;
    
  • do…while 循环语句
    do {语句} while(条件);【注意分号】【先执行一次循环语句,再判断条件】
  • for 循环语句
  • 嵌套循环

跳转语句

  • break 语句
    用于跳出选择结构循环结构
    1.switch 条件语句中,终止 case 并跳出 switch
    2.循环语句中,跳出当前的循环语句
    3.嵌套循环中,跳出最近的内层循环语句
  • continue 语句
    在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环
    注:continue 并未终止整个循环,break 会跳出循环
  • goto 语句:goto 标记;
    如果标记的名称存在,执行到goto语句时,会无条件跳转到标记的位置
    程序中不建议使用goto语句,以免造成程序流程混乱
    int main() {  // 1 5
    	cout << "1" << endl;
    
    	goto FLAG;
    	cout << "2" << endl;
    	cout << "3" << endl;
    	cout << "4" << endl;
    
    	FLAG:
    	cout << "5" << endl;
    	
    	system("pause");
    	return 0;
    }
    

数组

一维数组

  • 一维数组定义的三种方式:
    1.数据类型 数组名[ 数组长度 ];
    2.数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};
    3.数据类型 数组名[ ] = { 值1,值2 ...};
    int main() {
    	int score[10];  // 定义方式1
    	score[0] = 100;
    	cout << score[0] << endl;
    	
    	int score2[10] = { 100, 90,80,70,60,50,40,30,20,10 };  // 定义方式2【如果{}内不足10个数据,剩余数据用0补全】
    	for (int i = 0; i < 10; i++) {
    		cout << score2[i] << endl;
    	}
    
    	int score3[] = { 100,90,80,70,60,50,40,30,20,10 };  // 定义方式3
    	for (int i = 0; i < 10; i++) {
    		cout << score3[i] << endl;
    	}
    
    	system("pause");
    	return 0;
    }
    
  • 一维数组数组名
    1.可统计整个数组在内存中的长度
    2.可获取数组在内存中的首地址
    注:数组名常量,因此不可以赋值
    int main() {
    	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    
    	cout << "整个数组所占内存空间为: " << sizeof(arr) << endl;
    	cout << "每个元素所占内存空间为: " << sizeof(arr[0]) << endl;
    	cout << "数组的元素个数为: " << sizeof(arr) / sizeof(arr[0]) << endl;
    
    	cout << "数组首地址为: " << (int)arr << endl;
    	cout << "数组中第一个元素地址为: " << (int)&arr[0] << endl;  // 注意取值符号
    	cout << "数组中第二个元素地址为: " << (int)&arr[1] << endl;
    
    	//arr = 100; 错误,数组名是常量,因此不可以赋值
    
    	system("pause");
    	return 0;
    }
    
  • 示例
// 数组元素逆置

函数

指针

结构体

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值