(湖大公考)湖南省农村信用社考试之C语言相关知识分析.ppt

(湖大公考)湖南省农村信用社考试之C语言相关知识分析.ppt

  1. 1、本文档共175页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
int *fun(int x,int y) /* fun函数返回形参x,y中较大数的地址(指针) */ { int *z; if(xy) z=x; else z=y; return z; } 指针函数实例 * * * * * * * * * * * * * * * * * * * * * * * * * * 指针初始化和引用 int x=10; int *p; /* p是指针变量,指向不确定目标 */ 编译连接时要为整型变量x和指针变量p分配内存 图 p与x未建立联系 10 x 地址:ffda 常规变量,存放数据 ? 指针变量,存放内存地址 p 地址:ffdc 指向不确定目标 int x=10; int *p; p与x未建立联系,不能通过p间接访问x。 !! int x=10; int *p=NULL;/* p是指针变量,不指向任何目标 */ 编译连接时要为整型变量x和指针变量p分配内存 图 p与x未建立联系 10 x 地址:ffda 常规变量,存放数据 NULL 指针变量,存放内存地址 p 地址:ffdc 不指向任何目标 int x=10; int *p=NULL; p与x未建立联系,不能通过p间接访问x。 !! int x=10; int *p=x; /* p是指针变量,指向x目标 */ 编译连接时要为整型变量x和指针变量p分配内存 图 p与x建立联系 10 x 内存地址: ffda 常规变量,存放数据 ? 指针变量,存放内存地址 p 内存地址:ffdc p指向x 可通过指针p间接访问x。 指针法:*p *p可认为是x的别名。 int x=10; int *p=x; p与x建立了联系,能通过p间接访问x。 *p可视为x的别名。通过*p可间接访问x。 *p是指针表示法。 !! ffda 定义指针的目的是为了通过指针去访问内存单元。 通过该指针访问它所指向的存储单元的方式: 【格式】 *(地址表达式) 若: int i; /* 定义整型变量i */ int *p; /* 定义指针变量p */ p=i; /* p指向i */ *p=3; /* 使i的内容为3 */ int *p=i; [指针的初始化和引用] 注意: float *p, x=2; p=x; printf(“%f”, *p); 两个*p表示的含义不同 【总结】 一般情况下,在定义变量的时候看到*表示该变量 为指针变量 其他地方看到*,一般表示该指针变量所指向的内容 (除表示乘法运算(如a*b)情况外) 如果指针变量与常规变量未建立了联系,则表达式:*指针变量, 不能使用。 例如,int *p=NULL 或 int *p,则*p=10是错误的赋值语句。因为值10无内存空间存放。 注意: main() { int a=1,b=2; int *p=a; printf(“%d ”,a); printf(“%d ”, *p); *p=3; printf(“%d”,a); } 1 1 3 结果: 例如: p和a建立联系 等价于: int *p; p=a; 指针赋值是改变指针的指向,比较抽象,须加深感性认识。形象描述指针赋值最好的方法是图示法。 例如: int n=10,m=20,*p=n,*p1=n; p=m; 10 n 20 m p p1 10 n p p1 20 m 图 a 图 b 变量定义后,指针p和p1都指向变量n,如图a所示。执行p=m 语句后,指针p指向m, 不再指向n,如图b所示。 1、请写出以下程序的输出结果() main() { int i=2,j=3,n,*p,*q=j; p=i; *p=3 n=i+*q; printf(“%d”,n); } 【练习】: 答案: 1)6 【练习】: 1、执行以下程序后,a的值为(),b的值为() main() { int a,b,k=4,m=6,*p1=k,*p2=m; a=p1==m; b=(*p1)/(

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档