初识数组!

news2024/12/25 23:58:12

目录

1.概念

2.一维数组的创建和初始化

1)数组创建

2)数组的初始化

3)数组的类型

3.一维数组的使用

1) 数组下标

2) 数组元素的打印

3) 数组的输入

4.一维数组在内存中的存储

5.sizeof计算数组元素个数

6.二维数组的创建


1.概念

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

  1. 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。
  2. 数组中存放的多个数据,类型是相同的。
2.一维数组的创建和初始化
1)数组创建
type arr_name[常量值];

存放在数组的值被称为数组的元素,数组在创建的时候可以指定数组的大小和数组的元素类型

  • type 指定的是数组中存放数据的类型,可以是: char、short、int、float 等,也可以自
  • 定义的类型
  • arr_name 指的是数组名的名字,这个名字根据实际情况,起的有意义就行。
  • [ ] 中的常量值是用来指定数组的大小的,这个数组的大小是根据实际的需求指定就行
int math[20];
char ch[8];
double score[10];
2)数组的初始化

给定一些初始值值,这种就称为初始化

//完全初始化
int arr[5] = {1,2,3,4,5};

//不完全初始化
int arr2[6] = {1};//第一个元素初始化为1,剩余的元素默认初始化为0

//错误的初始化 - 初始化项太多
int arr3[3] = {1, 2, 3, 4};
3)数组的类型
int arr1[10];//int [10]
int arr2[12];//int[12]
char ch[5];//char [5]

3.一维数组的使用
1) 数组下标

C语言规定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后一个元素的下标是n-1,下标就相当于数组元素的编号

int arr[10] ={1,2,3,4,5,6,7,8,9,10}

在C语言中数组的访问提供了一个操作符[ ] ,这个操作符叫:下标引用操作符。有了下标访问操作符,我们就可以轻松的访问到数组的元素

