一.结构体
定义:
一些值的集合,这些值称为成员变量,结构体的每个成员可以是不同类型的变量
1.结构体(结构)的声明
struct Book(结构体名称) { Member-list(成员列表) }variable-list(变量列表);
1.1结构体的作用:
之前笔记中的类型都是内置型:
char short int ……
所以就有结构体来描述复杂对象
结构体可以是任何类型
1.2结构体变量的创建
1.2.1
struct (结构体名称) (变量名)
struct Stu s1
1.2.2
在1中的变量列表处直接创建变量s1、s2……
注意:此处的变量是全局变量
struct Stu { Member-list } s1, s2;
1.2.3
使用typedef,就能简写struct成自定义的类型名,如Stu
typedef struct Stu { //Member - list }Stu;//Stu 是重命名产生的新的类型 int main() { Stu s1,s2; return 0; }
1.3结构体变量的初始化
使用{}进行赋值,有两种方式,如:
struct B { char c; int i; }; struct S { char c; int num; int arr[10]; double* pd; struct B sb; struct B* pb; }s1;//s1是全局变量 struct S s2;//s2是全局变量 int main() { double d = 3.14; //按照顺序初始化 struct S s3 = { 'q', 100, {1,2,3}, &d, {'a', 99}, NULL }; //指定成员来初始化 struct S s4 = { .num = 1000, .arr = {1,2,3,4,5} }; return 0; }
2.结构体成员的访问
分为两种
结构体变量.成员名
结构体指针->成员名
3.结构体变量的传参
推荐传址调用:
a 传址调用能实现的作用比传值调用更大。
b 节省占用栈区空间的大小,行能更高。
二实用调试技巧
1.bug
指飞蛾
事件链接:
有兴趣的可以了解一下
由此,飞蛾(bug)就引申为计算机程序的错误
2.调试
2.1定义
寻找错误并解决的过程就是调试
2.2步骤
2.3debug和release
debug:
debug(调试)版本:
不进行优化,由于进行调试
release:
release(发布)版本:
自动进行优化,不能调试,给用户使用的版本
3.windows环境调试介绍
3.1环境准备
debug版本
3.2快捷方式
下面介绍五个最常用的快捷键。
提示:部分机器需要加上Fn键。
补充:
F11更细致:能进入函数内部,并逐条执行其中的语句。
F9创建断点
F5跳过断点前的代码,便于调试
F5还可以使用条件断点,更快捷
如图:
提示:
当循环中存在断点时,F5只会跳到下一次循环中的断点