【学习笔记之我要C】初识指针

简介: 【学习笔记之我要C】初识指针

一、内存

 1.内存单元

  为了有效的使用内存,把内存划分为一个个小的内存单元;为了有效的访问的每个单元,就对内存单元进行了编号,这些编号就被称为内存单元的地址

 2.内存地址

我们常说的32位与64位指的是32或64根地址线,地址线是物理的线,是实际存在可以通电的线,正电为1负电为0;

 将电信号转换为数字信息,就能得到一组由0、1组成的二进制数;

 在32位机中,我们把32根地址线产生的电信号情况全部罗列出来,可以得到232组二进制数,我们把这些二进制数称作内存的编号,而这些二进制编号就是我们所说的内存地址;


f38f2ec199b342f4a14c87f2b3fcb63f.png

每一个地址对应一个内存单元,一个内存单元的大小是一个字节。


二、指针

 1.指针变量

内存的地址编号实际上也是一个值,也需要有空间来存储,用来存放地址编号的就是指针变量,简单的来说指针就是地址。

 指针是有类型的,我们声明一个指针变量的方式是数据类型* 指针名,其中数据类型说明了这个指针执行的对象是一个什么类型,*说明这是一个指针变量。

int main() {
  //a在内存中是要分配空间的 - 4字节
  int a = 10;
  //定义一个指针变量pa,并将a的地址赋给pa
  //*说明pa是指针变量
  //int 说明pa执行的对象是int类型的
  int* pa = &a;
  //&是一个单目操作符,用来取地址
  //%p专门用来打印地址
  printf("a的地址是%p\n", &a);
  //*解引用操作, *pa就是通过pa里面的地址,找到a
  *pa = 20;
  printf("a的值:%d", a);
  return 0;
}

 1.指针大小

  我们说了指针就是地址,而地址的本质就是一个值,那么这个值也是需要存储的,也就是说指针变量也是需要内存空间来存储的,那么一个指针的有多大呢?

//指针大小
int main() {
  printf("%d\n", sizeof(int*));//4
  printf("%d\n", sizeof(char*));//4
  printf("%d\n", sizeof(long*));//4
  printf("%d\n", sizeof(long long*));//4
  printf("%d\n", sizeof(double*));//4
  printf("%d\n", sizeof(float*));//4
  printf("%d\n", sizeof(short*));//4
}

指针占用多大空间,取决于地址的存储需要多大空间,而地址实际上就是一串二进制编号,所以无论什么类型的指针,大小都是一样的;

 那么指针具体多大呢?其实这不难得出,我们每个二进制编号的长短实际上是由地址线的多少,32位机的地址线有32根,每根地址线对应一个二进制数,所以32位机的二进制编号长度为32,则32位机指针的大小是4字节。同理,64位机则是8个字节。


目录
相关文章
|
2天前
|
存储 人工智能 算法
c++算法学习笔记 (9) 双指针
c++算法学习笔记 (9) 双指针
|
10月前
|
C++
C++学习笔记_07 const、指针、引用 2021-04-19
C++学习笔记_07 const、指针、引用 2021-04-19
|
11月前
|
存储 人工智能 C语言
C语言指针学习笔记
C语言指针学习笔记
|
编译器 C语言
【学习笔记之我要C】深入理解数组与指针
【学习笔记之我要C】深入理解数组与指针
33 0
【学习笔记之我要C】指针进阶
【学习笔记之我要C】指针进阶
56 0
|
C语言
【学习笔记之我要C】指针初阶
【学习笔记之我要C】指针初阶
54 0
|
存储 Rust JavaScript
Rust学习笔记之智能指针
何为指针 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️ 使用 Box<T> 指向堆上的数据 推荐阅读指数 ⭐️⭐️⭐️⭐️ 使用 Drop Trait 运行清理代码 推荐阅读指数 ⭐️⭐️⭐️⭐️ Rc<T> 引用计数智能指针 推荐阅读指数 ⭐️⭐️⭐️⭐️ RefCell<T> 和内部可变性模式 推荐阅读指数 ⭐️⭐️⭐️⭐️
162 1
Rust学习笔记之智能指针
|
C语言 C++
C++菜鸟学习笔记系列(4)——引用、指针
C++菜鸟学习笔记系列(4)——引用、指针
72 0
|
编译器 C语言 C++
C语言学习笔记—P26(<C语言高阶>+指针的进阶<4>+题例+图解)
C语言学习笔记(<C语言高阶>+指针的进阶<4>+题例+图解)
62 0
C语言学习笔记—P26(<C语言高阶>+指针的进阶<4>+题例+图解)
|
4天前
|
C语言
C语言指针——练习
C语言指针——练习

热门文章

最新文章