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}

  • 相关阅读:
    String类的常用方法
    StringBuffer和String的区别
    docker安装kali
    6.找素数
    5.三羊献瑞
    4.迷宫大逃亡
    3.百米
    2.后台登录
    1.猴子吃桃
    深入理解Docker容器和镜像
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/9027946.html
Copyright © 2011-2022 走看看