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

十一、数组(1)

 1.数组

数组:一组相同类型元素的集合

数组元素类型        数组名        [元素个数](常量)        =        {......}

例:int arr [10] = {1,2,3};

不完全初始化,剩下元素默认为0。

                                                ""

字符串数组:末尾自带\0        {.....,'\0'}

                                                {.....,0}

2.一维数组

一维数组使用下标访问数组每个元素,一维数组的元素在内存中是连续存放的,数组名是首元素的地址。地址是动态变化的

一维数组在内存中的存储

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
//一维数组在内存中的存储
int main()
{			int arr [] = {1,2,3,4,5,6,7,8,9,10};int sz = sizeof(arr)/sizeof(arr[0]);int i = 0;for(i=0;i<sz;i++){printf("&arr[%d]=%p\n",i,&arr[i]);}return 0;
}

3.二维数组

二维数组的创建和初始化

例:int arr [3] [4] = {1,2,3,4,5};//三行四列

        1        2        3        4

        5        0        0        0

        0        0        0        0

int arr [3] [4] = {{1,2,3},{4,5}};

        1        2        3        0

        4        5        0        0

        0        0        0        0

二维数组初始化可以省略行,不能省略列。

行相当于有几个一维数组,列相当于这些一维数组有几个元素。

例:int arr [ ] [4] = {{1,2,3,4},{5,6,7,8}};

        1        2        3        4

        5        6        7        8

通过下标访问二维数组的元素,行和列都是从0开始的。

(1)二维数组

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
//二维数组
int main()
{			int arr [3][4] = {{1,2,3,4},{5,6,7,8}};int i = 0;int j = 0;for(i=0;i<3;i++){for(j=0;j<4;j++){printf("%d ",arr[i][j]);}printf("\n");}return 0;
}

(2)二维数组在内存中的存储

二维数组的元素在内存中排列是,从左到右,从上到下原则。

二维数组可看作是多个一维数组的拼接

例:arr [0] [i]        //第一行

       arr [1] [i]        //第二行

       arr [2] [i]        //第三行

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
//二维数组在内存中的存储
int main()
{			int arr [3][4] = {{1,2,3,4},{5,6,7,8,}};int i = 0;int j = 0;for(i=0;i<3;i++){for(j=0;j<4;j++){printf("&arr[%d][%d]=%p  ",i,j,&arr[i][j]);}printf("\n");}return 0;
}

4.思维导图

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 7.SpringBoot整合Neo4j
  • Python求均值,方差,标准差
  • 【运维】软件运维方案(2024word完整版)
  • 减分兔搜题-12123学法减分20题目及答案 #媒体#职场发展
  • 排序系列 之 快速排序
  • Mybatis plus自定义分页
  • hive动态分区导致xceivercount超限,hdfs无法创建新连接
  • R语言实现神经网络ANN
  • 从微软发iPhone,聊聊企业设备管理
  • 【机器学习】无监督学习和自监督学习
  • Kafka(四) Consumer消费者
  • 大鲸鱼docker-compose单机容器集群编排工具
  • C语言实例-约瑟夫生者死者小游戏
  • jenkins 插件版本冲突
  • JDBC常见用法
  • Apache的80端口被占用以及访问时报错403
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Facebook AccountKit 接入的坑点
  • idea + plantuml 画流程图
  • Iterator 和 for...of 循环
  • Linux CTF 逆向入门
  • Promise面试题2实现异步串行执行
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • redis学习笔记(三):列表、集合、有序集合
  • springboot_database项目介绍
  • Vue2.0 实现互斥
  • 初识MongoDB分片
  • 从setTimeout-setInterval看JS线程
  • 构建二叉树进行数值数组的去重及优化
  • 力扣(LeetCode)22
  • 使用 @font-face
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #stm32驱动外设模块总结w5500模块
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • ( 10 )MySQL中的外键
  • (不用互三)AI绘画工具应该如何选择
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (回溯) LeetCode 77. 组合
  • (转)【Hibernate总结系列】使用举例
  • (转)iOS字体
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .Net Core 生成管理员权限的应用程序
  • .NET 发展历程
  • .net 生成二级域名
  • .net 受管制代码
  • .NET建议使用的大小写命名原则
  • /var/spool/postfix/maildrop 下有大量文件
  • [ C++ ] STL---仿函数与priority_queue
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [BetterExplained]书写是为了更好的思考(转载)
  • [BT]BUUCTF刷题第9天(3.27)
  • [c]扫雷