在不同函数中可以使用相同名字的变量吗


本文摘自PHP中文网,作者青灯夜游,侵删。

可以使用。C语言在函数中说明的变量为局部变量,只在函数内起作用,不会影响到其他函数。在不同函数中使用相同的变量名不代表是同一变量。

本教程操作环境:windows7系统、c99版本、Dell G3电脑。

在不同函数中可以使用相同名字的变量。

教程推荐:《c语言教程视频》

在函数内部定义的变量(局部变量)

在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能使用了,我们将这样的变量称为局部变量(Local Variable)。函数的形参也是局部变量,也只能在函数内部使用。

1

2

3

4

5

6

7

8

int f1(int a){

    int b,c;  //a,b,c仅在函数f1()内有效

    return a+b+c;

}

int main(){

    int m,n;  //m,n仅在函数main()内有效

    return 0;

}

几点说明:

1) 在 main 函数中定义的变量也是局部变量,只能在 main 函数中使用;同时,main 函数中也不能使用其它函数中定义的变量。main 函数也是一个函数,与其它函数地位平等。

2) 形参变量、在函数体内定义的变量都是局部变量。实参给形参传值的过程也就是给局部变量赋值的过程。

3) 可以在不同的函数中使用相同的变量名,它们表示不同的数据,分配不同的内存,互不干扰,也不会发生混淆。

4) 在语句块中也可定义变量,它的作用域只限于当前语句块。

关于变量的命名

每一段可运行的C语言代码都包含了多个作用域,即使最简单的C语言代码也是如此。

1

2

3

int main(){

    return 0;

}

这就是最简单的、可运行的C语言代码,它包含了两个作用域,一个是 main() 函数内部的局部作用域,一个是 main() 函数外部的全局作用域。

C语言规定,在同一个作用域中不能出现两个名字相同的变量,否则会产生命名冲突;但是在不同的作用域中,允许出现名字相同的变量,它们的作用范围不同,彼此之间不会产生冲突。这句话有两层含义:

  • 不同函数内部可以出现同名的变量,不同函数是不同的局部作用域;

  • 函数内部和外部可以出现同名的变量,函数内部是局部作用域,函数外部是全局作用域。

1) 不同函数内部的同名变量是两个完全独立的变量,它们之间没有任何关联,也不会相互影响。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#include <stdio.h>

 

void func_a(){

    int n = 100;

    printf("func_a: n = %d\n", n);

    n = 86;

    printf("func_a: n = %d\n", n);

}

 

void func_b(){

    int n = 29;

    printf("func_b: n = %d\n", n);

    func_a(); //调用func_a()

    printf("func_b: n = %d\n", n);

}

 

int main(){

    func_b();

    return 0;

}

运行结果:

阅读剩余部分

相关阅读 >>

学好C语言能做什么职业

C语言\n什么意思?

C语言怎么转换成汇编语言

c源程序中main函数的位置是什么?

C语言中pow函数的用法是什么?

C语言中==和=的区别

C语言用什么函数来比较字符串大小?

C语言自学难度高么?

C语言颜色代码

C语言中如何用do...while语句求1到100的累加和

更多相关阅读请进入《C语言》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...