当前位置: 首页 > news >正文

7-数组的概念和使用

一.数组的概念

在C语言中,数组是一种非常重要的数据结构,是一段连续、按顺序排列同类型内存块,用于存储相同数据类型的多个元素

1.怎么定义

数据类型 数组名 [数组长度];

2.数组的初始化

3.数组的元素访问

数组元素访问:数组名称[索引]

索引值从0开始,表示数组的第一个元素,一直到数组的长度减一

#include<stdio.h>int main()
{/*1.定义5个学生的年龄,并初始化2,定义学生的身高,并初始化注意:如果数组的长度没有写上,则数组的长度等于初始化元素的个数如果数组的长度已经写上,则数组的长度已固定,初始化元素的个数要小于等于数组的长度;没有赋值的位置元素默认如下:如果数组的类型是整数,则未赋值的位置上的元素默认为0如果是小数,则默认未0.0如果是字符,则默认为'\0'如果是字符串,则默认为NULL(空)*/int ages[5] = { 17,18,19,20 };double heights[] = { 165.9,172.0 };//printf("%d\n", ages); // 370144968// 获取第一个,第三个学生的年龄printf("第一个学生的年龄为%d\n", ages[0]); // 17printf("第三个学生的年龄为%d\n", ages[2]); // 19printf("第五个学生的年龄为%d\n", ages[4]); // 0// 修改数组heights中最后一个元素为175.2printf("修改前:%lf\n", heights[1]);heights[1] = 175.2;printf("修改后:%lf\n", heights[1]);return 0;
}

4.数组的遍历

#include<stdio.h>int main()
{int arr[5] = { 1,5,3,4 };for (int i = 0; i < 5; i++){printf("%d\n", arr[i]);}printf("第一个元素%d\n", arr[0]);return 0;
}

二.内存和内存地址

1.内存

内存(Memory)是计算机用于临时存储数据和程序的硬件设备,它是CPU能够直接访问的内存空间

内存的特点:

  • 临时存储:断电后数据丢失(易失性)
  • 高速访问:比硬盘快得多
  • 直接访问:CPU可以直接读写
  • 按地址访问:每一个存储单元都有唯一的地址

2.内存地址

内存地址是内存中每一个存储单元的唯一标识符,类似于现实生活中的门牌号码

内存地址的特点:

  • 唯一性:每个内存单元都有唯一的地址
  • 顺序性:地址按顺序排列
  • 字节为单位:通常每一个地址对应1个字节(8bit)

#include<stdio.h>int main()
{int a = 1;int b = 2;int c = 10;int arr[5] = { 15, 25, 35, 45, 55 };printf("%p\n", &a);printf("%p\n", &b);printf("%p\n", &c);/*0000004A34F2F6940000004A34F2F6B40000004A34F2F6D4*/printf("输出数组中的内存地址\n");printf("%p\n", &arr); // 数组的首地址(第一个元素,第一个格子的内存地址)printf("%p\n", &arr[0]); // 数组的首地址printf("%p\n", &arr[1]); // 从内存的角度看,索引1表示偏移量为1个单位(首地址+往后偏移的单位)printf("%p\n", &arr[2]);/*000000062FFAF708000000062FFAF708000000062FFAF70C000000062FFAF710*/return 0;
}

#include<stdio.h>void printArr(int arr[], int len);int main()
{int num[5] = { 1,2,3,4,5 };int len = sizeof(num) / sizeof(int);printArr(num, len);return 0;
}void printArr(int arr[], int len)
{for (int i = 0; i < len; i++){printf("%d\n", arr[i]);}
}

http://www.dtcms.com/a/479082.html

相关文章:

  • 基数排序算法实现
  • 10.9 DevEco Studio安装
  • 健康风险评估实训室:功能与实训场景介绍
  • 哈尔滨专业网站营销通化县住房和城乡建设局网站
  • vue2使用wangEditor:上传图片,视频,设置表格,自定义初始化字体和大小
  • 调试BMI088(X5平台)
  • 微信群领券网站怎么做wordpress七牛同步上传
  • EtherNet/IP转ModbusTCP协议转换器实现水质数据零延迟交互
  • 拌合站软件开发(27)监测各项IP设备可访问性
  • 网站设计论文答辩问题及答案万能回答企业管理培训课程推荐
  • Cannot Run Git: error launching git:
  • 模板建站源码wordpress调用二级分类目录
  • 车载刷写框架 --- 刷写过程中擦除相关思考
  • 初中做语文题的网站怎么开网站 第一步怎么做
  • 漯河网站推广哪家好微信小程序模板使用
  • 【大模型实战笔记 3】大模型Function Call的原理及应用
  • 校园网站的作用广州网络推广外包平台
  • 微网站 获取手机号凡客诚品网站建设策划书
  • MyCat 实战:订单与用户数据的水平分库分表 + MySQL 读写分离完整方案
  • Learning Path Recommendation
  • 【足式机器人控制】名义落足点与Raibert落足点详细讲解
  • 简单聊聊数据可视化大屏制作的前端设计与后端开发
  • 做网站首选科远网络中文域名网站链接无法打开
  • 客户管理系统中的“客户画像”是什么?如何通过数据构建精准用户画像?
  • 物流网站素材校网站建设方案
  • 点击网站出现微信二维码的链接怎么做小网站模板
  • 一次HTTP请求的旅程:用strace + tcpdump追踪DNS与TCP
  • Android监听第三方播放获取音乐信息及包名
  • wordpress仿站教程网wordpress 房屋租赁
  • 在线视频网站开发成本手机版网页开发者工具