一、前言
C指针学习笔记是个人记录学习C指针的专栏,相关笔记会收录在里面;
学习书籍(pdf)是《彻底搞定C指针》,感觉讲的很不错;
代码语言:C/C++ IDE:Clion
资源可以从我的百度网盘里领取:
链接:https://pan.baidu.com/s/1nkX9DqWQFuiuequqyTslaw
提取码:1024
二、变量的内存实质
1. C语言变量的实质
就像去电影院观看电影,每个人拿着票根据上面的编号去找对应的位置,然后落座观影。同样的,我们的内存要存放各种各样的数据,内存就好比座位也要进行编号,这就是第一个概念——内存编址。座位可以是遵循“一个座位 对应一个号码”的原则,从“第 1 号”开始编号。而内存则是按一个字节接着一 个字节的次序进行编址,如上图所示。每个字节都有个编号,我们称之为内存地址。
当我们声明变量时:
int i;
char a;
内存中的映像如图所示,这里假设我们int的宽度为16位,不同系统中的int的宽度可能不一样
2.赋值给变量
我们可以在上面的声明变量再进一步赋值
i = 30;
a = 't';
内存中的映像如下图所示
3. 变量的地址问题
我们先看一个C++程序
//代码1.1
#include <iostream>
int main()
{
using namespace std;
int i = 1;
cout << i << endl; //打印i的值
cout << &i << endl; //打印i的在内存的地址,通常用十六进制表示
}
下面是程序的运行结果
1
0xffffcc3c