C99中的变长数组

news2024/12/27 17:00:45

在C99标准之前,从语言在创建数组的时候,指定数组的大小只能使用常量和表达式,或者数据初始化的时候,可以省略数组大小。

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

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

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

这样的语法限制不够灵活,有时空间小了不够用,空间大了用不完浪费

C99中给出了变长数组的新特性,允许使用变量指定数组的大小。

例子:

int n=a+b;

int arr[n];

上面的示例就是变长数组,数组的大小由n决定,编译器没办法事先确定,只有运行起来才知道n是多少。

C99中的变长数组有一个前提,那就是不能初始化,因为变长数组只有运行时才能确定。

它的好处是程序员不必再设计时估计一个大概的长度,程序员可以在运行时分配精确的长度。

实例:

#include <stdio.h>
int main()
{
	int n=0;
	printf("请输入数组长度:");
	scanf("%d",&n);
	int arr[n];//变长数组
	int i=0;
	printf("打印数组元素:");
	for(i=0;i<n;i++)
{

		scanf("%d",&arr[i]);//输入元素
	
	}	
	for(i=0;i<n;i++)
{

	
		printf("%d\t",arr[i]);//打印元素,\t是一种操作符,效果是往后空四格
	
	}	
	return 0;
}

代码运行结果:


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

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

相关文章

新疆阿克苏地区新和县召开2024年重大项目高质量发展推进会

五一水库及生态修复产业融合发展等14个项目动工兴建 9月29日&#xff0c;新疆阿克苏地区新和县举行2024年重大项目高质量发展推进会上&#xff0c;五一水库生态修复暨产业融合发展重点项目等14个项目正式动工兴建。 据了解&#xff0c;此次开工的14个项目&#xff0c;总投资17…

LPDDR4芯片学习(二)——Functional Description

一、LPDDR4寻址表 以每个die容量为4GB为例&#xff1a; Memory density(per channel) 2Gb&#xff1a;每个通道大小为2Gb&#xff0c;一个die有两个通道Configuration 16Mb 16DQ 8 banks 2 channels &#xff1a;16Mb的寻址空间16位每个channels8个bank*每个die两channels。1…

电影《749局》酷燃首映 苗苗神秘感大片释出氛围感拉满

2024 年 9 月 30 日&#xff0c;电影《749 局》在北京举办首映礼&#xff0c;导演陆川携主创王俊凯、苗苗、郑恺、任敏、李晨、杨皓宇出席&#xff0c;演员苗苗在片中饰演 749 局成员夏婳&#xff0c;这个角色天赋异禀&#xff0c;拥有特殊异能&#xff0c;为影片增添一抹神秘色…

从异步传染浅谈代数效应

如果你经常使用并且关注React&#xff0c;你一定会在不少地方见过"代数效应"&#xff08;algebra effect) 这个抽象概念。可能是翻译和过度学术的缘故&#xff0c;我看了很多文章才大致理解&#xff0c;在这里简单记录一下。 try/catch & try/handle 你一定使用…

通信工程学习:什么是CSMA/CD载波监听多路访问/冲突检测

CSMA/CD&#xff1a;载波监听多路访问/冲突检测 CSMA/CD&#xff08;Carrier Sense Multiple Access/Collision Detect&#xff09;&#xff0c;即载波监听多路访问/冲突检测&#xff0c;是一种用于数据通信的介质访问控制协议&#xff0c;广泛应用于局域网&#xff08;特别是以…

SQL增删查改操作

目录 数据库概述 SQL基础操作 SQL通用语法 数据类型 SQL语句的分类 DDL(数据库定义,表定义,字段定义) 数据库操作 表操作 DDL小结 DML(数据的增删改,数据操作语言) DQL(查询) DQL小节 数据库概述 数据库,顾名思义就是用来存储和管理数据的,我们平时所使用的各大软…

养老院管理系统(含源码+sql+视频导入教程+文档)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 养老院管理系统拥有两种角色&#xff1a;管理员和护工 管理员&#xff1a;用户管理、老人信息管理、事故记录管理、入住费用管理、护工薪资管理、护工请假管理、床位管理、请假管理等 护…

消息中间件:RabbitMQ

