結合下面代碼 講解
======================
函數(程序自身)
fun1() = 0x102546610
fun2() = 0x102546650
字符串常量
string=0x102546e28
======================
靜態變量
函數內加 static的變量
fun1_static=0x1025470a4
fun2_static=0x1025470a8
全局變量
global=0x1025470a0
=====================
用malloc開闢的空間
malc =0x7fc8824000e0
=====================
函數 子函數中的
動態變量
fun1_var=0x7fff5d6bac3c
fun2_var=0x7fff5d6bac3c
=====================
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
void fun1()
{
int fun1_var;
static int fun1_static;
printf(" fun1_var=%p , fun1_static=%p\n" , &fun1_var, &fun1_static);
}
void fun2()
{
int fun2_var;
static int fun2_static;
printf(" fun2_var=%p , fun2_static=%p\n" , &fun2_var, &fun2_static);
}
int global;
int main(void)
{
int main_var;
printf(" main_var=%p , global=%p\n" , &main_var ,&global );
fun1();
fun2();
printf("fun1() = %p , fun2() = %p \n", fun1 , fun2);
printf("string=%p\n" , "ssss");
int *malc = malloc(16);
printf(" malc =%p\n" , malc);
return 0;
}
運行結果:
main_var=0x7fff5d6bac74 , global=0x1025470a0
fun1_var=0x7fff5d6bac3c , fun1_static=0x1025470a4
fun2_var=0x7fff5d6bac3c , fun2_static=0x1025470a8
fun1() = 0x102546610 , fun2() = 0x102546650
string=0x102546e28
malc =0x7fc8824000e0
環境: mac+ gcc4.2