首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在堆上创建的变量,指向同一变量的2个指针有不同的地址?

在堆上创建的变量是通过动态内存分配函数(如malloc、new等)在堆内存中分配的变量。堆是一块较大的内存区域,用于存储动态分配的数据。

当在堆上创建变量时,会返回一个指向该变量的指针。如果有两个指针指向同一个堆上的变量,那么这两个指针的地址是不同的。

这是因为指针本身也是一个变量,它在栈上分配内存。栈是一种用于存储局部变量和函数调用信息的内存区域。每个指针变量在栈上都有自己的地址。

当我们使用动态内存分配函数在堆上创建变量时,函数会返回一个指向堆上变量的指针。这个指针变量本身是在栈上分配的,它存储了堆上变量的地址。如果有多个指针指向同一个堆上的变量,那么每个指针变量在栈上都有自己的地址,因此这些指针的地址是不同的。

这种情况下,指针变量的值(即指向堆上变量的地址)是相同的,但指针变量本身的地址是不同的。

总结起来,堆上创建的变量通过指针来引用,不同指针的地址是不同的,但它们的值(指向堆上变量的地址)是相同的。

关于堆、栈和指针的更详细信息,可以参考腾讯云的相关文档:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1分14秒

C语言 | 通过指向结构体变量的指针变量输出结构体变量中的信息

1分43秒

C语言 | 用指向元素的指针变量输出二维数组元素的值

9分19秒

036.go的结构体定义

2分55秒

064.go切片的内存布局

8分9秒

066.go切片添加元素

1分37秒

腾讯千帆河洛场景连接-自动发送短信教程

6分7秒

070.go的多维切片

14分12秒

050.go接口的类型断言

7分8秒

059.go数组的引入

10分30秒

053.go的error入门

1分3秒

振弦传感器测量原理详细讲解

21秒

常用的振弦传感器种类

领券