C/C++教程

c++中面向对象以及新特性的困惑与思考【八】【指针】

本文主要是介绍c++中面向对象以及新特性的困惑与思考【八】【指针】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

部分指针内容已经在内存相关中提及
最近一些C语言的笔试题或者是面试题又屡屡出现
因此在这里特地专开一栏用于强调

参考书籍:《C专家编程》、《C语言与指针》、《C安全手册》

1.指针运算(摩尔线程考题)
参考博客[]:https://www.cnblogs.com/engure/p/12294408.html

  • 指针变量比较大小:

    • 同类型的指针是可以进行比较大小的 比的就是地址的大小
      指针存的是地址,直接比较当然是地址大小啦.q=p+1后,q指向p指向的元素后面的地址zhi,所以q大于daop,比如p存的数据是地址1000,+1后就是1004,存入q,显然q大于p
      有一说一 先前根本没觉得这是个问题。
  • 指针变量进行加减:

    • 指针变量与整型变量进行加减:此时加减的含义并不是其地址值进行了加减,而是与指针指向的数据类型相关联。如果指针变量 p 的值是0x20000000,那么 p=p+2 的值并不是 0x20000002,如果在 32 位的操作系统上,p 是指向整型数据的指针变量,那么 p=p+2 之后,p 的地址值变成 0x20000008,也就说地址值加了: sizeof(int)*2。加减的数字是以指针指向的数据类型为量度的,p+2 表示 p 在内存中前移两个int的距离。
      同样地经常考察数组指针(数组名)的加减。这篇讲解非常详细【还有图解】:[]:https://www.freesion.com/article/2870764107/

    • 指针变量与指针变量相减(不能相加):两个指针变量(同一类型)相减表示两个指针指向的内存位置之间相隔多少个元素(不是字节数),例如对于 int 类型的指针 p1 和 p2, p1-p2 的意义表示他们之间相隔多少个int元素。

  1. 数组名是指针常量,不能修改。
这篇关于c++中面向对象以及新特性的困惑与思考【八】【指针】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!