| |
|
|
开发:
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.地址是怎么产生的?地址是由地址线产生的。 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语言常见错误合集 |
|
|
| 上一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/7 8:57:18- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |