和我一起学C吧 

努力是可以提升智力的5.1.2    数组的使用:如何定义和使用数组,数组的下标和下标的范围

前面有数组的简单介绍,可以去回顾一下其相关定义

   变量名称[元素数量];

例:                       int grades[100];

double weight[20];

注:元素数量必须是整数。

 数组的特点:

  • 其中所有的元素具有相同的数据类型;

  • 一旦创建,不能改变大小;

  • 数组中的元素在内存中是连续依次排列的。

 数组的单元

  • 数组的每个单元就是数组类型的一个变量
  • 使用数组时放在[ ]中的数字叫做下标或索引,下标从0开始计数:

Grades[0];Drades[99] ;

   有效的下标范围

  • 编译器和运行环境都不会检查数组下标是否越界,无论是对数组单元做读还是写。

  • 一旦程序运行,越界的数组访问可能造成问题,导致程序崩溃。(segmentation  fault)

  • 也有可能不会造成严重后果(概率较小)。

  • 因此,程序的有效下标值:[0,数组的大小-1] 。

  Int A[10];    A[7]=0;  表示在数组A中,将7这个位置赋值为0;     长度为0 的数组,可以存在,但是无用。

5.1.3    数组的例子:统计个数

例题:

写一个程序,输入数量不确定的[0,9]范围内的整数,统计每一种数字出现的次数,输入-1表示结束。(运行过程中,不定个数的输入范围内的数,即可统计每个数输入的个数)

以下为对应代码:

5.2.1    数组的运算

 在一组给定的数据中,如何找出某个数据是否存在?1、数组的集成初始化:

Int a[ ]={2,4,6,7,1,3,5,9,11,13,23,14,32}

  • 直接用大括号给出数组的所有元素的初始值。

  • 不需要给出数组的大小,编译器替你数数。

补充int a[13]={2}   // {2,4,6,7,1,3,5,9,11,13,23,14,32};

表示数组为13个数,只给第一个数赋值为2,那其他数都初始化为0。

以下为对应代码:2、集成初始化时的定位Int a[10] = {[0] = 2, [2] = 3,6,};

  • 用[n]在初始化数据中给出定位;
  • 没有定位的数据接在前面的位置后面;

  • 其他位置的值补0;

  • 也可以不给出数组大小,让编译器算;

  • 特别适合初始数据稀疏的数组。

以下为对应代码:3、数组的大小

  • sizeof 给出整个数组所占据的内容的大小,单位是字节:

sizeof(a)/sizeof(a[0])

  • sizeof(a[0])给出数组中单个元素的大小,于是相除就得到了数组的单位个数。

优点: 这样的代码,一旦修改数组中初始的数据,不需要修改遍历的代码。

以下为对应代码:

4、数组的赋值

  • 数组变量本身不能被赋值。

  • 要把一个数组的所有元素交给另一个数组,必须采用遍历(即写一个循环):

for ( i = 0; ib[i] = a[i];}

  • 通常都是使用for循环,让for循环变量i从0到

  • 常见错误是:

循环结束条件是<=数组长度,或;

离开循环后,继续用i的值来做数组元素的下标!

编程练习解析汇总(2) &  数组  其中打印九九表,for语句的代码贴错图了,以下为原代码:

END

可爱的你一定会

扫一扫它吧❤

