C语言学习06.数组

作者: 快乐的提千万 | 来源:发表于2017-10-28 14:53 被阅读6次

一维数组

数组(Arrey):若干个相同类型数据的集合。 这些数据称为元素,通过下标作为唯一标识。
数组名也是标识符,指向数组在内存中的首地址。输入输出不用加&。
[]是下标运算符,里面要放常量,从0开始数。不能越界访问,可能找到野地址,或者直接段错误。
//下标(subscript)、索引(indice)或偏移量(offset)
类似于数组名是首地址,然后用下标进行指针偏移,找到对应内存存放的数据。所以只能逐个使用数组元素,不能一次性使用整个数组。

数组初始化:

1.数组初始化数据应该用大括号包含,相邻数据之间用‘,’分隔。
2.初始化数据按顺序从前到后使用
3.如果初始化数据个数超过存储位置个数则丢弃后面的数据
4.如果初始化数据个数少于存储位置个数则后面的存储位置都初始化为0
5.如果初始化数据个数和存储位置个数一致则可以省略存储位置个数

一维数组的初始化

  • 全部初始化 int[3]={0,1,2};
  • 部分初始化 未赋值的元素为0。 int[3]={0,1,2};其中a[3]=0;
    • 只能逐个赋值,不能对整体赋值 a[3]={1,1,1,1};是错的。
    • a[3]={0};可以,表示全0,因为未赋值的为0。
    • a[]={1,2,3};如果不指定数组大小,编译器会根据初始化情况自动判断数组大小。
  • 动态赋值:使用循环。for(i=0;i<10;i++)scanf(“%d”,&a[i]);

sizeof(数组)=sizeof(数组的元素) * 元素的个数

二维数组:

  • 链式存储,但是我们可以看成一个矩阵方便理解。
    • int m[2][3] = {{0,2,1,2},{1,2,3,2},{2,3,4,2}}; //第一个元素为行(横),第二个为列(纵);
  • 二维数组定义时可以省略一维的长度,但二维的长度必须给出。如果列数据不够填充一行,其余的元素初始化为0。
    • int m[1][2] = {{1,2,3}{1}}; //m[1][1]、m[1][2]为0
  • 存储:行优先次序。即m[0][0] 、m[0][1]...m[1][0]、m[1][1]....m[2][0]....m[2][3]。
  • 多维数组存储:先变最右边下标,再依次变化左边的下标。

字符数组(string):若干个字符构成的序列

  • 输入:%s ;不要加&,输入串长度要小于数组维数,空格或回车结束,自动加‘\0’
    • get()输入 get(str);
    • 函数功能:从键盘读入一个字符串到str中,并自动在末尾加‘\0’,输入字符串时以回车结束输入,故该函数可以读入含空格的字符串。
  • 输出:格式化输出,到‘\n’结束(不会自动换行)
    • Put()输出 put(str);
    • 函数功能:将字符数组str中包含的字符串或str所代表的字符串输出,同时将‘\n’转换成换行符。(会自动换行)

数组和函数

  • 数组元素作为实参 元素只代表一个存储单元———>就相当于一个变量
  • 数组名作为实参 数组名是一个地址值———>指针变量(传递数组的首地址)
    此时要求实参与实参数组的类型、维数相同。进行的是地址的传递,即实参的首地址传给形参数组名。
    数组名只给了首地址,没有开辟新的存储单元,只开辟了指针变量的存储单元
  • 数组元素地址作实参 地址值———>指针变量(传递变量的指针)

相关文章

  • C语言学习06.数组

    一维数组 数组(Arrey):若干个相同类型数据的集合。 这些数据称为元素,通过下标作为唯一标识。数组名也是标识符...

  • C语言数组的升维与降维之说

    C语言数组的升维与降维之说 C语言数组的升维 C语言数组的降维

  • 数组(更新...)

    在学习语言时,我们都会遇到数组.大学期间学过C,C++,Java,C#.这些语言中都学了数组,那时候用的不多,概念...

  • Kotlin学习之数组

    Kotlin学习之数组 @(Kotlin学习) Kotlin中的数组采用Array类定义,抛弃了类C语言中“...

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • C、C++之动态数组的实现

    C、C++之动态数组的实现 本篇博客基于笔者本人正在学习的C++上机课程作业,主要代码由C语言构成。由于C语言没有...

  • 2015年iOS开发整理总结

    C语言学习总结# 难点和重点## 重要知识点回顾## 数组的使用 Objective-C学习总结# 网络阶段## ...

  • 《深入理解计算机系统》——Ch2-MemoryⅡ

    这一章继续学习内存。如何把C语言的变量存到内存,C语言中的指针和数组在内存的存取方式。 1 C语言中的&和* 第一...

  • 0基础学习C语言第七章:数组(2)

    C语言 多维数组 C 语言支持多维数组。多维数组声明的一般形式如下: type name[size1][size2...

网友评论

    本文标题:C语言学习06.数组

    本文链接:https://www.haomeiwen.com/subject/oukspxtx.html