3)C语言数组(C自考学习)

一维数组

  一维数组中的元素是排列成一行的,当需要存放一行或一列数据时常用一维数组。一维数组的元素常用“数组名[下标]”来表示,其中,下表是从0开始的。例如:a[0]="hello";a[1]="world";

  1)数据类型可以是任何基本类型。

  2)数组名是按照“标识符”的规则构成的。

  3)长度是一个“整形常量表达式”,通常是一个整形常量。

  4)一个数组定义语句中可以只定义一个数组,也可以定义多个数组,还可以同时定义数组和变量。

  引用数组元素时,系统并不检查下标是否越界,即下标可以不在0~长度-1的合法范围内。但由于下标越界,超出数组元素的合法范围,会造成程序运行结果的不可预料。

  【说明】下标越界大多是针对数组来说的。比如你定义的数组的长度是10。那么你的数组里就有10个元素,他们的小标分别是从0--9。如果下标大于9了,这就叫下标越界了。

  例子:short y[2];

     y[2]=10;   scanf("%f",&y[3]);  y[1]=y[4];

一维数组的初始化赋值:

  数组元素和变量一样,可以在定义数组时赋予初值,称为数组的初始化。

  例如:int a[5]={1,2,3,4,5};          int a[]={1,2,3,4,5};  int a[10]={1,2,3,4,5}(其余的五个下标赋值为0)

写个简单的例子:从键盘上输入10个字符,然后按相反次序输出。

void main{

  char a[10];

  int i;

  for(i=0;i<10;i++){

    scanf("%c".&a[i]);

  }

  for(i=9; i>=0;i--){

    printf("%c",a[i]);

  }

}

对于一维数组类型说明应注意以下几点:

  1) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。

  2) 数组名的书写规则应符合标识符的书写规定。

  3) 数组名不能与其它变量名相同。例如:int a;  double a[10];

  4) 方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0], a[1], a[2], a[3], a[4]。

  5) 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。例如:int a =4;int b[a];

  6) 允许在同一个类型说明中,说明多个数组和多个变量。例如:int a,b,c,d,k1[10],k2[20];

二维数组

  数组元素的下标在2个或2个以上,这样的数组成为多位数组。

  【格式】数据类型 数组名 [行长度][列长度],......;

  【说明】

    #数据类型可以是任何基本类型,也可以是后面将要介绍的其他数据类型,如指针,结构等。

    #数组名师按照“标识符”的规则构成的。

    #行长度和列长度都是一个“整型常量表达式”,表示该二维数组有“行长度”行“列长度”列个数组元素。

    #一个数组定义语句中可以只定义一个二维数组,也可以定义多个二位数组,可以在一个定义语句中同时定义一维和二维数组,还可以同时定义变量。

二维数组定义举例

  int a[3][3];

  定义一个3行3列共9个元素的整形二维数组a。其元素为:

  a[0][0],a[0][1],a[0][2]

  a[1][0],a[1][1],a[1][2]

  a[2][1],a[2][1],a[2][2]

  1)分行给二维数组所有元素赋初值

  int a[2][3]={{1,2,3},{4,5,6}};

  其中{1,2,3}是赋给第0行3个数组元素的,也可以看成是赋予二维数组a中一维数组a[0]的;{4,5,6}是赋给第1行3个数组元素的,也可以看成是赋予二维数组a中一维数组a[1]的。

  2)不分行给多维数组所有元素赋初值

  int a[2][3]={1,2,3,4,5,6};

  各元素获得的初值和第1中方式的结果完全相同。C语言规定,用这种方式给二维数组赋初值时,是先按行,后按列的顺序进行的,即前3个初值是赋予第0行元素的,后3个初值是赋予第1行元素的。

  3)只对每行的前若干个元素赋初值,此时所有未赋初值的数组元素均获得零值

  int a[2][3]={{1},{4,5}};

  a[0][0]值为1,a[0][1]值为0,a[0][2]值为0;

  a[1][0]值为4,a[1][1]值为5,a[1][2]值为0;

  4)只对前若干行的前若干个元素赋初值,此时所有未赋初值的数组元素均获得零

  char a[2][3]={{‘1‘,‘2‘}};

  a[0][0]值为‘1‘,a[0][1]值为‘2‘,a[0][2]值为‘\0‘;

  a[1][0]值为‘\0‘,a[1][1]值为‘\0‘,a[1][2]值为‘\0‘;

  5)若给所有元素赋初值,行长度可以省略

  float a[][3]={{1,2,3},{4,5,6}};

  自动认为数组a[][3]的行长度是2.

  6)若分行给所有行的前若干个元素赋初值,行长度可以省略。

  float a[][3]={{1},{2,3}};

  自动认为数组a[][3]的行长度是2/

时间: 2024-11-05 02:24:09

