1、一维数组的定义
一维数组的定义方式为:类型说明符 数组名[常量表达式]
例如:int a[10];
它表示定义了一个整形数组,数组名为a,次数组有10个元素。
说明:
(1)数组名的命名规则和变量名相同,遵循标识符命名规范
(2)在定义数组的时候,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,既数组的长度
(3)常量表达式中可以包括常量和符号常量,不能包含变量。也就是说,c语言不允许对数组的大小做动态定义,既数组的大小不依赖于程序运行中变量的值。例如:下面这样定义数组是不行的:
int n;
scanf("%d",n);
int a[n];
2、一维数组元素的引用
数组必须先定义,然后使用。c语言规定只能逐个引用数组元素而不能一次引用整个数组。
数组元素的表现形式为:
数组名[下标]
下标可以是整型常量或整形表达式
注意:定义数组时用到的“数组名[常量表达式]”和引用数组元素用到的“数组名[下标]”的区别
3、一维数组的初始化
对数组元素的初始化可以用一下方法实现
(1)在定义数组时对数组元素赋予初值。例如
int a[10]={0,1,2,3,4,5,6,7,8.9};
(2)可以给一部分元素赋值
int a[10]={0,1,2,3,4};
定义a数组中有10个元素,但花括号内只提供5个初值,这表示只给前面五个元素赋初值,后五个元素为0
(3)如果想使一个数组中全部元素为0,可以写成:
int a[10]={0,0,0,0,0,0,0,0,0,0,}; 或int a[10]={0};
不能写成 int a[10]={0*10};
这是与fortran语言不同的,不能给数组整体赋初值。
(4)在对全部数组元素赋初值时,由于数组的个数已经确定,因此可以不指定数组长度。
例如:
int a[5]={0,1,2,3,4}; 可以写成int a[]={0,1,2,3,4};
第二种写法中,花括号中有5个数,系统就会据此自动定义a数组的长度为5.但若数组的长度和提够的初值个数不相同,则数组长度不能省略。例如想定义数组的长度为10,就不能省略数组长度的定义,必须写成:
int a[10]={0,1,2,3,4};
只初始化前五个元素,后五个元素为0
4、c语言字符数组和字符串的区别
字符数组不会自动添加“\0”,定义和初始化方式是:char a[5]={'h','e','l','l','o'}; ,定义是char a[5]
字符串也是字符数组,但是特殊的字符数组,定义和初始化方式是; char a[]={"hello"};或者char a[]="hello";定义是char a[6]
c语言是不会自动判断数组下标判断的。c++,java是会自动判断数组下标越界,如果下标越界会报错。
如下图所示:
5、声明和定义,初始化和赋值的区别
///变量
int i;//定义
extern int i; //声明
//
int i = 0;//定义 + 初始化
int i=9;初始化
i= 7;// 赋值
//函数
//声明(一般放在*.h的头文件中)
int GetStringLen();
//定义(也就是实现体)
int GetStringLen()
{
。。。。、
。。。。
}
文章评论(0条评论)
登录后参与讨论