A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© A侠 中级黑马   /  2015-9-29 00:19  /  794 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组总结
一、1.数组的定义:三要素;数组类型 数组名 数组长度(常量表达式);
              此外还有掌握 数组 数组元素 数组下标 数组维数的概念
   2.数组的分类:
             1)按照类型分类:数值数组,字符数组,结构数组,指针数组
             2)按照维数分类:一维,二维,三维,乃至多维...
   3.数组的使用:
             1)定义和初始化数组:
                             1>定义的同时初始化
                             2>先定义再初始化
                                  1>>部分初始化
                                  2>>完全初始化
             2)数组传参(数组与函数):
                        1>数组名传参:传递的是地址,形参和实参共享一块内存区
                                   就是说,在被调函数中修改数组,则函数外的数组也会被改变.
                                   被调函数内:因为传的是地址,sizeof(数组名(即地址))==8 恒等
                                    被调函数外,数组名就是代表整个数组,sizeof(数组名)==整个数组所占字节数
                        2>数组元素传参:这个是值传递,函数内外的数组是两个数组,不会相互影响
                                     而且被调函数一结束,该函数内的数组空间就会被释放
                                     一般格式:数组名[下标]
             3)特别的关于数组有关地址的内容:
                                    数组名==&数组名==&数组名[0] 这三个的值即地址都是相等的.
             4)数组的遍历:如:二维数组,外循环控制行数,内循环控制列数 打印出数组内所有元素.
             5)求数组的最大(小)值:遍历与比较、交换变量相结合的用法
             6)数组的算法:
                         1>冒泡排序:大数下沉  小数上浮 (相邻比较大小,并决定是否交换数值)
                         2>选择排序:每次查找 末排序列中 的最大值,将其至于末排序列的左边位置,做长度-1轮 结束
             7)注意:数组分配内存时和基本数据类型的变量有所不同.
                   数组分配内存虽然开始也是先从高地址查找,但也只是用来确定整个数组(相当与基本数据类型的变量)所占总的空间.
                   然后,数组在计算机划分好的自己一亩三分地开始给数组元素分配内存,从低地址向高地址分配,依次对应数组名[0],数组名[1],.....,数组名[n]...
   4.字符(串)数组:字符数组与字符串数组的区别是字符数组不含'\0'这个元素,而字符串则会手动或者计算机自动补上'\0'的.

                 这是一个数组的另一大类,C语言专门建立了一个库即 string.h 来使用字符(串)数组.
                 这里主要讲了
                 1>:strcpy():将一个字符(串)(数组)赋值给另一个字符(串)数组. strcpy(a,b)注意:如果b的长度如果小于a的长度
                           那么会在a的剩余部分空间补 空值.
                 2>:strlen():这里会从字符(串)数组的地址开始扫描计数,一直到'\0'结束.  计数字符数
                             这里要注意和sizeof()的区别.这里计数字节数,'\0'占1字节,且并不会因\0而停止计数,除非它是数组的最后一个元素.
                 3>:%s :这里专门设了一个占位符%s来 批量输出 字符(串)数组,同strlen类似,也是遇到'\0' 就会停止输出,如果所打印的数组为字符数组,则计算机会自动打印,比字符数组地址高的相邻数组的字符,直到遇到'\0' 结束打印

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马