9-1-指针的基本运算.pptVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9-1-指针的基本运算

第九章 指针-指针的基本运算 《C语言程序设计》 大连理工大学 * 取内容运算符(取对象运算符): *指针 运算符后面是指向某对象的指针或地址; 运算结果是其所指向的对象(内容); 对象的数据类型与指针的指向类型一致。 int a, *p, b; char c; a = 258; p=a; a 258 p- p a 如何获得指针所指变量的内容? *p的数据类型(int) b=*p; //正确 *p=321; c=*p; //编译警告!!! 7C p  FF   12   00           0X0012FF7C 02 a  01   00   00     * 同名函数 用户自定义函数之间不能同名。 用户自定义函数可以与标准库函数同名,这时,链接器优先链接用户自定义函数。 #include stdio.h double sin(double x) //定义与库函数同名的函数, x单位为度 { int i; double t, s = 0; x *= 3.1415926 / 180; //将角度转换为弧度 for (t = x, i = 1; (t 0 ? -t : t) 1e-6; i++) { s += t; t *= -x * x / ((2 * i) * (2 * i + 1)); } return s; } main( ) { printf(%lf, sin(30) ); } //给定度数,求sin值 算法见《教材》P69例6-15 * 根据递推形式的数学公式,很容易写出递归函数。 求n的阶乘。 //递归形式 int fun(int n) { if (n =1 ) return 1; return n * fun(n - 1); } main() { printf(%d, fun(3)); } //非递归形式 int fun(int n) { int i; int m = 1; for (i = 1; i = n; i++) m *= i; return m; } main() { printf(%d, fun(3)); } * #include stdio.h main( ) { int a = 258, *p; p = a; printf(%p\n, p); // 0x0012FF7C printf(%d\n, *p); //258 *p = 321; printf(%d\n, a); //321 } a的地址 #include stdio.h main( ) { int a = 258; printf(%d\n, *( (int *) 0x0012FF7C ) ); //258 *( (int *) 0x0012FF7C ) = 321; printf(%d\n, a); //321 } * 若 int a; int *p; p = a; 则: *p = (*p) = (a) = a = p *a = *(a) = *p = a a p- p == a; *p == a; 单目运算符,优先级高于算术运算符,结合性为由右向左 互逆法则:与*是一对互逆运算符 * 1) 指针类型 2) 指针的指向类型 3) 指针的存储位置 4) 指针的指向位置 0012FF00 08 p  0012FF01 FF   0012FF02 12   0012FF03 00   0012FF04   0012FF05   0012FF06   0012FF07   0012FF08 02 a  0012FF09 01   0012FF0A 00   0012FF0B 00   0012FF0C   int a; int * p; a = 258; p = a; 要特别注意“指针的指向类型” ,它直接决定了指针运算的结果。 指针的四要素 * int a=258, *p; p=a; p=(int *)1245016; //10进制 p=(int *)0X0012FF08; //16进制 0012FF00 08 p  0012FF01 FF   0012FF02 12   0012FF03 00   0012FF

文档评论(0)

kabudou + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档