//------由const 修飾的常量分配在棧區,而不是靜態區
int main()
//----說明靜態區儲存的不一定就是常量,也可以是靜態變數,而靜態變數並不是常量
//----而棧區不一定儲存的就一定都是變數,也可是const 常量
//----而堆區都是由malloc分配,由free釋放的
char *s3 = "1234";//堆區----常量
int a = 5;//棧區----------變數
static int b = 3;//堆區----變數
const int c = 8;//棧區--------常量
char ss = "wewe";
const char *s4 = ss+1;//棧區---常量
char *s5 = (char *)malloc(10);//堆區--- 開闢空間
printf(" %p\n %p\n %p\n %p\n %p\n %p\n %p\n",s3,&a,&b,&c,ss,&s4,s5);//s3是字串常量的首位址,&s4 是指標的位址,s5是malloc分配的位址
堆區 棧區 靜態區 常量區還有???
常見的儲存區域可分為 由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new就要對應乙個delete。如果程式設計師沒有釋放掉,程式會一直占用記憶體,導致記憶體洩漏...
c 棧區 堆區 常量區
c 中棧區 堆區 常量區 由一道面試題目而學習 2009 04 28 21 01 include void main 對應的彙編 10 a c 1 00401067 8a 4d f1 mov cl,byte ptr ebp 0fh 0040106a 88 4d fc mov byte ptr ebp...
C 中棧區 堆區 常量區
c 中棧區 堆區 常量區 由一道面試題目而學習 2009 04 28 21 01 include void main 對應的彙編 10 a c 1 00401067 8a 4d f1 mov cl,byte ptr ebp 0fh 0040106a 88 4d fc mov byte ptr ebp...