C语言(switch语句、数组、多维数组)

 switch语句注意事项

        1、switch后面的括号只能填一个整型表达式

        2、case后的常量不能有重复的

        3、可以没有default

switch()

{

        case 整型常量1:

                语句

        case 整型常量2:

                语句

        case 整型常量3:

                语句

        default:

                语句

        ...

}

#include <stdio.h>
int main()
{
    char letter;
    scanf("%c",&letter);
    switch(letter)
    {
        case'a':
        printf("alpha\n");
        break;
        case'b':
        printf("bravo\n");
        break;
        case'c':
        printf("charlie\n");
        break;
        default:
            printf("i don't know\n");
    }
    return 0;
}

break在switch中的作用

        遇到break跳出循环

#include <stdio.h>
int main()
{
    char letter;
    while(1)
    {
        scanf("%c",&letter);
        switch(letter)
        {
            case'a':
            printf("alpha\n");
                break;
            case'b':
            printf("bravo\n");
                continue;   //不对switch作影响,只作用于while循环
            case'c':
            printf("charlie\n");
                break;
            default:
                printf("i don't know\n");
        }
        getchar();  //吸收未被清除的输入
    }
    return 0;
}

        break是只属于switch语句,效果是跳出switch无法对while产生效果

数组

        1、什么是数组

                数组是由一些列类型相同,数据对象依次排列组合而成,组成数列的数据对象被称作数组的元素。

        声明数组

元素类型 数组名[元素数量]

         数组初始化

元素类型 数组名[元素数量] = {逗号分割};

eg:

        int arr[10] = {1,2,3,4,5,6,7,8,9,0};  //=右边为初始化列表

        int arr[] = {1,2,3,4,5,6,7,8};

//如果元素数量比初始化列表多,补0;

         2、访问数组元素

数组名[下标]

         下标从0开始。

int arr[5] = {1,2,3};
printf("%d\n",arr[0]);
printf("%d\n",arr[1]);
printf("%d\n",arr[2]);
printf("%d\n",arr[3]);
printf("%d\n",arr[4]);
 -----------------------
int arr[5] = {1,2,3};
for(int i = 0;i < 10;i++)
{
    printf("%d\n",arr[i]);
}

         3、修改数组的元素

int arr[10] = {};
printf("%d\n",arr[5]);
arr[5] = 123;
printf("%d\n",arr[5]);

1、数组越界:禁止访问、修改数组范围外的元素,否则引起程序终止。

eg:

int arr[10] = {};
printf("%d\n",arr[10]);  //错误

2、数组不一定初始化,但是之后需要赋值,避免使用无意义数值

        4、数组所占空间大小

char arr[10];
short arr2[10];
int arr3[10];
long long arr4[10];
float arr5[10];
double arr6[10];
printf("%d\n",sizeof(arr));   //10
printf("%d\n",sizeof(arr2));  //20
printf("%d\n",sizeof(arr3));  //40
printf("%d\n",sizeof(arr4));  //80
printf("%d\n",sizeof(arr5));  //40
printf("%d\n",sizeof(arr6));  //80

         数组所占的空间 = 单个元素所占空间大小*数组元素个数

        5、数组能整体赋值吗

int arr[1] = {};
int arr[2] = {1,2,3,4,5};
arr1 = arr2;                //错误,不能整体赋值
arr1 = {1,2,3,4,5};         //错误,初始化列表只能存在于初始化

                 使用循环,单个给元素赋值

//使用循环,单个给元素赋值
eg:
int arr1[5] = {};
int arr2[5] = {1,2,3,4,5};
for(int i = 0;i < 5;i++)
{
    arr1[i] = arr2[i]
}

                内存复制(memcpy函数)memory copy

#include <stdio.h>
#include <memmory.h>
int main()
{
    int arr1[5] = {};
    int arr2[5] = {1,2,3,4,5};
    memcpy(arr1, arr2, sizeof(arr1));  //
    for(int i = 0;i < 5;i++)
        printf("%d",arr1[i]);
    return 0;
}

memcpy(目标数组,原始数组,需要复制多少数组);

        memcpy将原始数组复制到目标数组,复制多少数组,由第三个参数决定 

        若第三参数大小为N,则原始数组大小不能小于N,否则将复制无意义内容,目标大小不能小于N,否则没有足够空间存放数据

 多维数组

        数组作为数组元素

        int B[5][10]

         访问:

        int [x][y]

         使用嵌套循环访问遍历二维数组

#include <stdio.h>

int mian()
{
    int B[5][10] = {{0},{1},{2},{3},{4},};
    for(int i = 0; i < 5; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            printf("%d ",B[i][j]);
        }
        printf("\n");
    }
    return 0;
}

for(int i = 0; i < 5; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            B[i][j] = B[i][j] * 2;    //将每个元素设置为原来的两倍
        }
    }

         初始化:

                1、常量个数少于元素个数将使用0初始化元素

                2、省略内层花括号时,如果元素的个数不足,后续的元素将使用0初始化

int B[5][10] = {
    {1,2,3,4,5,6},
    {1,2,3,4,5,6,7},
    {1,2,3,4,5,6,7,8},
    {1,2,3,4,5,6,6,7,8},
    {1,2,3,4,5,6}
}

        

  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值