C语言数组大小-程序员宅基地

技术标签: c语言  

        在数组进行集成初始化时(上一篇中有相关内容,链接在下方),数组长度会由编译器设定。数组的初始化https://blog.csdn.net/weixin_52133421/article/details/122850510?utm_source=app&app_version=5.0.1&code=app_1562916241&uLinkId=usr1mkqgl919blen

        如果需要得到数组的大小,可以通过sizeof函数。sizeof(array)可以得到array数组所占的内容大小,单位为字节(Byte),sizeof(array[i])可以得出单个元素所占内容大小。所以可以通过sizeof(array)/sizeof(array[i])得出数组的长度。

源代码:

#include<stdio.h>
int main()
{
	int i;
	int number;
	int array[] = {1,3,5,4,7,0,4,6,9,12,16,23};
	printf("数组总字节数:%lu\n", sizeof(array));
	printf("数组单个元素字节数:%lu\n", sizeof(array[0]));
	number = sizeof(array) / sizeof(array[0]);     //number即为数组长度
	printf("数组长度:%d\n", number);
	for (i = 0; i < number; i++)
		printf("%d  ", array[i]);
	return 0;
}

 测试结果:

数组总字节数:48
数组单个元素字节数:4
数组长度:12
1  3  5  4  7  0  4  6  9  12  16  23

        这样得出数组长度的最大好处在于一旦修改数组中初始的数据,不需要再修改遍历的代码,例如其中的遍历数组操作。

for (i = 0; i < number; i++)
    printf("%d  ", array[i]);

        无论数组中的数据怎么修改,数组长度始终是正确的。


      

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_52133421/article/details/122851559

智能推荐

智能制造控制中的AI研究进展-程序员宅基地

文章浏览阅读446次,点赞14次,收藏14次。1.背景介绍智能制造控制是现代制造业中的一个重要领域,它涉及到制造过程中的自动化、智能化和优化。随着计算能力的提高和数据技术的发展,人工智能(AI)技术在智能制造控制中的应用也逐渐成为主流。本文将从背景、核心概念、算法原理、代码实例、未来趋势等多个方面进行深入探讨,以帮助读者更好地理解AI在智能制造控制中的应用和研究进展。1.1 背景介绍智能制造控制是制造业中的一个重要领域,涉及到制造...

2018美亚杯个人赛刷题-程序员宅基地

文章浏览阅读5.4k次,点赞6次,收藏27次。文章目录写在前面题目1.E2.C3.B -D-4.C -E-5.C6. D7.D8. A9.A10.C11.E12.D13.D14.A15.D16.E17.D18.A19. B20.C21.E22.D23.A24.C25.C26.D27.D28.C29.D30.D31.C32.E33.D34.B -C-35. -E-36.A37.A38.D39.D -C-40.B41.C42.E -D-43.C44.B45.A46.C47.E48.B49.D50.CPS写在前面这是美亚杯2018个人赛的个人_2018美亚杯个人赛

ECS框架学习(Entitas)入门_ecs框架 entitas-程序员宅基地

文章浏览阅读6.2k次。公司要求使用ECS框架经行开发,没办法只能自己学习了。记录一下学习过程。框架的含义可以去其他地方查看,我这里写一点我的理解(新人,不对请谅解)。ECS即Entity-Component-System(实体-组件-系统) 的缩写。它做到了行为、数据分开,Component存数据。Entity用来就是由各个Component组成。System用来经行他们中间的通信。对于网上或者官方说速度更快、更容..._ecs框架 entitas

vars()函数用法-程序员宅基地

文章浏览阅读1.5w次,点赞10次,收藏35次。python内置函数。vars() 函数返回对象object的属性和属性值的字典对象。vars([对象])当函数不接收参数时,其功能和locals函数一样,返回当前作用域内的局部变量。当函数接收一个参数时,参数可以是模块、类、类实例,或者定义了__dict__属性的对象。#作用于模块&amp;amp;gt;&amp;amp;gt;&amp;amp;gt; import time&amp;amp;gt;&amp;a_vars()

vue中实现文字超出横向滚动_el-pagination超出屏幕-程序员宅基地

文章浏览阅读4.3k次,点赞3次,收藏14次。vue中实现文字超出横向滚动marquee组件<template> <div class="marquee-wrap" ref="marquee-wrap"> <div class="scroll" ref="scroll"> <p class="marquee">{{text}}</p> <p class="copy" ref="copy"></p> </div>_el-pagination超出屏幕

