美文网首页程序员
关于指针的一些记录

关于指针的一些记录

作者: 星期八我一定好好读书 | 来源:发表于2017-09-22 18:39 被阅读0次

1、按变量的地址直接存取变量的方法,称为“直接访问”。存储该变量的内存空间的首地址称为该变量的地址。

2、如果将一个变量的地址放在另一个变量中,则存放地址的变量称为指针型变量。

此时存取变量,可以间接地由指针型变量取得该变量的地址,这称为“间接访问”的方式。

3、指针型变量的值也简称为指针,所以指针就是地址。

4、指针型变量的定义格式:类型 * 变量名。其中*是定义指针类型的说明符,而不是指针变量的一部分。

5、指针变量绝对不能任意赋一个内存地址,只能取一个已经分配了内存的变量的地址赋值给指针变量。

6、c++中,有两个专门的运算符与指针有关。

a. &:取地址符,运算结果不能作为左值。

b. *: 是间接引用运算符,作用于一个指针型变量,访问该指针所指向的内存数据。因为是内存中的可寻址数据,所以可以作为左值。

7、const修饰指针:

a. 指针常量:固定指向一个对象的指针,指针本身是常量,此时,const放中间。char * const ptr = &ch。ptr本身在初始化时的地址是不可变的,但它指向的目标ch的值是可以改变的。

b.  常量指针:指向“常量”的指针,即指针本身是可以改为指向别的对象,但不能通过该指针修改对象。即只能作为只读指针使用。此时,const放前面,const char * ptr = &ch。常量指针一般用于函数的参数,以免误改实参。

8、数组与指针的关系:数组名看作改数组的第一个元素在内存中的首地址。数组名是地址,当然也是指针,但数组名中存放的地址是不可以改变的,所以称为指针常量。

9、指针作为函数参数。将指针做为函数的参数时,传的仍然是值,即指针的值,这个值就是指针所指向元素的地址。

从物理上讲,传的是指针的值,与传其他变量没有区别,函数获得的是另一个变量的地址;

从逻辑上讲,是把另一个变量的地址传了过去,可以看作传地址。

函数中操作的对象不是指针本身,而是指针所指向的变量,与引用参数在本质上没有差别。

10、指针的“算术运算”与“关系运算”,只有指针指向数组或结构体元素的时候,这些运算才有意义,主要规则:

a.指针变量与整形变量n的加减表示移动指针

新指针的值 = 原指针 + n * sizeof(指针指向的数据类型)

b.只有当两个同类型的指针变量指向同一个数组时,才可以进行减法运算,表示从第一个指针到第二个指针元素之间的元素数量。第一个和第二个元素之间元素的个数是1,即原指针的地址值得差除以sizeof(元素类型)

c.只有当指向同一个数组时,才能用‘>' '==' '!='

注意:两个指针相加毫无意义

d.指针同样可以++,--运算,必须小心使用,注意优先级。

y = *p++   ==> y = *(p++)因为后++,所以y取值为*p, 而*p增加1后,指向下一个元素。

千万不要以为是p所指的目标元素的值加1.

相关文章

  • 关于指针的一些记录

    1、按变量的地址直接存取变量的方法,称为“直接访问”。存储该变量的内存空间的首地址称为该变量的地址。 2、如果将一...

  • C中指针的概念

    C中指针一直是难点,也是优点。翻阅各种文档,发现了下篇关于指针的介绍,记录如下: * intp;//这是一个普通的...

  • 剑指offer:链表中倒数第k个结点

    因为没有系统地学过数据结构,所以需要多记录一些有关于数据结构的题目。 链表的题目首先要考虑的就是快慢指针,显然这道...

  • C语言声明指针小结

    博客开了这么久,都没写什么技术性的文章,恰好最近在看C语言相关的东西,学会一些关于指针声明的小技巧,记录一下。言传...

  • 关于指针传递和指针的指针

    一开始没有理解,导致对这个概念非常的模糊和不解。最近看完《 彻底搞定C语言指针详解》,里面关于指针的指针的解释有了...

  • C:函数指针的坑

    关于该死的函数指针和指针函数 先来个目录 常量指针、指针常量 数组指针、指针数组 函数指针、指针函数 1、先看第一...

  • 2019-05-22 常量与指针,数组与指针

    常量与指针,数组与指针 常量与指针 常量与指针的关系很容易弄混,为此我专门在此记录一下。 常量指针 指向常量的指针...

  • C++对象模型(2)

    本文预览: 关于vptr(虚函数表指针)和vtbl(虚函数表) 关于this指针 关于Dynamic Bindin...

  • 关于指针

    简介 c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。...

  • 关于指针

    本文为学习使用 在C语言中任意的同类型指针都可以比较大小指针变量是一个表示[内存地址]的长整数而已,当然可以比较。...

网友评论

    本文标题:关于指针的一些记录

    本文链接:https://www.haomeiwen.com/subject/fxmxextx.html