cl二级C -针和链表jsleyx.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cl二级C -针和链表jsleyx

指针和链表 §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;

文档评论(0)

rzz181 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档