本質的な違いを宣言、定義する:メモリの割り当ての有無

1266 ワード

1、声明:


一般的に、後ろの名前にはexternキーが付けられています.たとえば、次のようになります.

  
  
  
  
extern int a; //  
このプロシージャは、 であり、コンパイラにこの が の で されていることを えます.これは な にすぎません.このプロシージャはメモリを り てていません.

2、 :


  
  
  
  
int x; //   +  
が すると、 には が まれ、コンパイラはメモリを り てます.

3、 :


  
  
  
  
int x = 10;
、 はすべて でメモリを り てて、まして は うまでもありません.

4、 :


  
  
  
  
extern int pi = 3.14;
に 、 、 が し、メモリが り てられているのは です.

5、 の い


、 、 の な いは、メモリの り ての です. らかに、 はコンパイラにこのような または が するという を えただけで、コンパイルにこのような が することを えただけで、この または は の で されているので、この でメモリを り てません. すると、コンパイラは にメモリ を り てます. は、 り てられたメモリに された を することで します.

6、


は、コンパイラにこの が の で されたオブジェクトであることを す な と されます.
は、 された にメモリが り てられる な です.