可以看到函数里面的地址和 mian 函数的是不同的 由此可得 应该是 根据 进程 和 函数空间 来对变量名进行分配的
#include "head.h"
void aaa()
{
for (size_t i = 0; i < 5; i++)
{
int ppp = 10;
printf("ppp %p \n", &ppp);
/* code */
}
}
int main()
{
// c语言变量名字 和地址 在一个进程中 是绑定的 重复定义相同变量会导致 对同一个地址重复赋值
for (size_t i = 0; i < 5; i++)
{
int ppp = 10;
printf("ppp %p \n", &ppp);
/* code */
}
printf("===========================\n");
aaa();
printf("===========================\n");
int ppp = 10;
printf("ppp %p \n", &ppp);
printf("ppp %p \n", &ppp);
printf("ppp %p \n", &ppp);
printf("ppp %p \n", &ppp);
return 0;
}
ppp 0x7fffffffdec0
ppp 0x7fffffffdec0
ppp 0x7fffffffdec0
ppp 0x7fffffffdec0
ppp 0x7fffffffdec0
===========================
ppp 0x7fffffffde8c
ppp 0x7fffffffde8c
ppp 0x7fffffffde8c
ppp 0x7fffffffde8c
ppp 0x7fffffffde8c
===========================
ppp 0x7fffffffdec0
ppp 0x7fffffffdec0
ppp 0x7fffffffdec0
ppp 0x7fffffffdec0