内存,指针

简介: 内存,指针

1.在你的32位电脑中,有32根地址线(实物),当给这32根地址线通电时,有高电频(1)、低电频(0),这32根地址线通电后会将电信号转换为数字信号,所有二进制序列的可能性便有2^32种。内存的最小单元是字节(byte),由此可见内存共有2^32个字节的空间,即4GB。

2.而地址是什么呢?计算机中的内存单元都有自己的编号,这些编号就是地址(C语言中的指针)。

int a=10;

变量的创建需要向内存中申请空间,上面的代码本质上其实是向内存申请4个字节的空间。

int* p=&a;

变量a占用4个字节的内存空间,但是&a的结果是什么呢?我们创建指针变量p来接受a的地址,当我们&a时,拿到的是四个字节中第一个字节的地址。

3.学习指针有什么用?这就好比你知道了别人的地址,你可以通过地址找到那个人。C语言中也一样,上面创建的指针变量p存放的就是变量a的地址,我们用解引用操作符 * 就可以通过地址找到变量a中存放的10.

printf("%d",*p);

通过解引用指针变量(*p)就可以找到变量a中存放的内容。这段代码便可以输出10。

4.指针变量的大小是几个字节呢?

 1.中说过,内存的最小单元是字节,所以可以说地址的存储需要多大空间,指针变量的大小就是几个字节。而地址是什么呢?计算机中的内存单元都有自己的编号,这些编号就是地址。每种编号就是32位二进制的序列,即4字节。可以得出结论,在32位机器上指针变量的大小是4字节,64位机器上是8字节。

目录
打赏
0
0
0
0
0
分享
相关文章
|
7月前
|
指针和动态内存分配
指针和动态内存分配
131 0
C语言如何使用结构体和指针来操作动态分配的内存
在C语言中,通过定义结构体并使用指向该结构体的指针,可以对动态分配的内存进行操作。首先利用 `malloc` 或 `calloc` 分配内存,然后通过指针访问和修改结构体成员,最后用 `free` 释放内存,实现资源的有效管理。
310 13
C 语言指针与内存管理
C语言中的指针与内存管理是编程的核心概念。指针用于存储变量的内存地址,实现数据的间接访问和操作;内存管理涉及动态分配(如malloc、free函数)和释放内存,确保程序高效运行并避免内存泄漏。掌握这两者对于编写高质量的C语言程序至关重要。
105 11
C 语言指针详解 —— 内存操控的魔法棒
《C 语言指针详解》深入浅出地讲解了指针的概念、使用方法及其在内存操作中的重要作用,被誉为程序员手中的“内存操控魔法棒”。本书适合C语言初学者及希望深化理解指针机制的开发者阅读。
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
4月前
|
在使用指针数组进行动态内存分配时,如何避免内存泄漏
在使用指针数组进行动态内存分配时,避免内存泄漏的关键在于确保每个分配的内存块都能被正确释放。具体做法包括:1. 分配后立即检查是否成功;2. 使用完成后及时释放内存;3. 避免重复释放同一内存地址;4. 尽量使用智能指针或容器类管理内存。
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
276 4
|
5月前
|
内存指针解引用
【10月更文挑战第14天】
67 1
|
5月前
|
C++
析构造函数就是为了释放内存,就是在局部指针消失前释放内存,拷贝构造函数就是以构造函数为模块,在堆里面新开一块,同一个变量在堆里面的地址
本文讨论了C++中构造函数和析构函数的作用,特别是它们在管理动态内存分配和释放中的重要性,以及如何正确地实现拷贝构造函数以避免内存泄漏。
64 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等