【初识C语言】地址及内存简介

1.内存

(1)内存是电脑中一个重要的存储器,计算机中所有的程序都在内存中运行的,内存的性能对计算机的影响非常大。
(2)内存是计算机与CPU进行沟通的桥梁,计算机会把程序由硬盘加载到内存中后再去使用。
(3)为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
为了能够有效的访问即快速找到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址

一般运行一个程序主要涉及计算机的三个设备:内存、CPU、硬盘。

1.1内存和CPU的关系

CPU是负责数据的运算和处理,内存是用来交换数据,如果没有内存则CPU就无法接收到数据。

1.2内存和硬盘的关系

在这里插入图片描述
eg:C语言中定义变量,都是在程序运行起来后在内存中开辟空间。

2.地址

2.1概念

(1)为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。
(2)为了能够有效的访问即快速找到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址

2.2地址编号

在32位平台下,内存单元的地址是由32位的二进制数(即8位十六进制数)依次编号。所以内存单元共有2^32个,而每一个内存单元保存1个字节的内容。(具体见上图)

ps:
计算机访问内存的基本单位是字节。
一般计算机有32位和64位机器。

以32位机器为例,则能安装的最大内存为(2^32)*(1字节)=4GB

### C语言基础知识概述 C语言是一种功能强大且灵活的编程语言,具有丰富的表达能力、高效性以及广泛的适用范围[^1]。它不仅可以用于开发应用软件,还可以用来编写驱动程序、操作系统等底层系统软件。以下是一些C语言的基础知识入门指南: #### 1. 变量声明与定义 在C语言中,变量需要先声明后使用。变量的声明包括指定数据类型变量名。例如: ```c int myNumber; // 声明并定义了一个整型变量myNumber ``` 变量可以进行赋值操作,例如: ```c myNumber = 10; // 给变量赋值 ``` 此外,还可以通过`printf`函数输出变量的值: ```c printf("The value of myNumber is: %d\n", myNumber); // 输出变量的值 ``` #### 2. 指针的概念与使用 指针是C语言中的重要概念,用于存储变量的内存地址。定义一个指针变量时,需要指定其指向的数据类型。例如: ```c int num = 10; int *p; // p为一个整形指针变量 p = &num; // 将num的地址赋值给p ``` 可以通过指针修改其所指向的变量值: ```c *p = 20; // 通过指针修改num的值 ``` #### 3. 指针的大小 指针变量的大小取决于平台的位数。在32位平台上,指针大小为4字节;而在64位平台上,指针大小为8字节[^2]。例如: ```c #include <stdio.h> int main() { printf("%zu\n", sizeof(char *)); // 输出char指针的大小 printf("%zu\n", sizeof(int *)); // 输出int指针的大小 return 0; } ``` #### 4. 结构体的使用 结构体是C语言中用于描述复杂数据类型的重要工具。通过结构体,可以将不同类型的数据组合在一起。例如,定义一个学生结构体: ```c struct Student { char name[50]; // 学生名字 int age; // 学生年龄 char gender; // 学生性别 int id; // 学生学号 }; ``` 可以通过创建结构体变量来存储具体的学生信息: ```c struct Student student1; strcpy(student1.name, "Alice"); student1.age = 20; student1.gender = 'F'; student1.id = 1001; ``` #### 5. 程序的基本结构 一个完整的C语言程序通常包括头文件包含、函数定义主函数部分。例如: ```c #include <stdio.h> // 包含标准输入输出库 int main() { // 主函数 int myNumber = 10; // 定义并初始化变量 printf("The value of myNumber is: %d\n", myNumber); return 0; // 返回0表示程序正常结束 } ``` ### 总结 C语言的基础知识涵盖了变量声明与定义、指针的使用、结构体的设计以及程序的基本结构等内容。掌握这些内容是学习C语言的第一步,同时也是进入编程世界的必修课。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值