C语言 数组长度计算 - C语言零基础入门教程

目录

  • 一.计算数组长度
    • 1.经典案例
    • 2.计算数组长度
  • 二.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.计算数组长度

1.经典案例

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 数组长度计算
//@Time:2021/06/12 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include "stdafx.h"
#include<stdlib.h>
#include<stdio.h>void main()
{int arr[] = { 1, 2, 3 };int len = sizeof(arr) ;   //错误的计算数组大小printf("sizeof(arr) : %d\n",len);for (int i = 0; i < len; i++){printf("%d,", arr[i]);}printf("\n");system("pause");
}
/*
输出结果:sizeof(arr) : 12
1,2,3,-858993460,9697168,11737625,1,13017304,13018680,123799719,11735310,11735310,
请按任意键继续. . .
*/

是不是很懵逼,,除了会输出 以外,还会输出杂乱无章的数字,但一共是输出 12 个。因为数组的内存是动态分配的,到了元素 3 以后的元素都是新分配的,并不一定是空,随机数。

因为 c 语言数组是一片连续的空间,元素 3 的空间是有数据的,数据被正常读取出来;而元素 4,5,6...11 一些没有实际意义的杂乱无章的数字。

出现随机数原因:数组一共就3个元素。通过 sizeof 函数计算的数组个数确是 12,那么一开始我们在获取数组元素个数的时候就出错了;

2.计算数组长度

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 数组长度计算
//@Time:2021/06/12 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include<stdlib.h>
#include<stdio.h>void main()
{int len = 0;//int整形数组int arr_int[] = { 1, 2, 3 };len = sizeof(arr_int) / sizeof(arr_int[0]);printf("sizeof(arr_int) : %d\n", len);for (int i = 0; i < len; i++) {printf("%d,", arr_int[i]);}printf("\n");printf("------------------------------------------\n");//float浮点数数组float arr_float[] = { 1.5, 2.6, 3.9 };len = sizeof(arr_float) / sizeof(arr_float[0]);printf("sizeof(arr_float) : %d\n", len);for (int i = 0; i < len; i++) {printf("%f,", arr_float[i]);}printf("\n");printf("------------------------------------------\n");//double浮点数数组double arr_double[] = { 10.2, 23.5, 33.3 };len = sizeof(arr_double) / sizeof(arr_double[0]);printf("sizeof(arr_double) : %d\n", len);for (int i = 0; i < len; i++) {printf("%f,", arr_double[i]);}printf("\n");printf("------------------------------------------\n");//char字符串数组char arr_char[] = "fs123";len = sizeof(arr_char) / sizeof(arr_char[0]);printf("sizeof(arr_char) : %d\n", len);for (int i = 0; i < len; i++) {printf("%c,", arr_char[i]);}printf("\n");system("pause");
}
/*
输出:
sizeof(arr_int) : 3
1,2,3,
------------------------------------------
sizeof(arr_float) : 3
1.500000,2.600000,3.900000,
------------------------------------------
sizeof(arr_double) : 3
10.200000,23.500000,33.300000,
------------------------------------------
sizeof(arr_char) : 6
f,s,1,2,3, ,
请按任意键继续. . .
*/

最后一个字符串数组虽然只有 5 个元素,但是别忘了,字符串末尾还有一个结束符 \0,所以一共 6 个字符;

二.猜你喜欢

  1. 安装 Visual Studio
  2. 安装 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸载
  4. Visual Studio 2003/2015 卸载
  5. C 语言格式控制符/占位符
  6. C 语言逻辑运算符
  7. C 语言三目运算符
  8. C 语言逗号表达式
  9. C 语言 sizeof 和 strlen 函数区别
  10. C 语言 strcpy 和 strcpy_s 函数区别
  11. C 语言 memcpy 和 memcpy_s 区别
  12. C 语言 数组定义和使用
  13. C 语言 数组遍历
  14. C 语言 数组排序 – 冒泡法排序
  15. C 语言 数组排序 – 选择法排序
  16. C 语言 数组排序 – 插入法排序
  17. C 语言 数组排序 – 快速法排序
  18. C 语言 数组下标越界
  19. C 语言 数组内存溢出
  20. C 语言 数组下标越界和内存溢出区别
  21. C 语言 数组长度计算

未经允许不得转载:猿说编程 » C 语言 数组长度计算

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

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

相关文章

BugkuCTF-MISC题想蹭网先解开密码

下载文件wifi.cap 先通过crunch命令先生成字典 crunch 11 11 -t 1391040%%%% -o password.txt 输入aircrack-ng wifi.cap 输入3&#xff0c;因为第三个存在握手包 输入aircrack-ng -e D-Link_DIR-600A -b BC:F6:85:9E:4E:A3 -w /root/文档/CTF题目/CTF02/MISC/想蹭网先解开密…

云要闻 | 华为助力5G;青云云资源价格全面下调;神州数码签订云计算服务合同

戳蓝字“CSDN云计算”关注我们哦&#xff01;Hello&#xff0c;everyone&#xff1a;1月7日&#xff0c;星期一CSDN云要闻时间&#xff1a;嗨&#xff0c;大家好&#xff0c;偶是“CSDN 云计算”微信公众号新晋成员一枚&#xff0c;人称“要闻君”。精神满满的周一&#xff0c;…

C语言 十进制和十六进制相互转换 - C语言零基础入门教程

目录 一.十进制和十六进制区别 1、基数不同2、有效字符不同3、用途不同 二.十进制转十六进制三.十六进制转十进制四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.十进制和十六进制区别 1、基数不同 十进制满10进1&#xff1b; 十六进制满F…

多态详细讲解

