当前位置: 移动技术网 > IT编程>开发语言>C/C++ > C语言程序设计学习笔记--数组

C语言程序设计学习笔记--数组

2018年02月11日  | 移动技术网IT编程  | 我要评论

黑圣手精彩博客,high school dxd01,回到明朝当王爷有声

C语言程序设计学习笔记--数组。

6.1数组

(1)是有序数据的集合,数据元素类型相同,顺序存储,占用相邻的存储空间。

(2)数组必须先定义后引用

(3)C语言只能逐个引用数组元素,不能一次引用整个数组。

(4)数组引用是“数组名+下标”引用,数组下标均为整数。

(5)静态数组变量定义时编译器自动初始化数据元素为0,

动态数组变量在程序执行时分配存储空间,在未被赋值初始化之前其值随机。

6.2一维数组:

1.定义: 类型符 数组名 【常量表达式】

2.说明:(1)常量表达式用来说明数组长度,从a[0]开始。

(2)可以包含常量和符号常量,a[5+3]是合法的,不允许对数组大小做动态定义

(3)可变长数组,在被调用函数(不包括主函数)中定义数组表达式可以为非常量表达式 。调用时候可变,执行时候不变。 若数组为静态存储,则不可用。

Static int a[2*n] 不可用

3.引用: 数组名 【下标】

4.初始化:在定义数组的同时给数组元素赋值

(1) 定义时赋值

Int a [ 3] ={0,1,2};

(2)只给一部分元素赋值

Int a [4] = {1,2,6};

(3)如果一个数组中全部数组值为0

Int a [6 ] ={0 };

(4)在对全部元素赋值时,个数确定,长度可以不赋值。

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

6.3二维数组

1.定义:类型符 数组名 【常量表达式】【常量表达式】

2.说明:(1)二维数组按行存放

3.引用:数组名 【下标】【下标】

4.初始化:

(1)分行进行初始化

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

(2)不分行的初始化
  int a[2][3]={ 1,2,3,4,5,6};

  ⑶ 为部分数组元素初始化
  static inta[2][3]={{1,2},{4}};
  第一行只有2个初值,按顺序分别赋给a[0][0]和a[0][1];第二行的初值4赋给a[1][0]。由于存储类型是static,故其它数组元素的初值为0。注:某些C语言系统(如:TurboC)中,存储类型不是static的变量或数组的初值也是0。
  static int a[2][3]={ 1,2};
 只有2个初值,即a[0][0]=1,a[0][1]=2,其余数组元素的初值均为0。
  ⑷ 可以省略第一维的定义,但不能省略第二维的定义。系统根据初始化的数据个数 和第2维的长度可以确定第一维的长度。
  int a[ ][3]={ 1,2,3,4,5,6};
  a数组的第一维的定义被省略,初始化数据共6个,第二维的长度为3,即每行3个数,所以a数组的第一维是2。

6.4字符数组

1.定义:

用来存放字符量的数组称为字符数组。 Char c[10]

2.引用:

引用字符数组中的一个元素来引用一个字符,通过下标引用

3.字符串和字符串结束标志:

? 在C语言中,是将字符串作为字符数组来处理的。

? C系统在用字符数组存储字符串常量时会自动加一个‘ \ 0 ’ 作为结束符。例如“C program”共有9个字符。字符串是存放在一维数组中的,在数组中他占10个字节,最后一个字节‘\0'是系统自动加上的。有个结束标志‘\0'后,字符数组的长度就显得不那么重要了。在程序中往往依靠检测‘\0'的位置来判定字符串是否结束,而不是根据数组的长度来决定字符串的长度。

4.字符数组的输入输出:

(1)逐个字符输入,例如

char a[5];

for(int i=0;i<5;i++)

{

scanf("%c",&a[i]); //注意:不能少了地址符&

//a[i]=getchar();

}

(2)采用scanf函数输入,例如

char a[5];

scanf("%s",a); //注意:不能添加地址符&,因为数组名本身即为地址

注意:

? a前面没有地址符&

? 采用scanf输入,一旦遇到空格OR回车OR制表符等,即表示输入结束。如我们从键盘上输入 ab cde,那么数组a的值为:ab

? 采用gets函数输入,例如

char a[5];

gets(a);

注意:

采用gets()函数输入,仅在遇到回车时,才表示输入结束。如我们从键盘上输入ab cde,则输入a的值为:ab cde

? 使用字符串处理:

(1)puts

(2)gets

(3)strcat

(4)strcpy和strncpy

(5)stremp

(6)strupr

? 初始化:

(1) 分别对每一个元素进行赋值操作

char c[0]={'c', ' ', 'p', 'r','o', 'g', 'r', 'a','m'};

赋值后各元素的值为:

c[0]的值为‘c’

c[1]的值为‘’

c[2]的值为‘p’

c[3]的值为‘r’

c[4]的值为‘0’

c[5]的值为‘g’

c[6]的值为‘r’

c[7]的值为‘a’

c[8]的值为‘m’

其中c[9]未赋值,这是由系统自动赋予0值。当对全体元素赋初值时也可以省去长度说明。例如:

char c[]={'c', ' ', 'p', 'r', 'o', 'g', 'r','a', 'm' };

这时C数组的长度自动定为9。

(2) 用字符串的方式对数组作初始化赋值。例如:

char c[]={'c', '','p','r','o','g','r','a','m'};可写为: char c[]={"C program"};

或去掉{}写为:char c[]="C program";

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网