IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 初识C语言(4) -> 正文阅读

[C++知识库]初识C语言(4)

目录

内存

1.地址是怎么产生的?

2.一个内存单元应该是多大的空间呢?

指针

指针变量的定义:

指针变量的大小:

结构体

创建结构体类型的变量:

结构体的初始化:

结构体成员的访问:


如果大佬们看到了错误!!!一定要告诉我啊!

我改,我一定认真改!

我不能误人子弟!!!!

内存

内存:内存是电脑上的存储器,计算机中所有程序的运行都是在内存中运行的

为了有效的使用内存,计算机把内存划分成一个个小格子,每个小格子都是一个内存单元,

每个内存单元的大小是一个字节,

为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,而这些编号就成了内存单元的地址

1.地址是怎么产生的?

地址是由地址线产生的。

32位机器有32根地址线(数据线),在通电的时候,会产生正电和负电,

正电用1表示,负电用0表示,将电信号转化成数字信号,产生了二进制序列

32根地址线就会产生2^32个二进制序列

每个二进制序列都作为一个编号存在,可以管理内存单元的地址,可以作为内存单元的地址

2.一个内存单元应该是多大的空间呢?

计算机单位有:bit byte kb mb gb tb pb......

现在让我们假设一下内存单元是bit

一个内存单元是一个比特位,2^32个地址,可以管理2^32个比特位的空间

换算后是0.5G,感觉有点少?

再一个,我假设一个内存单元是1个比特位,创建一个char类型的变量

需要8个比特,8个格子,8个地址,太浪费了,地址序列浪费太严重,感觉分的太细了

但是,我现在一个内存单元是一个字节的话,换算内存后是4G感觉还可以?

然后呢,如果我要是创建一个char类型,一字节,就需要一个格子。

创建一个int类型,四个字节,就需要四个格子,是合适的

所以,内存单元的大小是一个字节是合适的

内存单元的大小是一个字节。

eg:向内存申请4个字节的空间,里面存放10,

%p是打印地址,当我们打印a的地址时,应该打印哪个地址呢?

先进入到调试状态下,按F10,在调试的下面找到内存,打开它就可以观察了

如果不进入调试状态下,在调试的下面是找不到内存的!

然后,在地址栏哪项,我想看的是a,输入&a加回车

内存观察到红色部分是内存申请的a的空间,它是从0x00AFFA34开始的

依次往下数出4个空间 34 35 36 37

看打印的结果是00AFFA34,

打印a的地址,它是从低地址打印,从低地址向下继续找a的空间的

大概是这样的:

&a:取地址a,取得是低地址,取a的第一个字节地址

那地址如何存储?需要用到指针变量,

指针

指针变量:用于存放地址的变量。

创建整型变量a存放10

现在 我要取地址a

我把a的地址存放到一个变量pa里面

这里的pa是存放地址的变量,我们叫它指针变量

指针变量的定义:

但是pa是如何定义的呢?

在pa的前面加上int*,

*告诉我pa是一个指针变量,pa里面存的是a的地址

pa是可以找到a的,

pa指向a,指的a是int型

画个比较丑的图有个留个深的印象,简单的理解一下

然后我把a的地址存放到指针变量pa里

注意:pa是指针变量,*pa是指针变量pa指向对象a

以整型指针变量为例,可以拓展到其它类型

指针变量的大小:

我的是32位机器,指针变量是占4个字节,

若是64位机器,指针变量占8个字节,

结构体

当我们描述一个复杂对象时,需要用到结构体

就像是一个学生的信息包括:学生的名字,年龄,性别,学号

结构体要用到struct关键字

创建结构体类型

创建结构体类型的变量:

结构体的初始化:

结构体成员的访问:

(下面还有一种->访问的的方法)

程序:

再例如:我要描述一本书

书的信息包括:书名,价格,作者

当我用结构体指针访问成员时要用到? ->

这篇博客内存哪里又重新看了一遍,

做内存那里的图还不熟练,做了好久

打开手机版,我只想说,真不把人当人

我码了4个小时,1432个字,你给我预计阅读一分钟

我真的笑不出来了!!!!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章           查看所有文章
加:2021-07-06 23:57:47  更:2021-07-06 23:58:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 3:29:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码