根据我目前的理解:
int a
中的局部变量main()
,它在main()
的堆栈中main()
中创建线程后,他们都可以访问相同的a
。等一下...?我的推理有什么问题...
我可能不应该猜测,但这是它:从线程的角度来看,父堆栈似乎是...全局的?
(我知道以前可能会问这个问题,但我找不到确切的解释此问题的人)
答案 0 :(得分:0)
函数内部的变量称为局部变量。
void function_1(){ int a,b;}
A 和 B 只能在该函数内部使用。函数调用后,变量会被销毁。
下一个例子:
#include<stdio.h>
int main()
{
int a = 100;
{
/* variable a declared in this block is
completely different from variable
declared outside. */
int a = 10;
printf("Inner a = %d\n", a);
}
printf("Outer a = %d\n", a);
// signal to operating system everything works fine
return 0;
}
a 可以在 main() 中使用
全局变量:
#include<stdio.h>
void func_1();
int a, b = 10; // declaring and initializing global variables
int main()
{
printf("Global a = %d\n", a);
printf("Global b = %d\n\n", b);
func_1();
// signal to operating system program ran fine
return 0;
}
void func_1()
{
printf("From func_1() Global a = %d\n", a);
printf("From func_1() Global b = %d\n\n", b);
}
A 和 B 可以在 main() 和 func_1() 中使用。