#include <stdio.h>
int main()
{
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
    printf("%d\n", arr[7]);//8
    printf("%d\n", arr[3]);//4
    return 0;
}
2) 数组元素的打印
#include <stdio.h>
int main()
{
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
    int i = 0;
    for(i=0; i<10; i++)
    {
    printf("%d ", arr[i]);
    }
    return 0;
}
3) 数组的输入
#include <stdio.h>
int main()
{
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
    int i = 0;
    for(i=0; i<10; i++)
    {
        scanf("%d", &arr[i]);
    }
    for(i=0; i<10; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}
4.一维数组在内存中的存储
#include <stdio.h>
int main()
{
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
    int i = 0;
    for(i=0; i<10; i++)
    {
        printf("&arr[%d] = %p\n ", i, &arr[i]);
    }
    return 0;
}

数组随着下标的增长,地址是由小到大变化的,并且我们发现每两个相邻的元素之间相差4(因为一个整型是4个字节)。所以我们得出结论:数组在内存中是连续存放的

5.sizeof计算数组元素个数

sizeof 中C语言是一个关键字,可以计算类型或者变量的大小,同时sizeof 也可以计算数组的大小

#include <stido.h>
int main()
{
    int arr[10] = {0};
    printf("%d\n", sizeof(arr));//40 字节
    return 0;
}

我们又知道数组中所有元素的类型都是相同的,只要计算出一个元素所占字节的个数,数组的元素个数就能算出来

6.二维数组的创建
type arr_name[常量值1][常量值2];
// arr为数组名
例如:
int arr[3][5];//3行 5列 
double data[2][8];

谢谢观看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1908693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hugging face Transformers(4)—— Model

Hugging Face 是一家在 NLP 和 AI 领域具有重要影响力的科技公司&#xff0c;他们的开源工具和社区建设为NLP研究和开发提供了强大的支持。它们拥有当前最活跃、最受关注、影响力最大的 NLP 社区&#xff0c;最新最强的 NLP 模型大多在这里发布和开源。该社区也提供了丰富的教程…

Android 10.0 FolderIcon文件夹图标内预览图标超出边距解决方案

1.前言 在10.0的系统rom定制化产品开发中,在进行Launcher3的功能定制化过程中,在实现文件夹功能的时候,由于产品分辨率等原因 在拖拽图标进文件夹的时候,在3*3的布局中,会发现图标出了folder边距,所以就需要分析相关的功能,然后实现解决这个问题 2.FolderIcon文件夹图标…

麒麟桌面操作系统上鼠标右键菜单中打开终端栏消失的解决方法

原文链接&#xff1a;麒麟桌面操作系统上鼠标右键菜单中打开终端栏消失的解决方法 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在麒麟桌面操作系统上解决鼠标右键菜单中“打开终端”选项消失的方法的文章。鼠标右键菜单中的“打开终端”选项是一个非常便捷的…

JAVA基础-----包装类,自动装箱、拆箱

一、包装类&#xff1a; Java中的数据类型总体上分为基本数据类型和引用数据类型。引用类型的数据可以通过对象的属性和方法来进行操作&#xff0c;但对于基本数据类型的数据&#xff0c;我们能不能像操作对象那样来操作呢&#xff1f;为了实现这个目标&#xff0c;Java为8种基…

JAVA基础-----final关键字

一、前言 final关键字的含义&#xff1a; final在Java中是一个保留的关键字&#xff0c;可以声明成员变量、方法、类以及本地变量。一旦你用final修饰&#xff0c;你将不能改变被修饰的代码&#xff0c;编译器会检查代码&#xff0c;如果你试图将变量再次初始化的话&#xff0…

MindsDB:一个利用企业数据构建 AI 的平台

MindsDB作为一个开源项目&#xff0c;它旨在将机器学习模型无缝集成到现有的数据库系统中&#xff0c;为用户提供实时的数据预测能力。这个项目的创新之处在于&#xff0c;它能够以简单、直观的方式让开发者和非技术人员都能够利用AI进行数据分析和预测。 它是根据企业数据库定…

(1)滑动窗口算法介绍与练习:长度最小的子数组

滑动窗口算法介绍 所谓滑动窗口&#xff0c;即为同向双指针移动过程中形成的间隔区域&#xff0c;并且这两个指针在移动的过程中不会回退 对于滑动窗口的题目可以抽象为三个步骤&#xff1a; 定义窗口两端指针left和right进入窗口判断离开窗口循环2、3和4步 滑动窗口练习 长度最…

华为 eNSP 路由器 实现双wan出口 访问外网nat 策略路由配置

1 实验拓扑 2 路由器配置 #R1配置 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysn [Huawei]sysname R1 [R1]int GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0 [R1-GigabitEthernet0/0/0]qu [R1…

YASKAWA安川Σ-V系列伺服驱动器AC设计维护手侧

YASKAWA安川Σ-V系列伺服驱动器AC设计维护手侧

Milvus lite start 及存储策略

背景 今天开始写下Milvus&#xff0c;为了方便&#xff0c;我直接使用的是 milvus-lite 版本&#xff0c;default 情况下&#xff0c;你可能不知道他到底将 db 存储到什么位置了。启动 default-server&#xff0c;看下Milvus 的start及存储逻辑 主逻辑 def start(self):sel…

EasyCVR视频汇聚平台:存储系统怎么选?分布式存储vs.集中式存储的区别在哪?

在当今的数字化时代&#xff0c;安防监控已成为维护社会秩序和公共安全的重要手段。随着监控设备的普及和监控数据的不断增加&#xff0c;如何高效、安全地存储和管理这些视频数据&#xff0c;成为了安防行业面临的重要挑战。EasyCVR视频存储系统凭借其卓越的性能和灵活的架构&…

MacOS 安装 mtr 网络检测工具

Install sudo brew install mtr sudo chown root $(which mtr) sudo chmod us $(which mtr) sudo chown root $(which mtr-packet) sudo chmod us $(which mtr-packet) Test mtr google.com

Mock.js 的使用方法代码示例

mock.js 的安装 npm install -D vite-plugin-mock mock.jsvite.config.ts配置&#xff1a; import { viteMockServe } from vite-plugin-mock import { userConfigExport, ConfigEnv } from viteexport default defineConfig(({ command }) > {return {plugins: [viteMock…

智能气象站:气象监测的“智慧眼”

在当今日新月异的科技时代&#xff0c;气象监测与预报早已不再是简单的风云变幻的预测&#xff0c;而是融入了大量先进技术&#xff0c;成为了影响社会生产生活的重要因素。 智能气象站&#xff0c;顾名思义&#xff0c;是运用现代物联网、大数据、云计算等先进技术&#xff0c…

R包:蛋白质组学质控评估PTXQC包

介绍 PTXQC包是2016年发表在J Proteome Res期刊上的R包&#xff0c;它主要是对MaxQuant输出结果进行提取处理从而获得评估蛋白质质量结果。 安装 从github安装&#xff0c;安装过程会自动构建tutorial。 devtools::install_github("cbielow/PTXQC", build_vignet…

精确计算应用的冷启动耗时

在iOS项目中&#xff0c;冷启动时间是指从用户点击应用图标开始&#xff0c;到应用完全加载并呈现出第一个界面&#xff08;可能需要网络请求必要的数据&#xff09;所花费的时间。这里以 main 函数为界&#xff0c;分为两个时间段&#xff1a; 从用户点击应用图标 ~ invoke m…

Open3D 计算点云的平均密度

目录 一、概述 1.1基于领域密度计算原理 1.2应用 二、代码实现 三、实现效果 2.1点云显示 2.2密度计算结果 一、概述 在点云处理中&#xff0c;点的密度通常表示为某个点周围一定区域内的点的数量。高密度区域表示点云较密集&#xff0c;低密度区域表示点云较稀疏。计算…

【Linux】记录一起网站劫持事件

故事很短&#xff0c;处理也简单。权当记录一下&#xff0c;各位安全大大们手下留情。 最近一位客户遇到官网被劫持的情况&#xff0c;想我们帮忙解决一下&#xff08;本来不关我们的事&#xff0c;毕竟情面在这…还是无偿地协助一下&#xff09;&#xff0c;经过三四轮“谦让…

数据结构--堆,堆排序

1.树概念及结构 1.1树的概念 树是一种 非线性 的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的 。 有一个 特殊的结…

纳米尺度表面分析:微区XPS优势-测试狗材料测试

纳米尺度表面分析&#xff1a;微区XPS优势 随着科学技术的不断发展&#xff0c;纳米技术在各个领域得到了广泛的应用&#xff0c;纳米尺度表面分析作为纳米技术研究的重要手段&#xff0c;对于揭示材料微观结构、理解材料性能与功能机制具有重要意义&#xff1b;在这其中&#…