c语言指针总结.doc

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

第八章: 指针 知识结构: 1)指针的基本概念 2)怎么定义指针 3)指针的运算 1)指针的基本概念 内存:以字节为单位,由若干个字节组成 为了便宜管理,给每个字节编号(十六进制) 每一个字节的编号在整个内存都是唯一 定义变量:在计算机内存中去预定内存 各类变量所预定的空间大小不同 整型:int TC 2字节 VC 4字节 long TC 4字节 VC 4字节 short TC 2字节 VC 2字节 实型:float TC 4字节 VC 4字节 字符型: char TC 1字节 VC 1 字节 变量的地址,指向变量的指针 用来存储变量地址的变量,指针变量 指针变量只能存储地址,类型必须要一致才能存储 scanf(%d,a); 2)定义指针变量 int a,b; int *p,*q; 类型名 *指针变量名1,*指针变量名2... 类型名 :该指针变量的基本类型,只能存储对应类型变量的地址 *:指明该变量是一指针类型的变量(只能存储地址) float *ft1,*ft2; double *db1,*db2; 指针变量名: 不包括*号 怎么样去访问变量的内容: 1)拿到该变量的地址,直接对该地址进行访问 2)通过指针变量来间接访问存储单元 怎么样给指针变量赋值: int a,b; int *p,*q; 获取变量的地址: 可以用取地址运算符 (),将变量的地址取出 变量名 : 将指定变量的首字节的编号拿到 得到指定变量的地址 p = a; :将a的地址取出存储到指针变量p中 通过p可以间接访问变量a p就是指向变量a的指针 q = b; 注意: 指针变量的类型必须和变量的基类型是一致才能存储 q = 10; /*指针只能存储地址值*/ int a,b,*q,*c,*p; p = a; q = b; c = p; /*将p中的内容取出,赋值给指针c,使指针c和指针p同时指向p所指向的变量*/ 可以让指针不指向任何存储单元: int *p; p = NULL; P = 0; P = \0; 上面三种方式,都可以使指针p没有指向 int a,*p; int **q;/*指向指针的指针变量*/ p = a; q = p; 指向指针的指针变量: 基本类型 **指针变量名1,**指针变量名2... 只能存储指针变量的地址,指向的是指针 用指针怎么样来访问变量: *指针变量名; *: 运算符将指针所指向的变量内容访问出来 int a,*p; a = 10; p = a; a = *p int a,*p,**q; a = 10; p = a; q = p; a *p **q *都是单目运算符 左边必须是一个变量名,不能表达式或常量 左边必须能够代表一个唯一的存储单元地址 错误赋值表达式: (A+B) = 10 10 = 10 从键盘上输入两个整数,然后输出 *:定义语句中出现时,表示该变量是一个指针变量 执行语句中出现时,代表间接访问指针变量所指向变量的值 #include stdio.h void main() { int a,b,*p=a,*q,*c,d; q = b; c = d; *c = *p; scanf(%d%d,p,q); printf(a=%d,b=%d\n,*p,*q); } 10 20 a=10,b=20 Press any key to continue 1)指针变量在定义时就可以给其进行初始化操作 *:定义语句中出现时,表示该变量是一个指针变量 执行语句中出现时,代表间接访问指针变量所指向变量的值 2)凡是出现a地方,都可以指针p去代替 3)凡出现a的地方,都可以用间接访问指针去代替(*p) 指针: 为操作存储单元提供一种间接的访问方式 直接访问变量名属于直接操作 2.交换a,b两个变量的值(指针来操作) #include stdio.h void main() { int a,b,*p=a,*q=b,t; scanf(%d%d,p,q); printf(1)a=%d,b=%d\n,*p,*q); t = *p; *p = *q;/*将指针变量q所指向变量的值取出来赋值给指针变量p所指向的存储单元中*/ *q = t; printf(2)a=%d,b=%d\n,*p,*q); } 10 20 1)a=10,b=20 2)a=20,b=10 Press any key to continue 3.输入两个数,找出

文档评论(0)

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

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

1亿VIP精品文档

相关文档