C语言之数组 数组是一组相同类型元素的集合在C语言中根据数组下标个数我们把数组分成一维和二维数组二维及以上统称多维数组下面我们就来详细介绍一维与二维数组。一、一维数组1.语法结构数组元素类型 数组名[数组下标]这里有三个概念数组元素类型数组名数组下标。1数组元素类型这个概念要与数组类型区分开数组类型是指数组去掉数组名剩下的这个单指数组里元素数据类型。2数组名指数组的名称这个可以自己根据需要命名。3数组下标指数组元素个数从0开始如int arr[10]的数组下标范围就是0到9十个数这个大家灵活判断。公式为0~n-1n为元素个数2.初始化指的是数组创建时给的初始值如果不给的话系统会自动赋值除非你用scanf函数自行输入。一般用大括号将数组元素放在大括号中用逗号隔开。我们举个例子如 int arr[10]{1,2,3,4,5,6,7,8,9,10}这个叫作完全初始化就是数组所有元素都有赋值还有不完全初始化就是有些元素有赋值有些没有就好比这个例子int arr[10]{1,2,3,4,5};大家要记住不完全初始化中未赋值的元素系统会自动赋为0。还有一个点就是数组一旦初始化了它的大小也就随之确定了下标就可省略了但是大家一开始先不要这样写的时候最好还是把下标带上。3.数组类型刚才说过数组类型就是数组去掉数组名后剩下的东西如int arr[10];它的数组类型是int [10]。4.计算数组占的字节我们一般用sizeof函数来计算数组占的字节数代码很简单:#include stdio.h int main() { int arr1[10]; printf(%zd\n,sizeof(arr1)); //int数据占4个字节一共10个元素占40个字节,sizeof函数输出类型是%zd return 0; }printf语句这样写也是对的printf(%zd\n,sizeof(int [10]));如果把10改为5结果为20大家应该知道是为什么吧。5.数组元素打印我们使用循环来打印数组元素while和for均可这里我们把两种方法都介绍一下。#include stdio.h int main() { int i0; int arr[5]{1,2,3,4,5}; while(i5) { printf(%d\n,arr[i]); i; } return 0; }#include stdio.h int main() { int arr[5]{1,2,3,4,5}; for(i0;i5;i) { printf(%d\n,arr[i]); } return 0;其实两种方法没有本质上的区别基本一样都是循环五次然后自增打印数组元素。6.数组元素的输入输出我们借助scanf输入函数for或while循环里面写printf函数打印输出。如果想从大到小输入就这样写for(i5;i0;i--)下面我们就利用这两种方法写一下代码#include stdio.h int main() { int i0; int arr[5]{0}//数组初始化 while(i5) { scanf(%d,arr[i]); i; } i0;//这里极易犯错误因为前面已经写了一个循环了这里要将i复原为0 while(i5) { printf(%d ,arr[i]); i; } return 0; }#include stdio.h int main() { int i0; int arr[5]{0}; for(i0;i5;i) { scanf(%d,arr[i]); } for(i0;i5;i) { printf(%d ,arr[i]); } return 0; }这里用for循环就不需要更改i的值这是因为在每个for循环开始之前都会强制将 i 的值重置为0也是这类题用的最多的一类写法。7.数组在内存中的存放数组在内存中是连续存放的。具体原理太复杂大家记住就行了8.用sizeof函数计算数组元素个数#include stdio.h int main() { int arr[20]{0}; int i0; printf(%zd\n,sizeof(arr)/sizeof(arr[0]));//计算元素个数 //数组总长度 一个元素的长度 return 0; )在这个例子中我们知道数组总长度是80整型数据一个元素长度为4算出来个数为20和给的数组一样。我们可以利用这个方法输出数组元素#include stdio.h int main() { int arr[20]{0}; int i0; int szsizeof(arr)/sizeof(arr[0]);//计算元素个数 for(i0;isz;i) { printf(%d ,arr[i]);//用循环输出元素 } return 0; }

相关新闻

最新新闻

大众点评店铺信息爬虫实战:Python采集商圈美食评价与星级

大众点评店铺信息爬虫实战:Python采集商圈美食评价与星级

一、引言:为什么需要爬取大众点评数据? 在数字化营销和商业分析领域,本地生活服务平台的数据具有极高的价值。大众点评作为中国领先的本地生活信息平台,积累了海量的用户评价、店铺星级、人均消费、推荐菜等结构化数据。这些数据对于以下场景至关重要: 竞品分析:餐饮品牌…

2026/8/9 8:40:56
腾讯视频Python爬虫实战:从播放量到弹幕的完整数据抓取指南

腾讯视频Python爬虫实战:从播放量到弹幕的完整数据抓取指南

前言 在当今数字化时代,视频平台的数据蕴含着巨大的商业价值和用户洞察。腾讯视频作为国内领先的在线视频平台,拥有海量的电视剧、综艺、电影等内容,其播放量和弹幕数据直接反映了内容的受欢迎程度和用户互动情况。本文将带您从零开始,使用Python构建一套完整的腾讯视频数…

2026/8/9 8:40:56
XUnity.AutoTranslator:3分钟快速上手,免费解锁Unity游戏多语言支持终极方案

XUnity.AutoTranslator:3分钟快速上手,免费解锁Unity游戏多语言支持终极方案

XUnity.AutoTranslator:3分钟快速上手,免费解锁Unity游戏多语言支持终极方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏的语言障碍烦恼吗?XUnity.A…

2026/8/9 8:40:56
Unity地形分割与动态加载技术实战:构建大型开放世界游戏的核心解决方案

Unity地形分割与动态加载技术实战:构建大型开放世界游戏的核心解决方案

1. 项目概述:为什么我们需要地形分割与动态加载?做开放世界、大型MMO或者任何需要广阔地图的游戏,Unity开发者迟早会撞上这堵墙:编辑器里跑得飞快的场景,打包后加载慢如蜗牛,运行时内存占用高得吓人&#x…

2026/8/9 8:40:56
Unity ShaderGraph实现镭射材质:从光学原理到赛博朋克实战

Unity ShaderGraph实现镭射材质:从光学原理到赛博朋克实战

1. 项目概述:为什么镭射材质值得你投入精力?最近在做一个赛博朋克风格的项目,角色服装和部分环境装饰需要一种“五彩斑斓的黑”或者说是那种随着视角变化会流动变幻色彩的效果,第一时间就想到了镭射材质。这玩意儿在潮玩、科幻游戏…

2026/8/9 8:40:56
DC-1 完整渗透测试笔记

DC-1 完整渗透测试笔记

文章目录DC-1 完整渗透测试笔记:从 Drupalgeddon2 到 root flag一、靶场简介二、环境搭建2.1 主机与靶机网络配置2.2 验证连通性三、信息收集3.1 主机发现(arp-scan)3.2 端口扫描(nmap)3.3 Web 服务指纹识别&#xff0…

2026/8/9 8:35:56