首页 > 其他分享 >C语言:初识指针

C语言:初识指针

时间:2023-01-07 18:32:46浏览次数:39  
标签:进制 初识 C语言 地址 pa 内存 单元 指针

1.内存

认识指针,首先要认识内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的,所以为了有效的使用内存,就把内存分成一个个小的内存单元,每个内存单元的大小是1个字节(byte),为了能够有效的访问到内存的每一个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址,地址即是C语言中的指针

那么问题来了,怎么给内存进行编号?

其实在32位操作的机器上,有32根通电的地址线(64位就有64根),通电之后产生高电(1)和低电(0),C语言:初识指针_操作符 

2^32byte = 4,294,967,296byte = 4,194,304KB= 4,096MB=4GB(4个G差不多就是一块内存的大小,当然也可以更大)

这样就有了2^32次方个不同的值,从而用来对内存单元进行编号,但是2进制表示地址过于复杂,所以就用16进制来表示

那如果我现在初始化整型 a =10,占4个字节,有4个地址,是4个都作为 a 的地址还是选择一个作为地址呢?如果选一个,又应该选择哪一个呢?

C语言:初识指针_操作符_02 

这时,我们按F10调试,再在 调试 - 窗口 中找到 内存 ,在将地址改为 &a,回车 ,再按F11一直过定义 a 的那一行,得到下图:C语言:初识指针_操作符_03

00000000  00000000  00000000  00001010  (2进制)

0x 00  00  00  0a (16进制)

//因为是16进制,所以 a 就等于10

所以由图可知,地址取的是最小的那个,即0x0133FB08

2.指针

知道了地址后,我们就可以引入指针了,请看下面的代码:

C语言:初识指针_操作符_04

&:取地址操作符 

*:解引用操作符     

我们取变量 a 的地址,将它放在变量 pa 中,pa 的类型为int* ,int 说明 pa 指向的 a 是 int 类型的,*则说明 pa 是指针变量,再用解引用操作符,通过 pa 找到 pa 指向的 a ,pa ​就是 a 再将20存入*pa中,ctrl+F5后,打印出来结果为20

C语言:初识指针_指针_05


//这是利用指针来修改变量 a 的值,也是指针最最基本的内容

现在是不是觉得指针也没有那么可怕了?C语言:初识指针_指针_06

但是无论如何,指针都是一个很重要的知识,我们以后还是要去认真地学习它






标签:进制,初识,C语言,地址,pa,内存,单元,指针
From: https://blog.51cto.com/u_15928027/5995706

相关文章

  • 自定义数据类型:结构体(C语言进阶)
    结构体类型的声明结构体的自引用结构体内存对齐结构体传参自学b站“鹏哥C语言”笔记。一、结构体类型的声明详见文章【初识结构体】第一部分。补充说明:匿名结构体类型:省略结......
  • 数据的存储(C语言进阶)
    数据类型介绍内置数据类型的归类整型在内存中的存储:①原码、反码、补码②大小端字节序③char的存储内容浮点型在内存中的存储自学b站“鹏哥C语言”笔记。一、数据类型介绍......
  • 指针详解(C语言进阶)
    字符指针指针数组自学b站“鹏哥C语言”笔记。本章笔记不全。回顾:在文章【初识指针】中,我们已经了解到的指针概念有指针是一种变量,用来存放地址,地址唯一标识一块内存空间。指......
  • 【C语言 数据结构】二叉树
    文章目录​​二叉树​​​​一、二叉树的概念​​​​二、二叉树的基本形态​​​​三、二叉树的性质​​​​四、特殊的二叉树​​​​五、二叉树的存储结构​​​​5.1......
  • C语言校园跳蚤市场信息交流平台
    C语言校园跳蚤市场信息交流平台[任务描述]设计一个校园跳蚤市场信息交流平台,为同学们交换二手物品提供便利。[功能要求](1)管理员功能:管理员对待销或求购的二手物品......
  • 【shared_ptr】智能指针shared_ptr的实现及用法
    概述要确保用new动态分配的内存空间再程序各条执行路径都能被释放是一件麻烦的事情。C++11模板库的头文件中定义的智能指针,std::shared_ptr模板,就可以用来部分解决这个问......
  • C语言程序设计课程设计[2023-01-07]
    C语言程序设计课程设计[2023-01-07]C语言程序设计课程设计要求一、课程设计目的1.进一步掌握和利用C语言进行程设计的能力;2.进一步理解和运用结构化程设计的思想和......
  • c语言的主要用途是什么?
    C语言的用途可以概括如下: 1)系统编程C语言可移植性好,性能高,能够直接访问硬件地址,而且到达某个地址的时间非常短,这使得C语言天生适合开发操作系统或者嵌入式应用程序。在......
  • 【数据结构】C语言实现的AVL树操作集
    看到网上完整的AVL树操作集较少,索性自己写了一个,望大佬指教!不多废话,上代码:AVLTREE.h头文件1#pragmaonce2#include<stdio.h>3#include<stdlib.h>4#inclu......
  • 初识结构体
    结构体类型的声明结构体变量的定义和初始化结构体成员访问结构体传参自学b站“鹏哥C语言”笔记。一、结构体类型的声明1.结构的基础知识结构是一些值的集合,这些值称为成员变......