C语言学习笔记之数组

数组

一维数组

1、定义格式如下:
类型说明符 数组名[常量表达式]
例如:int a[10];
2、初始化

  • 定义时初始化:int a[5]={1,2,3,4,5};
  • 只给部分元素赋值:int a[5]={1,2,3};
  • 给数组全部赋初值,定义时可以不指定数组长度:int a[]={1,2,3,4,5};
  • 通过键盘初始化的方法:scanf(“%d”,&a[i]);

3、注意:

  • 数组的各个元素在内存中,从第一个元素开始一次连续存储,其中所有的元素具有相同的数据类型。
  • 数组不能整体使用,只能使用其各个元素。
  • 访问一维数组的程序结构通常是循环结构,一般是单循环,有时也会使用多重循环。

二维数组

1、定义格式如下:
类型说明符 数组名 [常量表达式][常量表达式]
例如:int a[3][4];
定义a为3行4列的整型数组,共有12个元素。
2、初始化

  • 分行给二维数组赋初值:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  • 将所有数据写在一个花括号内:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
  • 可以部分元素赋初值:int a[3][4]={{1},{2},{3}};
  • 如果对全部元素都赋初值,定义是可以省略第一维的长度,但第二维不能省略:int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
  • 通过键盘逐个对元素赋初值:scanf(“%d”,&a[i][j]);

3、二维数组的引用:数组名[下标][下标]

字符数组

1、定义格式:
例如:char c[10];
定义c为字符数组,包含10个元素
2、初始化

  • 逐个字符赋给字符数组:char c[10]={‘p’,’a’,’r’,’t’,’y’};
  • 如果提供的初值个数与预定的数组长度相同,定义时可以省略数组长度:char c[]={‘p’,’a’,’r’,’t’,’y’};

3、字符数组的输入输出

  • 逐个字符输入输出,采用格式控制符%c;
  • 整体输入输出,使用格式控制符%s;

ps:当用scanf和printf对字符串整体输入或输出时,用格式控制符”%s”。但是”%s”读入时遇到空格或回车就结束读操作,自动加结束标志“\0”,输出时遇到“\0”就结束输出操作,因此若读入的字符包含空格就不能使用“%s”。

4、字符串处理函数

  • gets,puts分别用于字符串的整体输入输出。
  • strlen:测试两个字符串。格式:strlen(字符串)
  • strcat:连接两个字符串。格式:strcat(字符数组1,字符数组2)
  • strcpy:将一个字符串复制到另一个字符数组中。格式:strcpy(字符数组1,字符数组2)
  • strcmp:比较两个字符串的大小。格式:strcat(字符串1,字符串2)

你可能感兴趣的:(C语言学习笔记)