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

C99中的变长数组

在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;
}

代码运行结果:


相关文章:

  • 在Mac电脑上安装adb环境
  • 开源实战分享 | 新书:《大型语言模型实战手册》随书代码分享
  • [大语言模型] 情感认知在大型语言模型中的近期进展-2024-09-26
  • 腾讯云新开端口
  • Python 读取与处理出入库 Excel 数据实战案例(HTML 网页展示)
  • 【LLM多模态】文生视频综述From Sora What We Can See: A Survey of Text-to-Video Generation
  • Axure大屏可视化模板在不同领域中的实际应用案例
  • 封装轮播图 (因为基于微博小程序,语法可能有些出入,如需使用需改标签)
  • 软件自动化测试基础:python运算符精讲
  • Python中的八个TXT文件自动化处理脚本:提升工作效率的必备工具
  • 62.【C语言】浮点数的存储
  • unity_Occlusion_Culling遮挡剔除学习
  • 从两个 Excel 表格中提取相关信息,并根据学生的 学号 和 姓名 将第一个表格中的成绩数据填充到第二个表格中(附Python代码)
  • 什么是 JWT?它是如何工作的?
  • vue数组根据某些条件进行二次切割
  • CAP理论的例子讲解
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • CSS实用技巧干货
  • ECS应用管理最佳实践
  • Facebook AccountKit 接入的坑点
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Java深入 - 深入理解Java集合
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • MySQL QA
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SpringBoot 实战 (三) | 配置文件详解
  • uva 10370 Above Average
  • V4L2视频输入框架概述
  • Vue 重置组件到初始状态
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 离散点最小(凸)包围边界查找
  • 力扣(LeetCode)22
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 问题之ssh中Host key verification failed的解决
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 自制字幕遮挡器
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​2020 年大前端技术趋势解读
  • ### RabbitMQ五种工作模式:
  • (02)Hive SQL编译成MapReduce任务的过程
  • (11)iptables-仅开放指定ip访问指定端口
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (void) (_x == _y)的作用
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (黑马点评)二、短信登录功能实现
  • (论文阅读30/100)Convolutional Pose Machines
  • (一)认识微服务
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .NET CLR基本术语
  • .net dataexcel 脚本公式 函数源码
  • .NET 服务 ServiceController