消息中间件&#xff1a;RabbitMQ 前言安装Window安装Linux安装 管理页面什么是RabbitMQ&#xff1f;入门基本概念简单队列工作队列&#xff08;Work Queues&#xff09;发布/订阅&#xff08;Publish/Subscribe&#xff09;临时队列 路由&#xff08;Routing&#xff09;主题&a…

NanoDet安装教程

目录 1.安装NanoDet 1.1官网下载NanoDet 1.2 创建虚拟conda环境 1.3安装Pytorch库 2.侦测 3.训练 3.1yml文件修改 3.训练 3.1yml文件修改 轻量级模型 NanoDet-m 目标检测框架&#xff1a; YOLO 、 SSD 、 Fast R-CNN 等模型 &#xff1b;但模型太大&#xff0c;不适合移植到移…

HTTP状态码全解

文章目录 常见状态码1XX Informational&#xff08;请求正在处理&#xff09;2XX Success&#xff08;请求成功&#xff09;3XX Redirection&#xff08;重定向&#xff09;4XX Client Error&#xff08;客户端错误&#xff09;5XX Server Error&#xff08;服务器错误&#xf…

ros2安装完成后重要的一步

安装完成ros2之后&#xff0c;每次打开新的终端都需要 source /opt/ros/humble/setup.bash 为了解决这个为题&#xff0c;我们需要做如下操作,避免每次打开一个新的在终端都要设置。 在文件的最后一行添加 source /opt/ros/foxy/setup.bash

浸没式密封连接器

在当今科技快速发展的背景下&#xff0c;电子设备的整合度与性能需求持续提高&#xff0c;而连接技术作为电子设备间交互的关键&#xff0c;其重要性显而易见。在各式各样的连接技术当中&#xff0c;浸没式密封连接器凭借其独到设计和高超性能&#xff0c;在特定使用环境中显示…

学习经验分享【38】YOLOv11解读——最新YOLO版本

YOLO算法更新速度很快&#xff0c;已经出到V11版本&#xff0c;后续大家有想发论文或者搞项目可更新自己的baseline了。后续将改进YOLOv11算法&#xff0c;有需要的朋友可关注&#xff0c;我会持续进行更新。 YOLO11是Ultralytics YOLO系列实时目标检测器的最新迭代版本&#x…

《Linux从小白到高手》理论篇(七):Linux的时间管理运行级别启动过程原理详解

List item 本篇将介绍Linux的时间管理&运行级别相关知识&#xff0c;并将深入介绍Linux的启动过程及原理。 Linux的时间管理 Linux 时钟分为系统时钟&#xff08;System Clock&#xff09;和硬件&#xff08;Real Time Clock&#xff0c;简称 RTC&#xff09;时钟。系统时…

STM32CubeMX创建STM32H743工程

1、下载安装STM32CubeMX STM32CubeMX是STM32Cube工具家族中的一员&#xff0c;从MCU/MPU选型&#xff0c;引脚配置&#xff0c;系统时钟以及外设时钟设置&#xff0c;到外设参数配置&#xff0c;中间件参数配置&#xff0c;它给STM32开发者们提供了一种简单&#xff0c;方便&a…

华为OD机试 - 积木最远距离(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

[Everything] 文件搜索工具的下载及详细安装使用过程(附有下载文件)

快速搜索文件名及其所在路径 下载链接在文末 下载压缩包后解压 &#xff01;&#xff01;安装路径不要有中文 解压后得到文件 双击exe文件得到 选择简体中文&#xff0c;点击OK 点击“我接受” 更改安装目录&#xff0c;最好不要放在C盘&#xff0c;点击下一步 点击下一步 点…

使用SNAP工具处理Sentinel-1数据应注意磁盘和内存问题

近期使用SNAP处理数据比较多&#xff0c;有一些心得给大家分享一下&#xff01;在预处理Sentinel-1数据 的过程中出错基本上是有3种情况&#xff1a; 磁盘被写满 由于JAVA优化一般是通过空间换效率的方式。所以SNAP为了提高效率&#xff0c;本版本升级增加了数据本地缓存的比重…

zabbix7.0监控linux主机案例详解

前言 服务端配置 链接: rocky9.2部署zabbix服务端的详细过程 环境 主机ip应用zabbix-server192.168.10.11zabbix本体zabbix-client192.168.10.12zabbix-agent zabbix-server(服务端已配置) 具体实现过程 zabbix-client配置 安装zabbix-agent 添加扩展包 dnf -y instal…