语言指针的含义定义.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语言指针运算时“ ”和“* ”是什么意思 Producer:静悄悄的坏 “”在指针运算中是 取地址符,* 是取内容符,例如: d=3;p=d;x=*p ;先为d,x分别赋值 , 之后把 d作为地址放入指针 p中,p 现在的数值就被定义为 3了,然后取内容符,就把 p的内容赋 给x ,x 存放的就是 3了。 在二者运算时需要注意几点,二者的优先级是相同的。操作顺序是自右向左, *d =d 。先赋地 址d ,然后再取出d ,结果还是d 。取地址只能取普通变量,指针变量或数组元素,其它一律 不成。x不能出现在赋值的左边, x=12 是错误的。 注意 * 号也有乘法的意思, *p=3*7 是允许的 。 p的值是21。 在第四课我们学习数据类型时,学习过指针类型,知道它是一种存放指向另一个数据的地 址的变量类型。指针是 C语言中一个十分重要的概念,也是学习 C语言中的一个难点。对于指针 将会在第九课中做详细的讲解。在这里我们先来了解一下 C 语言中提供的两个专门用于指针和 地址的运算符: * 取内容 取地址 取内容和地址的一般形式分别为: 变量 = * 指针变量 指针变量 = 目标变量 取内容运算 是将 指针变量所指向的目标变量的值赋给左边的变量 ;取地址运算 是将目标变 量的地址赋给左边的变量 。要注意的是: 指针变量中只能存放地址(也就是指针型数据) ,一般 情况下不要将非指针类型的数据赋值给一个指针变量 。 下面来看一个例子,并用一个图表和实例去简单理解指针的用法和含义。 设有两个 unsigned int 变量 ABC 处 CBA 存放在 0x0028,0x002A 中 另有一个指针变量 portA 存放在 0x002C 中 那么我们写这样一段程序去看看 *, 的运算结果 unsigned int data ABC _at_ 0x0028; unsigned int data CBA _at_ 0x002A; unsigned int data *Port _at_ 0x002C; #include #include void main(void) { SCON = 0x50; // 串口方式 1, 允许接收 TMOD = 0x20; // 定时器 1定时方式 2 TH1 = 0xE8; //11.0592MHz 1200 波特率 TL1 = 0xE8; TI = 1; TR1 = 1; // 启动定时器 ABC = 10; // 设初值 CBA = 20; Port = CBA; // 取 CBA 的地址放到指针变量 Port *Port = 100; // 更改指针变量 Port 所指向的地址的内容 printf(1: CBA=%d\n,CBA); // 显示此时 CBA 的值 Port = ABC; // 取ABC 的地址放到指针变量 Port CBA = *Port; //把当前 Port 所指的地址的内容赋给变量 CBA printf(2: CBA=%d\n,CBA); // 显示此时 CBA 的值 printf( ABC=%d\n,ABC); //显示 ABC 的值 } 程序初始时 值

文档评论(0)

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

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

1亿VIP精品文档

相关文档