不确定大小的数组_原来数组是容器喔相关推荐

  1. JavaScript 数组拼接打印_JavaScript数组_创建数组_一维数组_length(二十三)

    目录: 1.什么是数组 2.创建数组方式 3.一维数组和length 一.什么是数组 数组对象的作用是:使用单独的变量名来存储一系列的值. 通俗理解:如果把声名变量来比做小轿车的话,那么数组就是高铁, ...

  2. c++ 构造函数数组_“动态数组”的设计与实现

    引言 数据结构是计算机存储.组织数据的方式.常见的数据结构有: (1)线性结构 如:线性表(包括:数组.链表.栈.队列.哈希表). (2)树形结构 如:二叉树.AVL树.红黑树.B树.堆.Trie.哈 ...

  3. c语言宏定义数组_利用数组处理批量数据 C语言程序编写定义与利用数组技巧全归纳...

    利用数组处理批量数据 引用数组可以帮助人们很好的实现对一种属性的数据的处理.由于计算机键盘只能输入有限的单个字符而无法表示上下标,C语言规定用方括号中的数字来表示下标,如S[3]即表示S₃.数组与循环 ...

  4. .net 遍历数组找重复值写入一个新数组_面试 | 数组类算法精析

    点击上方蓝字设为星标 每周一.三.五上午 8:30 准时推送 下面开始今天的学习- 面试中的算法问题,有很多并不需要复杂的数据结构支撑.就是用数组,就能考察出很多东西了.其实,经典的排序问题,二分搜索 ...

  5. java list 拼接 字符串数组_把数组所有元素排序,并按照“参数=参数值”的模式用“”字符拼接成字符串...

    /** * 把数组所有元素排序,并按照"参数=参数值"的模式用"&"字符拼接成字符串 * @param params 需要排序并参与字符拼接的参数组 * ...

  6. java 真数组 伪数组_伪数组(ArrayLike)

    伪数组的定义和特性 伪数组 (ArrayLike),又称类数组.是一个类似数组的对象,但是有如下几个特征: 按索引方式储存数据: 0: xxx, 1: xxx, 2: xxx... 具有length属 ...

  7. 问题 A: 【动态规划】采药_二维数组_一维数组

    问题 A: [动态规划]采药 时间限制: 1 Sec  内存限制: 64 MB 提交: 35  解决: 15 [提交][状态][讨论版] 题目描述 山洞里有一些不同的草药,采每一株都需要一些时间,每一 ...

  8. mysql 传递数组_将数组传递给MySQL存储例程

    我需要将字符串数组作为参数传递给MySQL存储例程.该数组可能很长,其元素数量不是固定的.然后,我想将字符串值放入具有一列的内存表中,以便可以处理数据.我不知道这是否可以在MySQL中完成.也许需要肮 ...

  9. java 传递字符串数组_将数组中字符串的值传递给java中的方法?

    参见英文答案 > How do I compare strings in Java?                                    23个 感谢您抽出时间来阅读.对不起, ...

最新文章

  1. HDU1250(高精度加法)
  2. angular2-baidu-map网站中使用百度地图
  3. SNMP OID是什么?
  4. P值(P-value),“差异具有显著性”和“具有显著差异”
  5. 关于invSqrt( )函数
  6. HDU OJ 动态规划46题解析
  7. python random随机数 RUNOOB python练习题50
  8. 风靡全球的15则数学动图:让你秒懂数学概念,看后觉得相见恨晚啊
  9. linux Tcpdump 抓包 win大小异常
  10. 有关asp.net技术的外文文献_医学科技论文写作中参考文献的标准格式及常见问题...
  11. 通通玩blend美工(3)——可爱的云
  12. 怎么用PS为一寸证件照更换底色背景色
  13. html将图片裁剪成圆形,zrender将一张图片裁剪为圆形
  14. python列表逐个输出_python的列表元素输出
  15. JavaScript 浏览器端 this的指向性问题
  16. java课程设计源码(游戏:急速生存)
  17. Excel如何过滤座机号提取出手机号码
  18. python 全栈开发,Day106(结算中心(详细),立即支付)
  19. Java工程师未来的三大就业方向
  20. 使用Typora设置图片自动上传至gitee仓库

热门文章

  1. cut、tee、split、xargs、bc命令
  2. C++各大著名程序库
  3. Weka学习三(ensemble算法)
  4. libevent简介和使用【转】
  5. 05-移动端开发教程-CSS3兼容处理
  6. js弹性运动滑动的菜单
  7. 《软件测试技术实战:设计、工具及管理》—第2章 2.2节运用决策表设计测试用例...
  8. window 命令行大全
  9. 谈谈 Tomcat 请求处理流程
  10. 一文让你明白Redis持久化 1