学C的第五天(初识指针,内存产生内存单元地址过程,指针函数介绍和其大小;结构体补充)-1

简介: 13*指针: 13.1 -- 内存:内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。【32位操作系统的内存由32根地址线产生的高低电位(1/0),划分为2的32次方个地址(编号\指针),一个地址为一个字节,等于8比特。】

13*指针:

13.1 -- 内存:

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。

32位操作系统的内存由32根地址线产生的高低电位(1/0),
划分为2的32次方个地址(编号\指针)一个地址为一个字节
等于8比特。】

*所以为了有效地使用内存,就把内存划分成一个个小的内存单元,每个内存单元地大小是1个字节(Byte),等于8个比特(bit)。

      *一个内存单元多大比较合适?

计算机中的单位:

bit(比特)


Byte(字节)        =        8 bit


KB(千字节)        =        1024 Byte


MB(兆)        =        1024 KB


GB(吉字节)        =        1024 MB


TB(太字节)        =        1024 GB


PB(拍字节)        =        1024 TB


(1024 = 2的十次方)


......

761664303ce641d0bed60c3b2dbfe873.png

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

      *地址或者编号如何产生?(地址 = 编号 = 指针

(这张图要仔细看理解一下)

21e08bdcf45349ffbc899005359403ad.png

 *程序运行起来,要加载到内存中,也要申请内存空间使用

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>;
int main()
{
  int a = 15;
  return 0;
}
//数字--整型--4个字节--32个比特位 转换为 8个十六进制位
//             4个二进制位 转换成 1个十六进制位 、
//用二进制表示15: 1111
//用十进制表示15: 15
//用十六进制表示15: F --> 0x 00 00 00 0f
//                12 34 56 78 -->8个十六进制位
//                   32个比特位(32个二进制位)
//32位操作系统的内存由32根地址线产生的高低电位(1/0),
//划分为2的32次方个地址(编号\指针),一个地址为一个字节,
//8比特。
//    4个字节 * 8个比特位 =  32个比特位(二进制位) 
//    

760fccf1eb0041c39cafea26b3d3ef7a.png


image.png

image.png

4个字节 对应 4个地址,虽然a占有4个字节,但是当我们&a的时候,拿到的是4个字节中第一个字节的地址

image.png

4个字节 * 8个比特位 =  32个比特位(二进制位)

bf99a3f7897a4a42827dd2181751f486.png

28ad85f06f9d4b8880f9873b355ecf3f.png

相关文章
|
9天前
10分钟让你学会内存函数:memcpy,memmove,memset,memcmp的用法及模拟实现。
10分钟让你学会内存函数:memcpy,memmove,memset,memcmp的用法及模拟实现。
11 2
|
6天前
|
C语言
【C语言】:动态内存管理函数malloc,calloc,realloc和free的介绍的介绍
【C语言】:动态内存管理函数malloc,calloc,realloc和free的介绍的介绍
16 0
|
6天前
|
编译器 C++
函数指针和函数对象不是同一类型怎么替换
函数指针和函数对象不是同一类型,为何可替换用作同一函数的参数
|
6天前
|
存储 C语言
C语言的函数返回值和指针
C|函数返回值(区分各类值)和指针(区分各类存储空间)的细节
|
10天前
|
C语言
字符串和内存函数(1)
字符串和内存函数(1)
25 7
|
6天前
|
C语言
【C语言】:4大内存函数
【C语言】:4大内存函数
10 2
|
10天前
字符串和内存函数(2)
字符串和内存函数(2)
23 5
|
2天前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
10 0
|
2天前
|
程序员 C语言
C语言内存管理:malloc、calloc、realloc与free函数详解
C语言内存管理:malloc、calloc、realloc与free函数详解
4 0
|
3天前
|
存储 缓存 算法
详解JVM内存优化技术:压缩指针
详解JVM内存优化技术:压缩指针