C++:把int t=20改为t=20;则结果怎样?为什么? (C语言)
发布网友
发布时间:2022-05-10 18:25
我来回答
共4个回答
热心网友
时间:2023-10-21 15:49
变量都有作用域.也就是能被识别的范围.
你在里面声明的int t=20作用域只在那个{}里面,外面声明的int t=10;作用域则是整个函数.
之所以第一个输出20是因为里面声明的 t在{}中把外面声明的 t覆盖拉.第二个输出10因为里面声明的变量外面是不认的哦.
所以int t=20改为t=20; 那么就是同一个变量了,两处都输出20
热心网友
时间:2023-10-21 15:49
结果会都输出20
{
int t=20;
printf("****%d\n",t);
}
用大括号包括,这就代表一个模块,在这个块里面可以有自己的变量,相当于这个模块的本地变量,而外面的int t=10;对于它来说就相当于全局变量了。模块内会优先用本地变量,没有才使用全局变量。
因为在这个块内定义了一个t,这个t是新的,也就是这个模块的本地变量。在模块结束后这个t也随之消失了,只剩下这个main函数最开始定义的t。
假设把模块内的int t改为t的话,这个t因为没有本地变量所以使用的是全局变量t的(这里是指相当于全局变量,其实全局变量的定义本来就是相对的)
热心网友
时间:2023-10-21 15:50
20 20
之前括号内的t为做用于括号内的局部变量,给t赋值20只在括号内有效;改为赋值语句后,t=20在整个函数中有效
热心网友
时间:2023-10-21 15:50
{
int t=20;
printf("****%d\n",t);
}
在这个里面你又定义了一个变量t;赋值20;当这段代码执行完成后这个定义的t被释放了,
我后执行最后那句printf("********%d\n",t)时,这里的t是你一开始定义的那个所以会输出10,如果改为20,那么同样会输出20;