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]);
动态的值开始时并不确定,是后来分配的,这是我的理解~
时间上这样,那么作用域上有区别吗?
追答跟全局变量一样。
追问可不可以理解为静态初始化就是全局变量的初始化,而动态初始化是局部变量的初始化
追答对不起,其实我不太懂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中啥是静态初始化和动态初始化,怎么理解静态和动态。的主要内容,如果未能解决你的问题,请参考以下文章