3)C语言数组(C自考学习)的相关文章

GO语言学习(十四)Go 语言数组

Go 语言数组 Go 语言提供了数组类型的数据结构. 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 相对于去声明number0, number1, ..., and number99的变量,使用数组形式numbers[0], numbers[1] ..., numbers[99]更加方便且易于扩展. 数组元素可以通过索引(位置)来读取(或者修改),索引从0开始,第一个元素索引为 0,第二个索引为 1,以此类推. 声明数组

C语言数组:C语言数组定义、二维数组、动态数组、字符串数组

1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include <stdlib.h> int main() { int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999, b3=20098, b4=2; int c1=233, c2=205, c3=1, c4=6666; int d1=34, d2=0, d3

C语言数组元素下标为何从0开始

很多同学可能在学习数组时会有这个疑问,下标为什么不从1开始呢?从1开始不是更符合大家的日常习惯吗?生活中我们通常说第1个,而不是第0个.的确,有些计算机语言如早期的Pascal语言,数组元素的下标是从1开始的.难道是C语言故意要与众不同?要弄清楚这个问题,得先看一下计算机底层是怎样处理数组元素的.我们先编写了一个小程序,然后在visual studio中对其进行了反汇编.源程序和反汇编后的部分代码如下: 源程序: int arr[5];  //一个全局数组 int main() { int i;

1.2 C语言---数组

1.2     C语言---数组 1.2.1    为什么引入数组? 数组就是数组成的一个组,数就是一个特定数据类型的变量,组就是说好多数放在了一起. 1.2.2    怎么定义数组? int a[4];     //定义了一个数组a,里面有4个int元素. 总结:数组中的所有元素必须是同一种数据类型,不可能在一个数组中存储两种数据类型的数. 1.2.3    怎么使用数组? 数组定义的时候作为整体进行定义.但是使用的时候不能作为整体来使用,使用时必须拆开使用数组中的 各个元素. 例如:int

[易语言]连接ACCESS数据库学习

一.支持库配置 工具-支持库配置-数据库操作支持库 二.添加控件 启动窗口添加控件(数据库连接/记录集/超级列表框) 三.数据库连接 数据库连接1.连接Access ("数据库文件路径", "数据库密码") 例:数据库连接1.连接Access (取运行目录 () + "H:\m.mdb", "") 四.定义变量 .局部变量 索引, 整数型 .局部变量 用户ID, 整数型 .局部变量 日期时间, 文本型 五.例子 .支持库 eD

c语言到汇编的学习

[内存结构] C程序通过编译-汇编-连接,最后到可执行文件.载入内存有这几个部分: text:正文段,存放的是可执行的机器码段 data:存放初始化之后的全局变量和静态变量 bbs:存放未初始化的静态变量和全局变量 heap:堆,由程序员自己分配和释放,程序结束时,操作系统也会释放. stack: 栈,编译器自动分配,存放函数的参数,局部变量 下图是典型的内存布局图 #include <stdio.h> #include <stdlib.h> void foo(int x){pri

数组与指针学习笔记

1.数组初始化说明 (1).在函数体外定义的内置数组,其元素均被初始化为0: (2).在函数体内定义的内置数组,其元素无初始化: (3).类类型的数组自动调用默认构造函数进行初始化,如果无默认构造函数,则必须为该素族元素提供显示初始化. 2.指针的定义 double *p_dbData1, p_dbData2; p_dbData1为指向double类型的指针,p_dbData2为类型为double的对象,若两个变量都定义为double指针,则如下所示: double *p_dbData1,  *

Go语言数组的使用

Go 语言数组 Go 语言提供了数组类型的数据结构. 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 相对于去声明number0, number1, ..., and number99的变量,使用数组形式numbers[0], numbers[1] ..., numbers[99]更加方便且易于扩展. 数组元素可以通过索引(位置)来读取(或者修改),索引从0开始,第一个元素索引为 0,第二个索引为 1,以此类推. 声明数组

Go语言数组,切片

数组声明 Go 语言数组声明需要指定元素类型及元素个数,语法格式如下: var variable_name [SIZE] variable_type 以上为一维数组的定义方式.数组长度必须是整数且大于 0.例如以下定义了数组 balance 长度为 10 类型为 float32: var balance [10] float32 初始化数组 以下演示了数组初始化: var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0} 初始化数组中 {} 中的

R语言——绘图函数深入学习

利用R自带数据集 通过data()函数可以查看R自带数据集. > data() 返回以下结果,每一条记录都是一个数据,键入相应的数据名称可以查看具体信息. Data sets in package ¡®datasets¡¯: AirPassengers Monthly Airline Passenger Numbers 1949-1960 BJsales Sales Data with Leading Indicator BJsales.lead (BJsales) Sales Data wit