zoukankan      html  css  js  c++  java
  • 数组初始化

    一. 格式

    共两种格式:

    char buf[32] = {0};  
    
    int buf[32] = {0};

    适用于所有类型。

    char buf[32] = "";

    仅适用于char,相当于定义一个‘’的空串。

    二. 初始化为0

    数组初始化为0的方法有如下三种:

    1. 全局变量和静态变量初始化时会自动被设置为0。

    #include <stdio.h>
    #include <string.h>
    
    //char cbuf[32];   // 全局变量
    int main(int argc, char *argv[])
    {
        int ret = 0, i = 0, j = 0;
    
        while(1){
            char buf[32] = {0};
            ret = scanf("%s", buf);
            printf("input bytes [%d]:%s
    ", ret, buf);
    
            for(;j++<10;);
            printf("j=%d
    ", j); 
    
            static char cbuf[32];  // 静态变量
            printf("
    init buf==========
    ");
            for(i = 0; i < sizeof(cbuf); ){
                printf("0x%x	", cbuf[i]);
                if((++i)%5 == 0){printf("
    ");}
            }   
            printf("
    ");
        }   
    
        return 0;
    }

    2. 对于局部数组我们还有简写的初始化语法。如果一个数组被部分初始化,没有被初始化的元素会被自动设置为相应类型的0。这是编译器自动完成的。

    如格式中提到的都是部分初始化:

    char buf[32] = {0};  
    int buf[32] = {0};
    char buf[32] = "";

    注:部分初始化不一定都要初始化为0,但没有被初始化的元素自动设置为相应类型的0。

    3. 程序初始化,包括for(;;)或memset()等。

    参考:

    1. 如何将数组初始化为全0?

    2. 关于数组、结构体的初始化{0}

  • 相关阅读:
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    实验三 算术编码压缩方法
    实验二 统计压缩方法的具体实现
    实验一 建立统计压缩方法理论模型
    第五次作业
    第四次作业
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/9027946.html
Copyright © 2011-2022 走看看