- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指针和链表
§1.结构体
1.声明结构体类型
struct 结构体名
{
成员列表
}
例:
struct student
{
int num;
char name[20];
int age;
float score;
}
2.定义变量
(1).先定义类型再定义变量
如:类型如上定义,变量定义为:
struct student student1,student2
(2).定义类型的同时定义变量
struct 结构体名
{
成员列表
}变量列表;
(3).注:成员也可是结构体变量
如:struct date
{
int month;
int day;
int year;
}
struct student
{
int num;
…
struct date birthday;
} student1,student2;
(4).结构体类型变量的引用
1.不能将一个结构体变量作为一个整体进行输入和输出;如以下错误:
printf(%d,%s,%c,%d,%f,%s,student1)
只能引用单个成员,如下:
结构体变量名.成员名
2.如果成员本身又是一个结构体,则要用若干个成员运算符,一级一级地找到最低的一级成员:
student1. birthday. year
3.对成员变量可以像对普通变量一样进行各种运算
student1.age++;
4.可以引用成员的地址,也可以引用结构体变量的地址
scanf(%d,student1.num);
printf(%d,student1);
§2.指针
变量的指针和指向变量的指针变量
(1).基本概念
变量的指针就是变量的地址
(2).指针变量的定义
专门用来存放另一变量的地址的变量,称为指针变量。它的值为指针(地址)。
int i,j;
int *pointer1,*pointer2;
pointer1=i;
pointer2=j;
注:一个指针变量只能指向同一个类型的变量.
(3).指针变量的引用.
int a;
int *p;
a=10;
p=a;
prinf(%d,*p);
请指出以下的含义:
1 *p
2 *a
3 *p++ (相当于*(p++)
(4).例:输入a和b,按先大后小顺序输出
main()
{
int *p1,*p2,*p, a, b;
scanf(%d,%d,a,b);
p1=a; p2=b;
if(ab)
{
p=p1;p1=p2;p2=p;
}
printf(a=%d,b=%d\n,a,b);
printf(max=%d,min=%d\n,*p1,*p2)
}
指针变量做函数参数
要用函数实现两个变量值的交换,该如何实现?
(1).实现方案1:
swap(int x,int y)
{
int t;
t=x; x=y; y=t;
}
调用形式: swap(a,b)
结论:不能实现
(2). 实现方案2:改变指针形参的值
swap(int *p1,int *p2)
{
int *p;
p=p1;p1=p2;p2=p;
}
调用形式:swap(a,b)
结论:不能实现
(3). 实现方案3:交换*p1, *p2的值
swap(int *p1,int *p2)
{
int *p;
*p=*p1; //有错
*p1=*p2;
*p2=*p;
}
(4). 实现方案4:
swap(int *p1,int *p2)
{
int *p;
p=*p1;*p1=*p2;*p2=p;
}
调用形式: swap(a,b)
结论:成功
数组的指针
(1).概念
数组的指针是数组的起始地址
数组元素的指针是数组元素的地址.
(2). int a[10];
int *p;
p=a[0];等价p=a;
(3).通过指针引用数组元素
如上定义:
1.*p=1; //数组第0个元素赋值为1
2.p+i和a+i就是a[i]
3.*(p+i)或*(a+i)是a[i]
4.例:输入数组全部元素。
main()
{
int a[10];
int *p,i;
您可能关注的文档
- 九年级数学第二十三章旋转全章教案 新课标 人教版.doc
- 九年级数学第二十三章旋转全章教案新人教版.doc
- 九年级旋转知识练习。.doc
- 九年级英语Modules 1.doc
- 九年级英语上册Modules1.doc
- 九年级英语外研版小学起点上Module 5教案.doc
- 九年级知识点归纳 Unit 1114.doc
- 九年级英语月考试卷 201312.doc
- 九年级英语全册教案Unit Unit 6.doc
- 九年级英语Unit6 Section A(1a2c)优秀教案.doc
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- 《七律·长征》公开课教学PPT课件【部编人教版六年级语文上册】.ppt VIP
- 《基于深度学习的电商用户行为预测与精准营销策略优化》教学研究课题报告.docx
- 塔吊法福克M1280D说明书.pdf
- 管理者角色转身:从业务能手到团队领导者的蜕变.pptx
- 2025年上海市中考英语试卷(含听力文稿及参考答案)(2).pdf VIP
- GB 14784-2013 带式输送机 安全规范.docx VIP
- 弱电智能化工程质量管理.pdf VIP
- 铁路专业部分常用词汇中英文对照表.docx VIP
- 常见化疗药物及运用PPT课件.pptx VIP
- 2025年汽车驾驶员高级技师基本理论知识考试题附含答案.docx VIP
文档评论(0)