- 学习指针我们就必须了解一个叫内存的概念,大家可以百度它的定义,通俗的理解就是内存就是一个房子,现在他被分成了好多房间,用来存储内容。
- 首先我们先写出一个代码

在这个代码中我们可以看到的是int a=10这一行所表达的就是向内存申请了4个字节来存放10;
为什么是4个字节呢? 原因就是int所占的内存大小是4个字节。
- 最开始我们说到内存被分成了好多个房间,而字节就是那些房间,但一个电脑有这么多字节,我们所存的10放在了哪里呢?所以我们就需要对他们进行编号,计算机为了编号方便所以选择了16进制,但是计算机本身就是个二进制的机器所以就需要对其进行转换(建议大家复习一下进制之间的转换)。
- 下一步我们可以看一下他的编号

经过调试后(一定要进行调试!!!),然后就打开“调试”有一个选项叫“内存”还有一个叫“监视”,他们俩个都可以打开,然后输入&a就可以得到他的编号了(&这个符号叫做取地址操作符)但在实际取地址上,我们只取了四个字节中的一个。
- 说完了取地址,我们就要谈一谈怎么取地址,这也就引出了下一个概念叫做指针变量。

- 我们在原来代码的基础上加上了int* p=&a; 在这指针变量就是p,int*为指针变量的类型,随着指针变量类型的变化int也可以换成char等,但他们都要加上一个*。存放指针(地址)的变量就是指针变量。所以对于指针的通俗理解就出来了,那就是内存单元→地址→地址也被称为指针。有的同学就会问你怎么一眼就能看出他是指针变量而非变量,判断依据就是在*。*后面一个变量,这个*既说明了后面的变量是指针变量。它本身就是解引用操作符,意思就是通过p中存放的地址,找到p所指的对象,*p就是p指向的对象(一上面的代码为例,即为a)
- 最后再提一点就是指针变量的大小
指针变量的大小取决于一个地址存放的时候需要多大的空间,32位机器上的地址:32bit位—4byte所以指针变量的大小就是4个字节;64位机器上的地址:64bit位—8byte所以指针变量的大小就是8个字节。
本文介绍了内存的基本概念,如将其比喻为房子和房间,探讨了int类型的内存占用和16进制/二进制转换。重点讲解了指针的作用,包括取地址、指针变量的定义和类型转换,以及指针在不同机器架构下的大小差异。
1840

被折叠的 条评论
为什么被折叠?



