C语言定义局部变量跟全局变量名相同
时间: 2024-12-11 09:42:13 浏览: 34
在C语言中,如果局部变量的名称与全局变量的名称相同,那么当它们在同一作用域内声明时,局部变量会遮盖全局变量。也就是说,在函数内部定义的同名变量会暂时取代全局变量的作用。当你在函数内部访问这个名字时,编译器只会看到局部变量,直到该函数执行结束,局部变量的生命期结束后,全局变量才会再次可见。
举个例子:
```c
#include <stdio.h>
// 全局变量
int globalVar = 0;
void function() {
// 局部变量同名全局变量
int localVar = globalVar; // 此时局部var覆盖了全局变量
localVar++; // 修改局部var值
printf("Local var: %d\n", localVar); // 输出局部var的值
// 函数外部,globalVar不受影响
printf("Global var outside func: %d\n", globalVar);
}
int main() {
function();
printf("Global var after func call: %d\n", globalVar); // 输出全局var的原始值
return 0;
}
```
在这个例子中,`function()` 内部对 `localVar` 的修改不会影响到全局的 `globalVar`。
相关问题
单片机C语言局部变量与全局变量的区别
在单片机C语言中,局部变量和全局变量有以下区别:
1. 作用域不同:局部变量只在定义它的函数内部有效,而全局变量在整个程序中都有效。
2. 存储位置不同:局部变量存储在栈中,全局变量存储在静态存储区中。
3. 生命周期不同:局部变量在函数调用结束后自动销毁,而全局变量在程序结束后才被销毁。
4. 默认值不同:局部变量没有默认值,需要在定义时初始化,而全局变量会自动初始化为0或空指针。
5. 访问权限不同:由于全局变量的作用域比较大,因此容易被其他函数访问和修改,而局部变量只能在定义它的函数内部访问和修改。
c语言全局变量和局部变量
C语言中,全局变量和局部变量是两种不同的变量类型。
全局变量是在函数外定义的变量,它们可以被程序中的任何函数访问,包括主函数和其他函数。全局变量在程序启动时被初始化,其值在程序运行期间一直保持不变,直到程序结束。全局变量的作用域是整个程序,因此它们可以在任何函数中使用。
局部变量是在函数内定义的变量,它们只能被定义它们的函数访问。局部变量的作用域仅限于它们所在的函数,因此它们不能在其他函数中使用。局部变量在函数被调用时被创建,在函数执行完毕后被销毁。
在使用变量时,应该注意它们的作用域和生命周期,以免出现意想不到的错误。
阅读全文