- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C二级第08章演示
第8章 地址和指针 第8章 地址和指针 8.1 变量的地址和指针 8.2 指针变量的定义和基类型 8.3 给指针变量赋值 8.4 对指针变量的操作 8.5 函数之间地址值的传递 C程序中每一个实体,如变量、数组和函数等,都要在内存中占有一个存储区域,其第一个字节的地址被称为首地址 例如: short int a,b; float x; short int *p; 地址与指针 int a; a=1; 以上两条语句,就其计算机内部来讲,执行过程可以有两种方法:直接赋值和间接赋值。 第8章 地址和指针 8.1 变量的地址和指针 8.2 指针变量的定义和基类型 8.3 给指针变量赋值 8.4 对指针变量的操作 8.5 函数之间地址值的传递 第8章 地址和指针 8.1 变量的地址和指针 8.2 指针变量的定义和基类型 8.3 给指针变量赋值 8.4 对指针变量的操作 8.5 函数之间地址值的传递 1. 通过获得变量地址 int k=1, *p,*q; q=k; 2. 通过指针变量获得地址 int k=1, *p,*q; q=k; p=q; 3. 通过标准函数获地址 在第13章介绍 应用malloc函数 calloc函数 8.3.2 给指针变量赋“空”值 P=NULL; P=\0 P=0; 第8章 地址和指针 8.1 变量的地址和指针 8.2 指针变量的定义和基类型 8.3 给指针变量赋值 8.4 对指针变量的操作(定义和使用是两个不同的概念,但可能出现相同的写法) 8.5 函数之间地址值的传递 8.4.1 指针应用一(、*) :取地址运算符 * : 指针运算符(间接访问运算符,即后面 跟指针变量或地址。自右向左的结合性) 即使用指针: int *p,i=10,j;(定义) p=i; j=*p;(使用,把p所指的变量的值赋值j。 相当于j=i) j=*(i);(使用,把i地址中的值赋值j) 指针应用二(、*) int **p,*s,k=20; S=k;p=s; 则*s代表存储单元k,*p代表存储单元s,**p代表存储单元k. 即:指针应用时,指针变量前加*,相当于取指 针变量的值:*s即s所指的变量的值,即K值 *p即p所指的指针变量的值, 即K的地址值 **p即取s的地址内的值,即k值) 指针应用三 int *p,k=0; p=k; 现将100存入k中,即*p=100;(相当于k=100) 若*p=*p+1,即将P所指的变量的值加一后, 再放入P所指的存储单元中。即将100加一变为101后放入P所指的变量中去。 所以赋值运算符左侧代表指针的存储单元;右侧代表指针所指的存储单元的内容。 写成*p+=1或++*p或(*p)++ 注:*p++中,++优先级等于*,*满足自右向左结合性 指针应用四(、*) 均为一元运算符、右结合性 设 int x=10; int *px=x; 例8.1 选出较小数 #include stdio.h main() { int a,b,min,*pa,*pb,*pmin; pa=a; pb=b; pmin=min; scanf(%d%d,pa,pb); printf(a=%d,b=%d\n,a,b); *pmin=*pa; if(*pa*pb) *pmin=*pb; printf(min=%d\n,min); } 8.4.2 指针的移动与比较 设px,py是类型相同的指针变量,n为整型变量,则: px+n px-n px++ px-- ++px --px px-py pxpy px=py pxpy px=py px==py px!=py px=x py=y px=py 均为合法的运算 第8章 地址和指针 8.1 变量的地址和指针 8.2 指针变量的定义和基类型 8.3 给指针变量赋值 8.4 对指针变量的操作 8.5 函数之间地址值的传递 8.5.1 函数之间地址值的传递 例8.2 编写函数myadd(int *a, int *b), 函数中把指针a和b所指的存储单元中的两个值相加,将和值作为函数值返回。 8.5.2 被调函数改变调用函数的值 例8.3 调用函数交换主函数中变量x和y的值 #include stdio.h void main(void) { void swap(int , int); int a=3,b=5; printf(交换前:%d, %d\n,a,b); swa
文档评论(0)