美文网首页C语言
C语言指针的理解(二)己值和他址

C语言指针的理解(二)己值和他址

作者: 368b2befcaed | 来源:发表于2019-05-16 16:31 被阅读0次

本文我们继续来谈谈C语言的指针,主要讲解己值和他址的概念。我们接着上一篇讲。

2.2 己值

2.2.1 “己值”的概念

“己值”,就是“自己的数据值”的简称。指针pInt作为一个变量,跟变量para一样,也有着自己的数据值。

2.2.2 “己值”的获取

上面提到,变量para自己的数据值是“1”,那么指针变量pInt自己的数据值是多少。在程序中:

pInt = ¶

printf("指针变量pInt自己的值是: 0X%x ", pInt);

我通过“&”运算符,将变量para的地址值赋给了指针变量pInt,通过printf来输出指针变量pInt的数据值。从运行结果中来看,指针变量pInt自己的数据值是“0X22feb4”。我们再看,变量para的地址也是“0X22feb4”,所以,

pInt = ¶

这个语句的本质,就是将变量para的地址,给了指针变量pInt的己值,这样就将指针变量pInt与变量para绑定在一起了。

在“己址”中提到了,指针pInt的数据值存储在地址为“0X22feb8”开始的4个字节的内存上,那么也就是说,地址为“0X22feb8”开始的内存,后面的4个字节都用来存储着一个数据值“0X22feb4”。

2.2.3 “己值”的代码写法

在代码中,表示指针变量pInt的“己值”的代码写法,常见的有

pInt;

也有的代码写法是:

pInt + N;

pInt - N;

这种写法的意思是用pInt的“己值”加上一个数字N或者减去一个数字N,这个等讲到“他型”这个属性时会提到。也有的写法是:

pIntA - pIntB;

这种写法表示的是两个指针变量用“己值”做减法。

2.2.4 示意图

现在,继续来完善上面的示意图,加入指针变量pInt的己值。

所以,一般而言,“己值”对于指针变量pInt来讲,是自己的数据值;对其它的int类型的变量来讲,就是它们的地址。

2.3 他址

2.3.1 “他址”的概念

“他址”的概念就是“他人的地址”的意思。其实在上面提到己值时,就已经不那么明显地提到了“他址”的概念。

2.3.2 “他址”的获取

整型变量para存储在内存地址为"0X22feb4"开始的4个字节。在程序中,我通过

pInt = ¶

将变量para的地址给了指针变量pInt,这样就将指针变量pInt与变量para绑定在一起了。更为本质的说,是把“他人的地址”赋值给了指针变量pInt的“己值”,这里,“他人的地址”的“他”,指的就是变量para,“他人地址的址”的“址”,指的就是变量para的地址。注意,你看,”他址“和”己值“在数据值上是一样的,所以,你领悟出了什么东西来了没?

很多教材所谓的“指针是一个地址变量,存储的是其它变量的地址”,说白了,就是在说“他址”这个维度的数据值等于“己值”这个维度的数据值,只是教材没说的那么明白。

2.3.3 示意图

再来完善那个示意图,这次加入“他址”的概念。

相关文章

  • C语言指针的理解(二)己值和他址

    本文我们继续来谈谈C语言的指针,主要讲解己值和他址的概念。我们接着上一篇讲。 2.2 己值 2.2.1 “己值”的...

  • 值传递、地址传递的笔记

    在C语言中,理解值传递、地址传递和引用传递非常重要,首先,我们得来区分一下指针变量、指针地址、指针的值之间的关系。...

  • [Swift]结构体指针操作

    C语言的指针操作 在c语言中申明一个变量并通过指针修改该变量的值 a value is 2 c语言操作结构体指针操...

  • C语言学习之--容易混淆部分

    第二部分C语言重难点部分的理解 一.指针 指针定义的理解 #include int main(v...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • Java学习笔记01-传值or传引用

    突然发现Java在传值和引用部分上,借助C语言里面的指针(底层内存分配)可以很容易理解,或者者说这些难点都是C语言...

  • 链表代码注意事项

    1、理解指针或引用的含义 比如C语言是指针,就是相当于JAVA的引用 2、警惕指针丢失和内存泄漏 C 语言,内存管...

  • C语言指针的理解

    变量,变量名,变量的值,指针变量概念 变量 其值可以改变的量称这变量。一个变量应该有一个名字,在内存中占据一定的存...

  • Xcode崩溃原因汇总

    调用野指针 野指针定义:C语言: 当我们声明1个指针变量,没有为这个指针变量赋初始值.这个指针变量的值是1个垃圾指...

  • iOS崩溃总结

    一 野指针 C语言 当我们声明1个指针变量,没有为这个指针变量赋初始值.这个指针变量的值是1个垃圾指针 ,指向1块...

网友评论

    本文标题:C语言指针的理解(二)己值和他址

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