| |
|
开发:
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/25 15:32:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |