数组长度计算_c语言计算数组长度的函数

数组长度计算_c语言计算数组长度的函数(1)sizeof方法:sizeof(数组名)/sizeof(数组类型名)说明:数组占用字节除以数组类型所占字节,结果为数组元素个数(2)strlen说明:strlen,求字符串有效长度方法

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

     (1)sizeof
     方法:sizeof(数组名)/ sizeof(数组类型名) 
     说明:数组占用字节除以数组类型所占字节,结果为数组元素个数
    (2)strlen
     说明:strlen,求字符串有效长度
     方法:strlen(字符数组名)  //结果为字符数组有效字符长度,不包含末尾的’ /0′

注意:

当数组作为函数參数传递时,数组名代表的是数组的首址,而非数组内容,故无法使用sizeof和strlen;

所以,在传址时,应提供2个參数:1个是数组名,代表数组首地址;1个是数组元素个数,以便确定传递的次数。
比如:
#include
<
iostream
>


using
 
namespace
 std;

void
 Sum(
int
 array[ ])
{
cout

<<

sizeof(array)=

<<
sizeof
(array)
<<
endl;
}

void
 main()
{

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

<<

sizeof(a)=

<<
sizeof
(a)
<<
endl;
Sum(a);
}

运算结果为:
sizeof(a)=40
sizeof(array)=4
分析:
当数组作为函数參数传递时,数组名代表的是数组的首址,即指针,而非数组内容。假设传递整个数组,会导致栈溢出的。
所以在主函数中使用sizeof计算出的是准确的数组长度。而在调用函数中,因为传递的数组不再是数组本身,而是其地址,所以用sizeof计算出的,实际上是数组地址的长度,这时的sizeof(array),实际上是sizeof(int)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167058.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • origin柱状图美化_怎么画图

    origin柱状图美化_怎么画图效果图展示:原始柱状图:1.2.3.![在这里插入图片描述](https://img-blog.csdnimg.cn/1a65c5beeb2840f2a8424395e36e3a05.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP6aGn5ZCM5a24,size_20,color_FFFFFF,t_70,g_se,x_164.5.6.四个轴的线进行优化…

    2022年9月27日
    3
  • MyBatis中的JdbcType映射介绍

    Java项目涉及到数据库交互,以往常用的是JDBC,现在则有Hibernate、Mybatis等这些持久化支持。 项目中用到了MyBatis,和JDBC最显著的区别,就是SQL语句配置化,通过xml文件定义SQL语句,当然JDBC也可以将SQL配置化,需要定制开发,MyBatis则直接支持这种方法。 官方对于MyBatis的介绍,MyBatisisafirstclas…

    2022年4月5日
    86
  • AbstractInterceptor和Interceptor的区别

    AbstractInterceptor和Interceptor的区别AbstractInterceptor实现了Interceptor接口,并且空实现了init()和destroy()方法。在使用中,如果无需实现init和destroy方法,可以直接实现AbstractInterceptor

    2022年5月15日
    36
  • idea2021激活码 mac(最新序列号破解)

    idea2021激活码 mac(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    42
  • 渗透测试笔记大全_黑客秘笈-渗透测试实用指南

    渗透测试笔记大全_黑客秘笈-渗透测试实用指南【拿shell】1.直接上传aspasajspcerphpaspxhtrcdx格式的木马,不行就利用IIS6.0解析漏洞”:1.asp;1.jpg/1.asp;.jpg/1.asp;jpg/1.asp;.xls2.上传图片木马遇到拦截系统,连图片木马都上传不了,记事本打开图片木马在代码最前面加上gif89a,一般就能逃过拦截系统了。3.上传图片木马把地址复制到数据库备份里备份成…

    2022年9月21日
    3
  • visual studio 2013安装教程_Visual Studio下载

    visual studio 2013安装教程_Visual Studio下载C语言学习VisualStudio2013下载及其安装VisualStudio2013官方旗舰版下载地址:http://download.microsoft.com/download/B/1/9/B1932B8C-1046-4773-A1DD-4AB5C0978637/vs2013.2_ult_chs.iso下载完之后:①下载后得到的是ISO文件,直接解压缩或用虚拟光驱加载运行都可以;②这里直接解压,然后双击“vs_ultimate.exe”开始安装;③设置好安装路径后…

    2025年9月23日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号