一维数组的定义和引用汇总
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、如果想使一个数组中全部元素值为0, 可以写成 int a[10]={0,0,0,0,0,0,0,0,0,0}; 不能写成 int a[10]={0*10};
一维数组的初始化(2)
4、对全部数组元素赋初值时,可以不指定数组长度。
例如:int a[]={1,2,3,4,5};
上面的写法中,{ }中只有五个数,系统会据此自动定 义数组的长度为5。 初始化之后:a[0]=1,a[1]=2,a[2]=3,a[4]=4,a[5]=5。 如果被定义的数组长度与提供初值的个数不同, 则数组长度不能省略。 例如:想定义数组长度为10,就不能省略数组长度的定义。 而必须写成 int a[10]={ 1,2,3,4,5}; 只初始化前面5个元素,后5个元素为0。 不能写成 int a[ ]={1,2,3,4,5};
/*行号3*/ int f[20]={1,1};
/*行号4*/ for(i=2,i<=20;i++)
/*行号5*/ f [ i ]=f [ i -1]+f [ i -2];
/*行号6*/ for(i=0,i<20;i++)
/*行号7*/ {
/*行号8*/ if( i %5= =0) printf(“\n”);/控* 制换行,每行输出五个数*/
合法标识符
a
1 a[0]
2 a[1]
3 a[2]
4 a[3]
数组名表示内存首地址, 是地址常量
5
a[4]
6 a[5]
表示元素个数 下标从0开始
编译时分配连续内存 内存字节数=数组维数*
sizeof(元素数据类型)
例 int i=15; int data[i];
(? 不能用变量定义数组维数)
一维数组元素的引用(1)
一、规则:
(1)数组必须先定义,后使用。
(2)数组元素的使用形式为: 数组名 [ 下标 ]
下标可以是整型常量或整型表达式, 例如: a[0]=a[5]+a[7]-a[2*3];
注意: C语言规定只能逐个引用数组元素, 不能一次引用整个数组.
一维数组元素的引用举例
例7.1 数组元素的引用
main() { int i ,a[10]; for( i =0; i<=9; i ++)
下面的用法是错误的:
int a(10);
一维数组的定义(2)
(3)常量表达式表示元素的个数,即数组长度。
例如: 在a[10]中,10表示a数组中有10个元素,
下标从 0开始,这10个元素是:a[0], a[1], a[2], a[3], a[4],
a[5], a[6], a[7], a[8], a[9]
注意:不能使用数组元素a[10];
(4)常量表达式可以包括常量和符号常量,不能包含变 量。C不允许对数组的大小作动态定义,即数组的大小不 依赖于程序运行过程中变量的值。
例如:下面这样定义数组是不行的:
int n; scanf(“%d”,&n); int a[n];
更准确的说法是 整型常量表达式
数组在内存的存放形式 int a[10];
a[ i ]= i ; for(i=09;i<>=90;i+--+) )
printf(“%d,””,,aa[[ii]])); ; }
程序使a[0]到a[9]的值为0~9, 然后按顺序输出
如果按逆序输出
运行结果: 09,81,,72,6,,35,44,,35,2,,61,70,8,9,
一维数组的初始化(1)
一维数组的定义(1)
一、定义方式: 类型说明符 数组名 [ 常量表达式 ] ;
二、说明: (1)数组名定名规则和变量名相同,遵循标识符定名 规则。
例如: int a [ 10 ]; 表示数组名为a ,此数组有10个元素,每个元素为整型数据.
(2)数组名后是用方括弧括起来的常量表达式,不能用圆括 弧。
1、在定义数组时对数组元素赋以初值。
例如:int a[10]={ 0,1,2,3,4,5,6,7,8,9 };
初始化之后:a[0]=0,a[1]=1,……a[8]=8,a[9]=9。
2、可以只给一部分元素赋值. 例如:int a[10]={0,1,2,3,4}; 只给前五个元素赋值,后五个元素为0。 初始化之后:a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4, a[5]=0,……,a[8]=0,a[9]=0。
第七章 数组
1、概述 2、一维数组的定义和引用 3、二维数组的定义和引用 4、字符数组
章节总览
1. 基本类型之外,C语言还提供了构造类型的数据, 它们有:数组类型、结构体类型、共用体类型。构 造类型数据是由基本类型数据按一定规则组成的, 因此也可以称之为“导出类型”。
2. 数组是有序数据的集合。 (a)数组中的每一个元素都属于同一个数据类型。 (b)用一个统一的数组名和下标,唯一的确定数组 中的元素。
一维数组的程序举例(3.1)
例 7.3 用起泡法对n个数排序(由小到大)。(见教材124页) 起泡法的思路是:将相邻两个数比较,将小的调到前头。
具体参见课本: 例如:对一个这样的序列排序:9,8,5,4,2,0(一共有6个数)
scanf( “ %d ” , & a [ i ] ) ; printf( “\n ” ) ; max = a [ 0 ] ; i = 1 ; for( ; i < 10 ; ) { if ( max < a [ i ] ) max = a [ i ] ;
i++; } printf(“\nmax=%d”,max); }
注意:对部分元素赋初值时,长度不能省。
一维数组的程序举例(1)
例 7.2 用数组来处理Fibo运nac行ci结数果列:问题。(见教材124页)
11235
程序如下:
8 13 21 34 55
/*行号1*/ /*行号2*/
mainቤተ መጻሕፍቲ ባይዱ ) { int i;
89 144 233 377 610 987 1597 2584 4181 6765
/*行号9*/ printf(“ d”,f [ i ]);
/*行号10*/ }
/*行号11*/ }
例(2) 输入10个数并从中找出最大者.
main( ) {
int a[10] ,i , j , max ; printf( “ input 10 numbers\:n ” ) ; for( i = 0 ; i < 10 ; i + + )
一维数组的初始化(2)
4、对全部数组元素赋初值时,可以不指定数组长度。
例如:int a[]={1,2,3,4,5};
上面的写法中,{ }中只有五个数,系统会据此自动定 义数组的长度为5。 初始化之后:a[0]=1,a[1]=2,a[2]=3,a[4]=4,a[5]=5。 如果被定义的数组长度与提供初值的个数不同, 则数组长度不能省略。 例如:想定义数组长度为10,就不能省略数组长度的定义。 而必须写成 int a[10]={ 1,2,3,4,5}; 只初始化前面5个元素,后5个元素为0。 不能写成 int a[ ]={1,2,3,4,5};
/*行号3*/ int f[20]={1,1};
/*行号4*/ for(i=2,i<=20;i++)
/*行号5*/ f [ i ]=f [ i -1]+f [ i -2];
/*行号6*/ for(i=0,i<20;i++)
/*行号7*/ {
/*行号8*/ if( i %5= =0) printf(“\n”);/控* 制换行,每行输出五个数*/
合法标识符
a
1 a[0]
2 a[1]
3 a[2]
4 a[3]
数组名表示内存首地址, 是地址常量
5
a[4]
6 a[5]
表示元素个数 下标从0开始
编译时分配连续内存 内存字节数=数组维数*
sizeof(元素数据类型)
例 int i=15; int data[i];
(? 不能用变量定义数组维数)
一维数组元素的引用(1)
一、规则:
(1)数组必须先定义,后使用。
(2)数组元素的使用形式为: 数组名 [ 下标 ]
下标可以是整型常量或整型表达式, 例如: a[0]=a[5]+a[7]-a[2*3];
注意: C语言规定只能逐个引用数组元素, 不能一次引用整个数组.
一维数组元素的引用举例
例7.1 数组元素的引用
main() { int i ,a[10]; for( i =0; i<=9; i ++)
下面的用法是错误的:
int a(10);
一维数组的定义(2)
(3)常量表达式表示元素的个数,即数组长度。
例如: 在a[10]中,10表示a数组中有10个元素,
下标从 0开始,这10个元素是:a[0], a[1], a[2], a[3], a[4],
a[5], a[6], a[7], a[8], a[9]
注意:不能使用数组元素a[10];
(4)常量表达式可以包括常量和符号常量,不能包含变 量。C不允许对数组的大小作动态定义,即数组的大小不 依赖于程序运行过程中变量的值。
例如:下面这样定义数组是不行的:
int n; scanf(“%d”,&n); int a[n];
更准确的说法是 整型常量表达式
数组在内存的存放形式 int a[10];
a[ i ]= i ; for(i=09;i<>=90;i+--+) )
printf(“%d,””,,aa[[ii]])); ; }
程序使a[0]到a[9]的值为0~9, 然后按顺序输出
如果按逆序输出
运行结果: 09,81,,72,6,,35,44,,35,2,,61,70,8,9,
一维数组的初始化(1)
一维数组的定义(1)
一、定义方式: 类型说明符 数组名 [ 常量表达式 ] ;
二、说明: (1)数组名定名规则和变量名相同,遵循标识符定名 规则。
例如: int a [ 10 ]; 表示数组名为a ,此数组有10个元素,每个元素为整型数据.
(2)数组名后是用方括弧括起来的常量表达式,不能用圆括 弧。
1、在定义数组时对数组元素赋以初值。
例如:int a[10]={ 0,1,2,3,4,5,6,7,8,9 };
初始化之后:a[0]=0,a[1]=1,……a[8]=8,a[9]=9。
2、可以只给一部分元素赋值. 例如:int a[10]={0,1,2,3,4}; 只给前五个元素赋值,后五个元素为0。 初始化之后:a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4, a[5]=0,……,a[8]=0,a[9]=0。
第七章 数组
1、概述 2、一维数组的定义和引用 3、二维数组的定义和引用 4、字符数组
章节总览
1. 基本类型之外,C语言还提供了构造类型的数据, 它们有:数组类型、结构体类型、共用体类型。构 造类型数据是由基本类型数据按一定规则组成的, 因此也可以称之为“导出类型”。
2. 数组是有序数据的集合。 (a)数组中的每一个元素都属于同一个数据类型。 (b)用一个统一的数组名和下标,唯一的确定数组 中的元素。
一维数组的程序举例(3.1)
例 7.3 用起泡法对n个数排序(由小到大)。(见教材124页) 起泡法的思路是:将相邻两个数比较,将小的调到前头。
具体参见课本: 例如:对一个这样的序列排序:9,8,5,4,2,0(一共有6个数)
scanf( “ %d ” , & a [ i ] ) ; printf( “\n ” ) ; max = a [ 0 ] ; i = 1 ; for( ; i < 10 ; ) { if ( max < a [ i ] ) max = a [ i ] ;
i++; } printf(“\nmax=%d”,max); }
注意:对部分元素赋初值时,长度不能省。
一维数组的程序举例(1)
例 7.2 用数组来处理Fibo运nac行ci结数果列:问题。(见教材124页)
11235
程序如下:
8 13 21 34 55
/*行号1*/ /*行号2*/
mainቤተ መጻሕፍቲ ባይዱ ) { int i;
89 144 233 377 610 987 1597 2584 4181 6765
/*行号9*/ printf(“ d”,f [ i ]);
/*行号10*/ }
/*行号11*/ }
例(2) 输入10个数并从中找出最大者.
main( ) {
int a[10] ,i , j , max ; printf( “ input 10 numbers\:n ” ) ; for( i = 0 ; i < 10 ; i + + )