【数组】C语言

文章目录

  • 数组
    • 一维数组
      • 一维数组的定义
      • 一维数组的初始化
      • 一维数组的访问
      • 变长数组(C99中的语法)
    • 二维数组
      • 二维数组的访问
    • 练习代码

数组

一维数组

一维数组的定义

  • 格式:数组名【常量表达式】
  • 注意:定义数组时常量表达式必须为整形常量或字符常量,不能是实型常量和变量,也不能为空。
例如:
int arr[5];//这里的5,是指可以存放5个整数
char arr[10];//这里的10,是指可以存放10个字符
  • 注意:数组的下标是从0开始,定义的数组arr[5]下标最多是4。

一维数组的初始化

例如:
int arr[5]={1,2,3,4,5};//初始化时整数要用大括号
char arr[10]="hello word";//初始化时字符要用双引号

去除数组名剩下的就是数组类型

一维数组的访问

  • 一维数组无法整体输出数组的每一个值,这时候就需要借助循环来完成它的输出,遍历每一个元素。
例如:
#include 
int main()
{
  int arr[5]={1,2,3,4,5};
  int i=0;
    for(i=0;i<5;i++)
   {
      printf("%d ",arr[i]);
   }
   return 0;
 }

变长数组(C99中的语法)

什么是变长数组呢?

  • 变长数组根本特征就是数组的长度只有运行时才能确定,因此变长数组不可以初始化。
  • 变长数组在VS上面运行会报错,但是可以在其他编译器上使用。
  • 注意这里说的数组的大小是可以用变量来指定的,但并不代表数组的大小是可以随意改变的。程序运行时是根据指定的变量大小从而确定数组的大小,数组的大小一旦确定就不会改变了。
#include
int main()
{
int n=0;
scanf("%d",&n);//根据输入的n的值来确定数组的大小
int arr[n];
int i=0;
  for(i=0;i<n;i++)
   {
     scanf("%d",&arr[i];//输入数组元素;
   }
 for(i=0;i<n;i++)
   {
    printf("%d",arr[i]);//输出数组元素;
   }
   return 0;
 }

第一次给n输入6,输入6个元素,接着正常输出6个元素。
第二次给n输入9,输入9给元素,接着正常输出9个元素。

二维数组

二维数组的访问

  • 二维数组是由行和列组成的,因此需要使用两个for循环嵌套。
  • 以下是二维数组的输入和输出*
例如:
#include 
int main()
{
    int i;
    int arr[4][5];
    for (i = 0; i < 4; i++)
    {
        int j;
        for (j = 0; j < 5; j++)
        {
            scanf("%d", &arr[i][j]);//输入二维数组的所有元素,共20个。
        }
    }
        for (i = 0; i < 4; i++)
        {
            int j;
            for (j = 0; j < 5; j++)
            {
                printf("%d ", arr[i][j]);//输出二维数组中的所有元素
            }
            printf("\n");
        }
            return 0;
   }

练习代码

  • 一维数组代码练习:
//演示多个字符从两端移动,向中间汇聚,逐渐完整。
#include
#include//strlen的头文件
#include//system的头文件
#include
int main()
{
    char arr1[] = "Welcome to China!!!";
        char arr2[] = "###################";
    int left = 0;
    int right = strlen(arr1) - 1;
    while (left <= right)
    {
        arr2[left]=arr1[left];
        arr2[right]=arr1[right];
        printf("%s\n", arr2);
        Sleep(1000);//打印速度,单位是毫秒
            system("cls");//清屏
        left++;
        right--;
    }
    printf("%s",arr2);
}

你可能感兴趣的:(c语言,开发语言,visualstudio,算法,c++)