1.多态是方法的多态&#xff0c;属性没有多态 2.父类和子类有联系&#xff0c;类型转换异常&#xff01;classcastexception 3.存在条件&#xff0c;继承关系&#xff0c;方法需要重写&#xff0c;父类引用指向子类对象Father f1new Son&#xff08;&#xff09;&#xff1b;…

BugkuCTF-MISC题旋转跳跃

先下载解压&#xff0c;尝试播放 既然是mp3&#xff0c;那么先尝试拉入Audacity 没发现啥&#xff0c;仔细看了看题目注释&#xff0c;发现给了个KEY 打开mp3stego-gui的根目录 在终端输入wine Decode.exe -X -P syclovergeek sycgeek-mp3.mp3 (wine为在linux打开exe文件) 会…

有问有答 | 算法和数据结构精华问答

戳蓝字“CSDN云计算”关注我们哦&#xff01;所有的算法&#xff0c;乃至数学在实际运用中都是要根据不同的数据来选择不同的方法&#xff0c;所以一般学习过算法和数据结构的人都会越发的认识到&#xff0c;数据才是程序的中心&#xff0c;只有找到了一个组织数据的最佳方式&a…

全网最细之instanceof和类型转换

package com.wuming.oop4.demo08;public class Application {public static void main(String[] args) {//类型之间转换&#xff1a;父 子//高 低Person person1 new Student();//student将这个对象转换为student类型&#xff0c;我们就可以使用student…

C语言 十进制和八进制相互转换 - C语言零基础入门教程

目录 一.十进制和八进制区别 1、基数不同2、有效字符不同3、用途不同 二.十进制转八进制三.八进制转十进制四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.十进制和八进制区别 1、基数不同 十进制满10进1&#xff1b; 八进制满8进1&#x…

BugkuCTF-MISC题一切有为法如梦幻泡影

下载文件 从Zero.png里foremost分离出一个压缩包&#xff0c;解压得到问.png 没有得到 《察》.zip 密码的提示&#xff0c;所以爆破得到密码42&#xff0c;解压得到这两个文件 先分析one.png&#xff0c;foremost分离出压缩包&#xff0c;解压得到感.png&#xff0c;同样也没…

C语言 十进制和二进制相互转换 - C语言零基础入门教程

目录 一.十进制和二进制区别 1、基数不同2、有效字符不同3、用途不同 二.十进制转二进制三.二进制转十进制四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.十进制和二进制区别 1、基数不同 十进制满10进1&#xff1b;二进制满2进1&#xf…

细数阿里达摩院2019年的十个Flag

戳蓝字“CSDN云计算”关注我们哦&#xff01;来自&#xff1a;人工智能与大数据作者&#xff1a;AI小哥1月2日&#xff0c;阿里达摩院发布《2019十大科技趋势》&#xff0c;在未来的一年&#xff0c;科技领域究竟会再次迎来春天&#xff0c;还是继续在寒冬中前行&#xff0c;达…

全网最细之static关键字讲解

package com.wuming.oop.demo07;public class Person {//2:赋初值{System.out.println("匿名代码块");}//1&#xff1a;只执行一次static{System.out.println("静态代码块");}//3public Person() {System.out.println("构造方法");}public stati…

BugkuCTF-MISC题隐写

隐写&#xff1a; TeakPNG打开图片 在010editor里修改CRC 打开图片发现没有flag 在TeakPNG将420改为500&#xff0c;弹出flag

C语言 二维数组定义和使用 - C语言零基础入门教程

目录 一.二维数组简介二.定义二维数组并初始化 1.定义二维数组2.初始化二维数组 三.访问二维数组四.修改二维数组五.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.二维数组简介 在 C 语言中&#xff0c;一组数据的集合称为数组 Array &#…

云头条 |华为发布鲲鹏920;高通新推智能座舱芯片;Github重磅更新

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;偶是“CSDN 云计算”微信公众号新晋成员一枚“头条君”。第一次和大家见面&#xff0c;先做个自我介绍吧&#xff0c;头条君带来的【云头条】特别栏目&#xff0c;会在未来的日子里&#xff0c;无论…

全网最细之抽象类讲解

package com.wuming.oop.demo08; //子类继承了抽象类&#xff0c;就要实现抽象类的所有方法&#xff0c;除非子类也是抽象类&#xff0c;就子子类去实现 public abstract class A extends Action{ /* Overridepublic void doSomething() {}*/ }package com.wuming.oop.demo0…

BugkuCTF-MISC题隐写2

下载文件welcome.jpg 通过binwalk分离出文件&#xff0c;_welcome.jpg.extracted文件夹 爆破压缩包&#xff0c;得到解压密码为871 通过010editor打开解压图片&#xff0c;得到base64编码 解码即可

C语言 二维数组行数和列数计算 - C语言零基础入门教程

目录 一.计算一维数组长度二.计算二维数组长度 1.二维数组行数2.二维数组列数3.二维数组的元素个数 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.计算一维数组长度 在前面很多文章都介绍了关于普通数组计算…

Istio调用链埋点原理剖析—是否真的“零修改”分享实录

戳蓝字“CSDN云计算”关注我们哦&#xff01;来自&#xff1a;容器魔方作者&#xff1a; idouba本文整理自华为Cloud BU技术专家在K8S技术社上关于Istio调用链的分享。前言大家好&#xff0c;我是idouba&#xff0c;来自华为Cloud BU&#xff0c;当前在做Istio服务网格在华为云…

全网最细之接口的定义与实现

package com.wuming.oop.demo09;public interface TimeService {void timer(); }package com.wuming.oop.demo09;//interface 定义的关键字&#xff0c;接口都需要有实现类 /*接口作用 * 1.约束 * 2.定义一些方法&#xff0c;让不同的人实现~ 10 --->1 * 3.接口所有的定义方…