当前位置: 代码迷 >> C语言 >> [求助]什么是初始化
  详细解决方案

[求助]什么是初始化

热度:149   发布时间:2005-02-25 17:55:00.0
[求助]什么是初始化
情形1:
int i;
i=6; // 这是初始化吗?

情形2:
int i=6; //这是初始化吗?

谁帮我下个初始化的精确定义(至少是准确的)!
----------------解决方案--------------------------------------------------------
我认为int i=6;才是初始化。而int i;i=6;属于先声明,后赋值。
----------------解决方案--------------------------------------------------------
效果是一样的
----------------解决方案--------------------------------------------------------
两者都是!
----------------解决方案--------------------------------------------------------
我觉得不一样,初始化是在声明变量时就赋值,所以占用编译时间,不占运行时间,故而性能好一些;所以一些大的实例用初始化。
----------------解决方案--------------------------------------------------------
经典
----------------解决方案--------------------------------------------------------
经典什么?反汇编出来看看是不是一样
----------------解决方案--------------------------------------------------------
我没工具反汇编,但我知道,你错了。
----------------解决方案--------------------------------------------------------
ifndef ??version ?debug macro endm endif ?debug S "t3.c" T3_TEXT segment byte public 'CODE' DGROUP group _DATA,_BSS assume cs:T3_TEXT,ds:DGROUP,ss:DGROUP T3_TEXT ends _DATA segment word public 'DATA' d@ label byte d@w label word _DATA ends _BSS segment word public 'BSS' b@ label byte b@w label word ?debug C E909A459320474332E63 _BSS ends T3_TEXT segment byte public 'CODE' ; ?debug L 1 _main proc far push bp mov bp,sp sub sp,2 ; ?debug L 4 mov word ptr [bp-2],12 @1: ; ?debug L 5 mov sp,bp pop bp ret _main endp T3_TEXT ends ?debug C E9 _DATA segment word public 'DATA' s@ label byte _DATA ends T3_TEXT segment byte public 'CODE' T3_TEXT ends public _main end  c代码: main() { int i; i=12; } ============================= ifndef ??version ?debug macro endm endif ?debug S "t3.c" T3_TEXT segment byte public 'CODE' DGROUP group _DATA,_BSS assume cs:T3_TEXT,ds:DGROUP,ss:DGROUP T3_TEXT ends _DATA segment word public 'DATA' d@ label byte d@w label word _DATA ends _BSS segment word public 'BSS' b@ label byte b@w label word ?debug C E921A459320474332E63 _BSS ends T3_TEXT segment byte public 'CODE' ; ?debug L 1 _main proc far push bp mov bp,sp sub sp,2 ; ?debug L 3 mov word ptr [bp-2],12 @1: ; ?debug L 4 mov sp,bp pop bp ret _main endp T3_TEXT ends ?debug C E9 _DATA segment word public 'DATA' s@ label byte _DATA ends T3_TEXT segment byte public 'CODE' T3_TEXT ends public _main end  C代码: main() { int i=12; } 以上均由TC产生(TC有个选项,只产生汇编代码不链接)。更不用说现在的编译器了,你看看有什么不同。
----------------解决方案--------------------------------------------------------
以上都是初始化。。。
----------------解决方案--------------------------------------------------------
  相关解决方案