发布网友 发布时间:2022-05-26 16:11
共2个回答
热心网友 时间:2023-10-26 19:17
全局变量和局部变量的区别是变量的作用范围的不一样,但当同名的全局变量和局部变量同时存在时,局部变量优先,也就是全局变量此时被屏蔽了。如上题中:fun函数由于内部定义了局部变量d,所以全局变量d此时被屏蔽了,但在main函数中由于没有定义局部d变量,此时的d实际上就是全局变量了,所以就是上述的答案了。总之,你只要记得:变量同名时,局部优先即可。热心网友 时间:2023-10-26 19:18
这里你的用法有问题,先定义了全局变量d,但是你在函数里面又重新定义了变量d,函数里面的d和函数外面的d不是一样的,函数体内的d是局部变量,在主函数调用后,如果没有返回值,就消失了,而主函数里面的d则是全局变量,d=1没有因为fun函数而改变其值,故其值还是1,经过 d += a++,后,d值改变为4,所以就会产生输出4这样的结果