指针“变量里面的值” 和 “指针地址的值” 和 “指针指向的值” 有什么区别?

2024-11-17 07:18:07
推荐回答(4个)
回答(1):

指针“变量里面的值”存放的是内存单元的地址;“指针地址的值”指的是指针的地址值,用“&”表示;“指针指向的值”指的是指针所指向的变量的值,用“*”表示。

指针是编程语言中的一个对象,直接地对地址进行操作,其的值直接指向存在电脑存储器中另一个地方的值。通过地址能找到所需的变量单元,也就是,地址指向该变量单元。由此,地址形象化的被称为“指针”。其意是通过它能找到以它为地址的内存单元。

指针一般出现在比较接近机器语言的语言,如汇编语言或C语言。

扩展资料

指针与引用的区别:

一、指针和引用的区别

(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也有可能不指向对象则必须使用 指针.

由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值.

String & rs = string1;

由于没有所谓的 null reference 所以在使用前不需要进行测试其是否有值,而使用指针则需要测试其的有效性.

(2)指针可以被重新赋值而reference则总是指向最初或地的对象.

(3)必须使用reference的场合. Operator[] 操作符 由于该操作符很特别地必须返回 [能够被当做assignment 赋值对象] 的东西,所以需要给他返回一个 reference.

(4)其实引用在函数的参数中使用很经常.

void Get***(const int& a) //这样使用了引用又可以保证不修改被引用的值

{

}

参考资料来源:百度百科--指针

参考资料来源:百度百科--地址 (C语言)

参考资料来源:百度百科--指针变量

回答(2):

一、结果不同

例如:

int i=1; //假设i的地址为100,实际地址不是这样的。

int *p=&i; //假设指针p的地址&p为200

指针变是的值也就是指针的值p,也就是变量i的地址,即100,也就是说p=100,

而指针指向的值,指的是指针所指向的地址100这个内存位置,所对应的值,也就是i的值,为1。

二、意思不同

指针变量的值。指的是P本身的值,写作P,在这里是a的地址,类型为int型;

指针地址的值,指的是p的地址值,写作&p,这个地址代表的内存,存储出是P的值,类型为**型,也就是二级指针;

指针指向的值,指的是p值代表的地址上存储的值,写作*p,在这里就是变量a的值,类型为int型。

三、用途不同

变量是可以存储数据的,但是指针变量与普通变量不同,它用来存放普通变量的地址,即指针变量是用来存放普通变量的指针。指针变量也是一个变量,在内存中也是占内存的,只不过它不存放基本类型数据,而是存放其他基本类型变量的地址。

指针变量的地址用比该指针类型高一级的指针变量来存放指针变量的地址,如二级指针变量存放一级指针变量的地址,三级指针变量存放二级变量的地址,依次类推。

回答(3):

这几种说法,代表着不同的含义,有着不同的值,以及不同的数据类型。具体说明如下:

在C语言中,指针是一个很重要的组成部分,其本质为某一段内存的起始地址。以如下代码进行举例说明:

int a;//定义一个变量a。
int *p;//定义一个指针p。
p=&a; //将a的地址赋值给p。

1、 指针变量的值,指的是p本身的值,写作p, 在这里是a的地址,类型为int *型;

2、 指针地址的值,指的是p的地址值,写作&p, 这个地址代表的内存,存储出是p的值,类型为int **型,也就是二级指针;

3、指针指向的值,指的是p值代表的地址上存储的值,写作*p, 在这里就是变量a的值,类型为int型。

以上三种,都是最常用的指针说明方式,必须要深入理解并灵活掌握,否则很难学好C语言。

回答(4):

无论是普通的变量还是指针变量在内存中都有一个地址(如果已经分配好的话)
经过赋制操作,比如说p=&a,指针变量p里的值是一个地址,这个地址就是变量a的地址
当然指针变量本身也有一个地址
指针指向的值就是指针变量的值里的那个地址所对应的变量的值,也就是a的值,*p等于a。
不知道你理解了没有?