C语言整理 六 (数组)

喜欢而已 提交于 2020-01-20 00:52:20

数组解释一组具有相同数据类型的数据集合(会再内存中分配连续的地址)

一维数组

定义格式:

类型名 数组名[整型常量表达式];
例如int a[10]定义了一个一维数组a,数组中有10个整型数据元素

说明:

  1. 定义数组时,需要指明数组的数据类型
  2. 常量表达式可以是整型常量、整型常量表达式或者符号常量,但不能是变量

引用:定义数组后,可以将每一个数组元素作为变量使用

语法格式:`数组名[下标表达式]
说明:
  1. 每一个数组元素实质上就是一个变量
  2. 数组不可整体引用
  3. 引用数组元素时,下标表达式必须是整数
  4. 定义数组和引用数组元素的写法相似,但含义不同,注意区分。例如float f[10]; t=f[9] /*定义了数组f,将f[9]的值赋给了t */

初始化:

  1. 数组全部元素初始化 例如:int a[4]={1,2,3,4,};
  2. 数组部分元素初始化(没有被初始化的元素由编译程序自动将其初始化)例如:int a[10]={1,2,3,4]
  3. 全部元素初始化,可以不指定元素个数。例如:int a[]={1,2,3,4}
  4. 数组全部元素初始化为0。例如:int a[[10]={0};

注:数组元素调用时,C语言不会自动检查数组下标是否超出了数组的范围

二维数组

可以看作是一种特殊的一维数组,每个数组元素又是一个一维数组

定义格式:数据类型 数据名[常量表达式1] [常量表达式2] ;例如:int a[3][4]

引用

语法格式: 数组名 [下标表达式1] [下标表达式2 ];例如int a[3][4];
说明:
  1. 下标表达式必须时整数表达式(下标是从0开始的)
  2. 2个下标分别放在2个方括号中
  3. 下标不能超出数组的大小

初始化

  1. 数组全部元素初始化。例如:int a[2][2]={{1,2},{3,4}};或int a[2][2]={1,2,3,4}
  2. 数组部分元素初始化(没有被赋值的元素由编译程序自动初始化为0)例如:int [3][4]={{0},{1},{2}}
  3. 如果对全部元素都赋值,则定义第一维的长度可以不指定。例如:int a[][2]={1,2,3,4,}

字符数组

定义:char 数组名[整型常量表达式];例如:char s[100];

初始化

  1. 使用字符常量初始化字符组。例如:char s[100]={'h','e','l','l','o'};
  2. 使用字符常量初始化字符组。例如:char s[]={"hello"}(编译程序会自动在最后一个字符的后面加上’\0’

输入输出

  1. 逐个字符输入输出。用“%c”
  2. 利用格式符“%s”整体输入输出字符串

字符串处理函数 string.h

strcpy:字符串拷贝函数

语法格式: strcpy (字符数组1,字符数组2)
将字符串2完整的复制到字符数组1中,字符数组1中原有内容被覆盖

strcat:字符串连接函数

语法格式: srcat (字符数组1,字符串2)
把字符串2连接到字符数组1中的字符串尾端

  1. 字符串2可以是字符串常量,也可以是字符数组
  2. 字符串数组1必须定义的足够大,以便容纳连接后的新字符串

strcmp:字符串比较函数

语法格式:strcmp(字符串1,字符串2)
比较两个字符串。将两个字符串从左到右逐个字符比较(即比较字符的ASCII码值)直到2个字符串中字符不同或遇到’\0’为止。如果2个字符串中全部字符相同,函数返回值为0;如果出现第1对不同字符,字符串1<字符串2,函数返回值为负整数;字符串1>字符串2,函数返回值为正整数。

strlen:求字符串长度

语法格式:strlen(字符串)
计算字符串的长度(即字符串中’\0’前字符的个数)

注:函数参数可以是字符串常量,也可以是字符数组名0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!