- 1、递归
- 2、结构体结构体指针
- 2.1、声明一个结构体类型的一般形式
- 2.2、结构体指针的使用
- 2.3 typedef 的使用
- 2.3 c++的引用
- 3、逻辑结构与存储结构
- 3.1逻辑结构
- 3.2存储结构
第一步找公式,第二步写结束条件
#include2、结构体结构体指针 2.1、声明一个结构体类型的一般形式//上楼梯问题 int step(int n) { if (n == 1 || n == 2) { return n; } return step(n-1) + step(n - 2); } int main() { int n; scanf_s("%d", &n); step(n); return 0; }
struct 结构体名 {
成员列表;
}
#include2.2、结构体指针的使用#include //结构题的类型 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };//结构体声明,注意最后一定要加分号 //结构体的大小68个字节 //cpu取地址不满4对齐 //对齐的目的是使提高cpu访问内存的效率 int mian() { struct student s = { 1001,"lele",'m',19,98.5,"shenzhen" };// 初始化操作 struct student sarr[3];//结构体数组 int i; printf("%d %s %c %d %5.2f %sn", s.num, s.name, s.sex, s.score, s.addr); for(i = 0; i < 3;i++) { scanf("%d %s %c %d %f %s",&sarr[i].num,sarr[i].name,sarr[i].addr);//直接写成数组 } return 0; }
#include2.3 typedef 的使用#include //结构题的类型 struct student { int num; char name[20]; char sex; }; int main() { struct student s = { 1001,"wangle",'M' }; struct student* p;//不用用点 因为指针优先级低于. p = &s; printf("%d %s %cn", (*p).num, (*p).name, (*p).sex); printf("%d %s %c n", p->num, p->name, p->sex); return 0; }
起别名
typedef struct student{
int num;
char name[20];
char sex;
}stu,*pstu; //可以起两个别名
对int 起别名,为了做到代码既注释
#include2.3 c++的引用typedef struct student { int num; char name[20]; char sex; }stu, * pstu; //可以起两个别名,叫stu 结构体指针的名称叫pstu; typedef int INTEGER; int main() { stu s = { 1001,"wangle",'M' }; pstu p; //stu*p1 ,那p1也是一个结构体指针 INTEGER i = 10; p = &s; printf("i=%d,p->num=%dn", i, p->num); }
int a;
void modifynum(int &b){
++b;
}
把&写到形参的位置是c++的语法,称为引用
#includevoid modifynum(int& b) { b = b + 1; } int main() { int a = 10; modifynum(a); printf("a=%dn", a); return 0; } //把&写到形参的位置是c++的语法,被称为引用,这时候操作b在主函数里面使用和a等价的
出现不能将 void 类型的值分配到int型 说明要强制类型转换
#include#include void modifynum(int& b) { b = b + 1; } void modify_pointer(int*& p)//相当于二级指针吧 { p = (int*)malloc(20); p[0]=5; } int main() { int a = 10; modifynum(a); printf("a=%dn", a); int* p = NULL; modify_pointer(p); return 0; }
*int &P 相当于二级指针
3、逻辑结构与存储结构 3.1逻辑结构数据之间的逻辑关系 抽象的
分为集合结构 无关系
线性结构 一对一
树形结构 一对多
图形结构 多对多
3.2存储结构数据结构在计算机中的表示 具体的
顺序存储 顺序结构每个元素都是挨着的
链式存储 数据是跳跃的不是挨着的
索引存储
散列存储
计算机只存在顺序存储和链式存储



