- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言复习及数据库练习讲课记录
C语言复习及数据库练习讲课记录
c语言复习
变量表达式
数组
指针
结构
-描述数据的
函数
-描述功能、实现
控制结构
- 顺序,选择,循环
有关数据
在写程序的时候:
1) 数据的描述和组织
在考虑的时候:语义的属性
- 单一:变量 - 范围和精度 -要考虑溢出
- 非单一的:结构
数组和结构
1,区别一:
1),数组描述:相同类型的 - 不是类型
2),结构描述:不同类型的 - 类型,跟int性质相似
2,区别二:结构体是类型,而数组不是
结构体是类型 - 定义变量
- 定义很多变量的话又可以组织成数组
- 结构数组
数组不是类型 - 就不能用数组来定义变量。
int a[10],b[10];
a = b; // ? 不可以
struct stu {
int stuno;
char name[32];
} stu1,stu2;
struct stu stu1,stu2;
stu1 = stu2; // ? 是可以的
int a,b;
a = b; //道理一样
3,数组不是类型 - 只是一个数据的组织形式
- 组织一堆变量
变量跟数组的比较
int a[6];
int a0,a1,a2,a3,a4,a5;
要描述这6个变量,有两种方式可以描述:
定义变量的方式:int a,b,c,d,e,f;
定义数组的方式:int stuno[6];
用数组的好处:
1,语义是连贯的 - 从编写阅读程序的角度,好理解。
2,便于管理 - 数组名可以用来表达这个6个学号的整体
- 从编写阅读程序的角度,好理解。
数组不是类型 - 只是一个数据的组织形式
- 是一种数据结构
数据结构:
1) 数组
2) 链表
数组与链表的比较:
1) 数组,内存空间是连续的;链表,一般来讲是不连续的。
链表 - 通过指针来串起来的 -
- 因此,链表的后一个元素只需要告诉前一个元素它的地址就可以了
- 因此,可以不用连续 - 从堆里面分配
- malloc()/free()
2) 数组的空间数组定义的时候就分配好了
- 能够包含的成员个数就固定了 - 静态的
而链表相反 - 成员个数没固定 - 动态的
很多时候,对于个数不确定的情况,应该定义成链表:
- 如果定义成数组:int a[10000];
[] - [] - [] - []
数组与变量,数组与结构,数组与链表,数组与指针的关系
结构:
1) 结构体是一种类型 - 涉及到存储空间
- 在定义结构体的时候,要考虑空间的对齐问题
struct stu {
char order; //1
int stuno; //4
char name[6]; //6
} stu1;
int main()
{
printf(%d\n,sizeof(stu1));
return 0;
}
运行结果:16
|order---|stuno|name|name--|
struct stu {
char order; //1
char name[6]; //6
int stuno; //4
} stu1;
int main()
{
printf(%d\n,sizeof(stu1));
return 0;
}
运行结果:12
|ordername|name-|stuno|
2) 结构体与函数
(1) 结构体作为函数的参数
int func1(int a) - 值拷贝
int func1(struct stu student) - 值拷贝
- 效率很低
- 解决办法:
int func1(struct stu *student);
(2) 函数作为结构体的成员
- 函数指针可以
struct student {
int stuno; - 属性
char name[32];
int (*dohomework)(void); - 动作,方法
}
这个方式可以实现C++的思想。
class student {
int stuno; - 属性
char name[32];
int dohomework(void); - 方法
}
类:继承
车 -》 卡车
- 轿车
- 加长的轿车
用结构实现集成:
struct car {
int fourlunzi; - 属性
char fangxiangpan[32];
int (*run)(void); - 动作,方法
int (*stop)(void); - 动作,方法
}
struct longcar {
struct car parent;
文档评论(0)