网站建设 站内搜索,wordpress萌,评价中国建设银行网站,那个网站百度收录快文章目录声明定义初始化定义和初始化的区别静态变量初始化自动变量初始化声明
说明符表达式列表
int a;
char j, k l;定义
一般的情况下#xff0c;我们把建立空间的声明称之为定义#xff0c;而把不需要建立存储空间的声明称之为声明。
int tern 1; //定义int main() {…
文章目录声明定义初始化定义和初始化的区别静态变量初始化自动变量初始化声明
说明符表达式列表
int a;
char j, k l;定义
一般的情况下我们把建立空间的声明称之为定义而把不需要建立存储空间的声明称之为声明。
int tern 1; //定义int main() {int a; //也是定义因为建立了存储空间extern int tern; // 声明定义在别处的变量仅仅是声明没有建立空间
}tern被声明了两次 第一次声明为变量预留了存储空间构成了定义。称为定义式声明。 第二次声明只是使用之前的变量而没有创建空间所以仅仅是声明。
extern关键字只能做声明不能定义。
初始化
变量的初始化 为变量声明或者定义之后赋上初值的过程就是变量的初始化。
定义和初始化的区别
int a; //只是定义也是声明但是并没有给初始值所以不是初始化。
int a 4; //既是定义又是初始化。
extern int a; //仅仅是声明。当然定义和初始化也可以分开
int b; //声明/定义 变量
b 2 //初始化变量静态变量初始化
静态变量默认将值初始化为0。 可执行程序载入到内存时已经保存了正确值的位置会将值赋值给变量。 完成这个任务不需要额外的时间与指令静态变量就会初始化完成。
自动变量初始化
自动变量不会被初始化为0. 程序在链接时还无法判断自动变量的存储位置因为局部变量可能在函数中每次调用时占据不同位置。所以自动变量会使用更多开销。
自动变量的初始化和声明然后赋值效率一样无差别。静态变量每次只在程序执行时初始化一次而自动变量在每次执行到所在函数时都会进行一次初始化。因为自动变量初始化在运行时才执行你可以用变量给他初始化 而静态变量不能使用变量来初始化 。int a 4;
int b a 3;
//static int c a 4; 编译报错建议对自动变量初始化或者保证使用前赋值不然他会有一个垃圾值是非预期的。