hooyantsing's Blog

C语言考研速成

字数统计: 1.5k阅读时长: 6 min
2021/09/01

黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难

1 C++初识

1.1 第一个C++程序

1.1.1 创建项目

文件 -> 项目 -> 空项目(使用C++ for Windows从头开始操作。不提供基础文件)

解决方案资源管理器 -> 源文件 -> 添加 -> 新建项 -> C++ 文件(.cpp)

1
2
3
4
5
6
7
8
# include <iostream>
using namespace std;

int main() {
cout << "Hello World" << endl; // 文字输出
system("pause");
return 0;
}

1.4 常量

作用:记录程序中不可更改的数据。

语法:两种方式:

  1. #define 宏常量:#define 常量名 常量值

​ 通常在函数的上面定义

  1. const 修饰变量:const 数据类型 常量名 = 常量值

​ 通常在变量定义前加关键字 const

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# include <iostream>
using namespace std;

// 1. #define 宏常量
#define DAY 7

int main() {
// 2. const 修饰变量
const int MONTH = 12;

cout << "一周总共有:" << DAY << "天,一年有:" << MONTH << "月" << endl;
system("pause");
return 0;
}

2 数据类型

2.2 sizeof 关键字

作用:利用sizeof关键字可以统计数据类型所占内存大小

语法:sizeof(数据类型 / 变量)

示例:

1
2
3
4
5
6
7
8
9
10
# include <iostream>
using namespace std;

int main() {
// short 占2字节
short num = 10;
cout << sizeof(short) << endl;
system("pause");
return 0;
}

2.4 字符型

作用:字符型变量用于显示单个字符

语法:char ch = 'a'

注意:

  1. 在显示字符型变量只占用1个字节
  2. 字符型变量并不是把字符本身放到内存的储存中,而是将对应的ASCII编码放到存储单元

8 结构体

8.2 结构体定义和使用

作用:结构体属于用户自定义的数据类型,允许用户存储不同的数据类型

语法:struct 结构体名 { 结构体成员列表 }

通过结构体创建变量的方式有三种:

  • struct 结构体名 变量名
  • struct 结构体名 变量名 = { 成员1值 , 成员2值 }
  • 定义结构体时顺便创建变量

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# include <iostream>
# include<string>
using namespace std;

struct Student {
string name;
int age;
int score;
}s3;// 3. 定义结构体时顺便创建变量

int main() {
// 1. struct 结构体名 变量名
struct Student s1;
s1.name = "Hooy";
s1.age = 23;
s1.score = 100;
cout << "姓名:" << s1.name << " 年龄:" << s1.age << " 分数:" << s1.score << endl;

// 2. struct 结构体名 变量名 = { 成员1值 , 成员2值 }
struct Student s2 = {"Yan" , 20 , 90};
cout << "姓名:" << s2.name << " 年龄:" << s2.age << " 分数:" << s2.score << endl;

// 3. 定义结构体时顺便创建变量
s3.name = "Tsing";
s3.age = 80;
s3.score = 123;
cout << "姓名:" << s3.name << " 年龄:" << s3.age << " 分数:" << s3.score << endl;

system("pause");
return 0;
}

8.3 结构体数组

作用:将自定义的结构体放入到数组中方便维护

语法:struct 结构体名 数组名[元素个数] = { {} , {} , {} }

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# include <iostream>
# include<string>
using namespace std;

// 1. 定义结构体
struct Student {
string name;
int age;
int score;
};

int main() {
// 2. 创建结构体数组
struct Student stuArray[3] = {
{"Hooy",20,60},
{"Yan",30,54},
{"Tsing",78,12}
};
// 3. 给结构体中的元素赋值
stuArray[1].name = "燕";
stuArray[1].age = 15;
stuArray[1].score = 3;
// 4. 遍历结构体数组
for (int i = 0;i < 3;i++) {
cout << "姓名:" << stuArray[i].name
<< "年龄:" << stuArray[i].age
<< "分数:" << stuArray[i].score << endl;
}
}

8.4 结构体指针

作用:通过指针访问结构体中的成员

  • 利用操作符 -> 可以通过结构体指针访问结构体属性

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# include <iostream>
# include<string>
using namespace std;

// 1. 定义结构体
struct Student {
string name;
int age;
int score;
};

int main() {
// 2. 创建学生结构体变量
struct Student s = {"张三",18,70};
// 3. 通过指针指向结构体变量
struct Student* p = &s;
// 4.通过指针访问结构体变量中的数据
cout << "姓名:" << p->name << endl;
}

8.5 结构体嵌套结构体

作用:结构体中的成员可以是另一个结构体

示例:每一个老师辅导一个学员,一个老师的结构体中,记录一个学生的结构体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# include <iostream>
# include<string>
using namespace std;

// 定义学生结构体
struct Student {
string name;
int age;
int score;
};

// 定义老师结构体
struct Teacher {
int id;
string name;
int age;
struct Student stu;
};

int main() {
struct Teacher t;
t.id = 1;
t.name = "老王";
t.age = 30;
t.stu.name = "张三";
t.stu.age = 18;
t.stu.score = 70;
}

8.6 结构体做函数参数

作用:将结构体作为参数向函数中传递

传递方式有两种:

  • 值传递
  • 地址传递

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
#include<string>
using namespace std;

// 定义学生结构体
struct Student {
string name;
int age;
int score;
};

// 1. 值传递:由于将对象复制一份,因此修改操作不影响原对象
void printStudent1(struct Student s) {
s.age = 100;
cout << s.name << " " << s.age << " " << s.score << endl;
}
// 2. 地址传递:由于是原对象地址,因此修改操作是对原对象修改
void printStudent2(struct Student* s) {
s->age = 120;
cout << s->name << " " << s->age << " " << s->score << endl;
}

int main() {
struct Student s = {"张三",18,70};
printStudent1(s);
printStudent2(&s);
}
CATALOG
  1. 1. 1 C++初识
    1. 1.1. 1.1 第一个C++程序
      1. 1.1.1. 1.1.1 创建项目
    2. 1.2. 1.4 常量
  2. 2. 2 数据类型
    1. 2.1. 2.2 sizeof 关键字
    2. 2.2. 2.4 字符型
  3. 3. 8 结构体
    1. 3.1. 8.2 结构体定义和使用
    2. 3.2. 8.3 结构体数组
    3. 3.3. 8.4 结构体指针
    4. 3.4. 8.5 结构体嵌套结构体
    5. 3.5. 8.6 结构体做函数参数