看看这两个功能:
void function1() {
int x;
int y;
int z;
int *ret;
}
void function2() {
char buffer1[4];
char buffer2[4];
char buffer3[4];
int *ret;
}
Run Code Online (Sandbox Code Playgroud)
如果我打破function1()了gdb,并打印变量的地址,我得到这个:
(gdb) p &x
$1 = (int *) 0xbffff380
(gdb) p &y
$2 = (int *) 0xbffff384
(gdb) p &z
$3 = (int *) 0xbffff388
(gdb) p &ret
$4 = (int **) 0xbffff38c
Run Code Online (Sandbox Code Playgroud)
如果我做同样的事情function2(),我得到这个:
(gdb) p &buffer1
$1 = (char (*)[4]) 0xbffff388
(gdb) p &buffer2
$2 = (char (*)[4]) …Run Code Online (Sandbox Code Playgroud)