web.config/app.config敏感数据加/解密的二种方法-程序员宅基地

文章浏览阅读59次。一.利用代码加解密usingSystem.Web.Configuration;//加密web.Config中的指定节privatevoidProtectSection(stringsectionName){Configurationconfig=WebConfigurationManager.OpenWebConfigurat..._app.config代码加解密

随便推点

Qt笔记_正则表达式(regular expression)_qt regex-程序员宅基地

文章浏览阅读9.2k次,点赞4次,收藏28次。手册里使用的词汇是 regexp 优点: 方便地完成字符串的一些处理操作,例如验证、查找、替换和分割等。类名称为QRegExp类,是基于Perl的正则表达式语言,支持Unicode。头文件:#include < QRegExp >//(尖括号中的空格是为了适应markdown而添加的,编程时不使用多余的空格)qmake:QT += core帮助文档中指出:All functions in_qt regex

系统设计与分析homework5_sdlc的第一阶段是分析。写一个简单的报告,包括: 分析新系统需要解决的问题 l可行-程序员宅基地

文章浏览阅读151次。一、根据订旅馆建模文档,Asg-RH.pdf:1. 绘制用例图模型(到子用例)给出 make reservation 用例的活动图2、根据课程练习“投递员使用投递箱给收件人快递包裹”的业务场景分别用多泳道图建模三个场景的业务过程场景一x科技公司发明了投递柜,它们自建了投递柜以及远程控制系统。注册的投递员在推广期免费使用投递柜。由于缺乏资源,仅能使用y移动平台向客户发送短信通知。..._sdlc的第一阶段是分析。写一个简单的报告,包括: 分析新系统需要解决的问题 l可行

LayUI的后台管理模板_layui后端模板-程序员宅基地

文章浏览阅读8k次,点赞2次,收藏18次。  以前没有做网页开发不知道的内容太多了,现在开始做了这一块,发现内容真多。  星期五接到一个资产核查的任务,时间紧,我对网页这一块的内容还不是很熟练,有些着急,在网上一搜,LayUI的模板,有很多好评和讲解,拿来一用,感觉很不错。  这个后台系统可以很快上手,界面部分不用操心太多,很多页面有实例,略微改动就可以直接使用。  写程序界面是个大问题,这下省事多了,虽然后期项目使用LayUI比较少,但做一些中小型的项目真的是很好的选择,最主要的就是快。..._layui后端模板

常见的数组概念-程序员宅基地

文章浏览阅读90次。常见数组_常见的数组

如何从零开始实现TDOA技术的 UWB 精确定位系统(1)_uwb_tdoa-程序员宅基地

文章浏览阅读1.1k次,点赞28次,收藏24次。这是一个系列文章,将向你介绍如何从零开始实现一个使用TDOA技术的 UWB 精确定位系统。重要提示劝退说明Q:做这个定位系统需要基础么?A:文章不是写给小白看的,需要有电子技术和软件编程的基础Q:你的这些硬件/软件是开源的吗?A:不是开源的。这一系列文章是授人以“渔”,而不是授人以“鱼”。文章中我会介绍怎么实现UWB定位系统,告诉你如何克服难点,但不会直接把PCB的Gerber文件给你去做板子,不会把软件的源代码给你,不会把编译好的固件给你。我不会给你任何直接的结果,我只是告诉你方法。_uwb_tdoa

各种常见报错汇总_vs未经处理的异常怎么处理-程序员宅基地

文章浏览阅读10w+次,点赞2次,收藏13次。Visual Studio解决办法:报错原因:堆栈溢出,可能是定义的某个变量太大而没有修改栈保留大小所至。本人的问题是用ege画图的时候定义的地图面积太大导致。解决方法:项目→属性→链接器→系统→堆栈保留大小→设置成一个比较大的数并应用。即可完美解决,如果还没解决可能是设置的不够大。其实真正应该修改的是你的代码,问题就出现在为什么会有栈溢出问题,很简单,显然是数组或者开辟的指针空间太大!所以,解决办法就是将大数组定义在main()外部当作全局变量,全局变量放在数据区,空间足够使用。或者写在mai_vs未经处理的异常怎么处理