bycj.net
当前位置:首页 >> C语言里变量的"初始化"和"赋初值"一样吗? >>

C语言里变量的"初始化"和"赋初值"一样吗?

语法上的初始化是指对象定义时,对应的分配空间之后对于值的操作.C语言中,静态和全局变量默认置0,有初始化列表的复制初始化列表的值到空间(如有不足,剩余部分置0),局部自动变量可以不初始化(调试器参与时可能被隐式地初始

你的书上好像错了,所谓赋初值一般而言就是初始化啊 从根本上说,其实初始化也并不是编译阶段完成,对于全局变量(数组)而言,一种是exe文件中设定该程序的数据区中的为这个数组存放空间中的值已经是初值了,当然这个值倒是编译程序生成目标程序时设定的,程序运行加载时,给定空间中的内容直接拷贝到空间了,这个不占运行时间(C++中则是程序加载到main函数执行之前完成的,这个也不占运行时间) 对于自动局部变量而言,原则上说,每次运行到该模块就会重新初始化一次,肯定是要占用运行时间的,静态局部变量则第一次运行时才初始化一次,自然也会占用运行时间 至于你用赋值语句设定所谓的初值,一定会占用运行时间

初始化 新开一个房住进去.赋值,把里面的人撵出去,再住人.从效率上来说, 初始化比后续再赋值略高.从效果上来说, 没区别.

初始化是程序在运行前由系统将变量值进行赋值,而赋值是在程序开始运行之后完成,赋值动作属于程序完成 int a;这个属于变量定义且不做初始化 int a=1;这个属于系统初始化,系统首先申请变量a,并且将这个单元放置初始值1 int a; a=b;属于程序中的赋值,程序运行时取变量b中的值放入a,并没有初始化的内容在内

赋初值,也就是初始化,只能在定义的时候操作,形式为 type var_name = init_value; 其中=init_value就是赋初值了.赋值,是在定义后,改变变量的值,形式为 var_name = value; 二者的效果是类似的,都是把变量值改变.但在C语言中,编译出的代码有所区别.其中赋初值的效率会更高.

C语言中变量不赋初值是不能”使用“的.这个”使用“是指读取变量的内容.因为,未赋初的变量中存储的数据是个随机值,其值不确定.随机值的产生原因:变量都是存储在内存中的.程序运行以后,会在内存中给各个变量安置住处,这些

静态存储 动态存储

没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的.如果加了static不给初值,变量的初值是默认的 0.其实不能说不赋初值就不行,对于局部变量,不赋初值的话,其实他里面存的是一个随机的值,谁也不知道他是多少,因

null在32位操作系统的内存中的表现就是0x0000 0000 0000 0000 0000 0000 0000 0000,即32位都为0,其值其实为0 所以,有 int i = 0; //让i为null char c = '\0'; //'\0'在内存中的表现也为一串0,等价与0和null

初始化即是在给变量分配空间时即有具体的数值,而先声明后再另一个语句中给变量赋值则是声明时在内存中给变量安排空间,但没有具体值,一边默认为0,直到该变量给赋予具体的值为止.

相关文档
hyqd.net | lzth.net | dfkt.net | rpct.net | hyfm.net | 网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com