c中啥是静态初始化和动态初始化,怎么理解静态和动态。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c中啥是静态初始化和动态初始化,怎么理解静态和动态。相关的知识,希望对你有一定的参考价值。

静态初始化,在写程序时就将值赋给了变量,比如

int i;
i=1;

可以知道i=1。如果你定义一个数组,要给他初始化,有两种选择,便是你问的两种了:

//静态
int a[5];
a[5] = 0;

//动态
int a[5],i;
for(i=0;i<=4;i++)
    scanf("%d",&a[i]);
    

动态的值开始时并不确定,是后来分配的,这是我的理解~

参考技术A 静态初始化是指程序还没开始的时候的准备追问

时间上这样,那么作用域上有区别吗?

追答

跟全局变量一样。

追问

可不可以理解为静态初始化就是全局变量的初始化,而动态初始化是局部变量的初始化

追答

对不起,其实我不太懂c的。

数组-静态初始化和动态初始化

//

//  main.c

//  数组初始化

//

//  Created by Jason on 16/6/7.

//  Copyright © 2016年 Jason. All rights reserved.

//


#include <stdio.h>


int main(int argc, const char * argv[]) {

    //类型说明符 数组名[常量表达式] = {值,值,....};

    int scores[3] = {10,11,12};

    //数组的长度 会自动计算成3

    int scoress[] = {10,11,12};

    //部分初始化

    int scoresss[3] = {[0]=10};

    int scoressss[3] = {[0] = 10, [1] = 11};

    //对第一个元素进行初始化

    int scoresssss[4] = {40};

    //用于描述的数组的长度 不能是变量

    //int len = 4;

    //int scoressssss[len] = {10};

    

    

    //动态初始化 先定义 后初始化

    int ss[3];

    ss[0] = 10;

    ss[1] = 11;

    ss[2] = 12;

    //给第n个数组元素赋值 下标是n-1

    

    //数组越界 数组下标超出了数组所能表示的范围

    //ss[4] = 1111;

    

    

    

    return 0;

}

以上是关于c中啥是静态初始化和动态初始化,怎么理解静态和动态。的主要内容,如果未能解决你的问题,请参考以下文章

在C语言中,啥是动态存储,啥是静态存储?

java中啥是友好变量和友好方法

在linux中,啥是配置静态和动态的IP地址、子网掩码、默认网关,如何实现

在JAVA中啥是顶级类啊

C++ 静态和动态数组初始化

静态链表和动态链表的区别