精华内容
下载资源
问答
  • 形式参数也是局部变量 作用仅限该函数,函数调用结束后释放 C语言局部变量存在栈里,全局变量存静态存储区。 局部变量在栈空间上分配,这个局部变量所在的函数被多次调用时,每次调用这个局部变量在栈上的位置都不...

    形式参数也是局部变量
    作用仅限该函数,函数调用结束后释放

    C语言中局部变量存在栈里,全局变量存静态存储区。
    局部变量在栈空间上分配,这个局部变量所在的函数被多次调用时,每次调用这个局部变量在栈上的位置都不一定相同。局部变量也可以在堆上动态分配,但是记得使用完这个堆空间后要释放之。
    全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。在程序执行过程中它们占据固定的存储单元,而不动态地进行分配和释放;

    展开全文
  • C语言全局变量和局部变量

    千次阅读 多人点赞 2018-09-03 22:45:43
    前言 本博文的代码是基于VC++6.0编写; 讨论全局和局部变量时,其实就是对变量的作用域进行讨论; ...局部变量 ...3. 形式参数; 4. 函数中间(非开头); #include <stdio.h> void m...

    前言

    1. 本博文的代码是基于VC++6.0编写;
    2. 讨论全局和局部变量时,其实就是对变量的作用域进行讨论;

    局部变量

    是什么?首先是一个变量,其次,这个变量只是在程序的局部范围内有效;
    局部变量定义在那些位置:
    1. 函数的开头;
    2. 函数内的复合语句内定义;
    3. 形式参数;
    4. 函数中间(非开头);

    #include <stdio.h>
    void main()
    {
    }
    void fun1(char local_0)  //形式参数:只在此函数有效;
    {
        char Local_1 = 'a';  //函数的开头:在本句以下的函数内有效;
        {
            char local_2 = 'b';  //函数的复合语句内定义:只能在本复合语句内切本行以下有效;
        }
        char Local_3 = 'c';  //函数中间(非开头):只能在本行以下有效;
    }

    注意:
    1)程序执行到某个函数时,这个函数内部的局部变量将会被分配内存空间;局部变量在函数执行结束后,变量所占内存将会被释放;

    全局变量

    是什么?是变量,可以在全局范围内有意义的变量;所谓全局也并不是真正的全局,而是在定义处以下的范围内才是有效的;
    全局变量定义的位置:
    1. 文件开头;
    2. 函数前;
    3. 函数后;
    4. 文件结尾;
    举例:

    #include <stdio.h>
    
    char Global_1 = 'A';  //源文件开头:在此行以下的所有定义的函数都有效;
    void main()
    {
    }
    
    char Global_2='B';  //函数后和函数前:此全局变量在此行之前是无效,只能在此之下的函数中有效;
    
    void fun1()
    {
        char Local_1 = 'a';
        {
            char local_2 = 'b';
        }
        char Local_3 = 'c';
    }
    
    char Global_3 = 'B';//程序结尾:程序结尾的全局变量是没有意义的;

    注意:
    1)为了区别全局变量和局部变量,往往大家在写程序的时候都喜欢将全局变量的首字母大写,而局部变量的首字母小写;
    2)全局变量的优点和缺点:
    优点:C语言的函数,每次最多只能返回一个值,但是如果定义了全局变量,那么在这个变量的有效范围内,很多函数都能改变这个变量的值,所以增加了函数之间的联系,通过函数的调用可以得到一个或一个以上的值;
    缺点:(大量使用全局变量的情况下)
    1)占内存:全局变量所占的内存空间不会像局部变量一样会被释放;
    2)降低程序清晰性:无法随时确定定义的全局变量的值的大小;
    3)降低通用性:程序设计时要求函数的“内聚性”强,函数与函数之间“耦合性”弱;定义全局变是一定要注意在有效范围内变量不能重名,并且当全局变量被跨文件调用的函数调用时,不能出现全局变量与所跨文件中存在重名变量,否则有可能会出错;所以,为了提高程序的可靠性,可移植性和可读性等,全局变量尽量少用;

    展开全文
  • C语言——局部变量

    2021-02-08 11:16:55
    一、形式参数也是局部变量。 作用域仅限该函数,{}(在左大括号和右大括号之间)。 有作用限制,就决定了该变量的生效范围。 生存周期也一样。 例子: #include <stdio.h> #include <stdlib.h> void ...

    C语言——局部变量

    一、形式参数也是局部变量。
    作用域仅限该函数,{}(在左大括号和右大括号之间)。
    有作用限制,就决定了该变量的生效范围。
    生存周期也一样。

    例子:

    #include <stdio.h>
    #include <stdlib.h>
    
    void  test1()
    {
         int  data;
         data=100;
         
         printf("test1:data=%d\n",data);
    }
    
    void  test2()
    {
         int  data;
         data=101;
         
         printf("test1:data=%d\n",data);
    }
    
    void  test3()
    {
         int  data;
         data=102;
         
         printf("test1:data=%d\n",data);
    }
    
    
    int main()
    {
    	test1();
        test2();
        test3();
    	system("pause");
    	return 0;
    }
    
    

    在这里插入图片描述

    二、形式参数和局部变量的差异性

    #include <stdio.h>
    #include <stdlib.h>
    
    void  test4(int data)
    {
         
         printf("test4:data=%d\n",data);
    }
    
    void  test1()
    {
         int  data;
         data=100;
         
         printf("test1:data=%d\n",data);
    }
    
    void  test2()
    {
         int  data;
         data=101;
         
         printf("test1:data=%d\n",data);
    }
    
    void  test3()
    {
         int  data;
         data=102;
         
         printf("test1:data=%d\n",data);
    }
    
    
    int main()
    {
    	test1();
        test2();
        test3();
        test4(105);
    	system("pause");
    	return 0;
    }
    
    

    test1到test3的值是一样的。
    test4的值取决于传递的参数是什么。
    在这里插入图片描述
    ——@上官可编程

    展开全文
  • C语言、C++:全局变量与局部变量

    千次阅读 2019-04-14 14:11:10
    但由于附带了许多Java的知识,比如static关键字等对于初学者没必要的赘述,这里所以再写一篇十分简单明了的《全局变量与局部变量》(只涉及基本语言C语言)让读者快速入门与理解使用。 话不多说,直接干货 ↓ (....

    之前写过《Java:全局变量(成员变量)与局部变量》(https://blog.csdn.net/dragongiri/article/details/81947776)的文章,但由于附带了许多Java的知识,比如static关键字等对于初学者没必要的赘述,这里所以再写一篇十分简单明了的《全局变量与局部变量》(只涉及基本语言C语言)让读者快速入门与理解使用。

    话不多说,直接干货 ↓ 

     

    (1)全局变量

    全局变量是指在定义之后的所有程序段内都有效的变量(即定义在所有函数之前〉,例如下面这个例子:

    #include <stdio.h> 
    
    int x; //main函数外定义的x
    
    void change() { //括号这里并没有定义x
        x = x + 1;
    }
    
    int main(){
        x = 10; 
        change();
        printf("%d\n", x);
        return 0;
    }

    输出结果:

    11

    在上述代码中 ,把x定义在所有函数的前面, 这样在 x定义之后的所有程序段都共用这个x, 所以当主函数对x赋值为10 之后, 使用change()函数可以改变x 的值, 从而令x 变为11

    (2局部变量

    与全局变量相对,局部变量定义在函数内部,且只在函数内部生效,函数结束时局部变量销毁, 示例如下:

    #include <stdio.h> 
    
    void change(int x) {//这里我在括号里面定义了x  而不是最外的x
        x = x + 1;
    }
    
    int main(){
        x = 10; 
        change(x);
        printf("%d\n", x);
        return 0;
    }

    输出结果:

    10

    可以看到,当在主函数中定义了x 之后,将其作为change()函数的参数传入,并令x加1,但是最后输出时 x 却仍然是10。这是因为change函数的参数x 为局部变量 ,仅在函数内部生效, 通过change(x) 传进去的 x 其实只是传进去一个副本(就理解成另外一个世界的x就行  反正你别把它当原来x就行  只是它们的名字和所携带的值是一样的  其实已经是两个人了), 也即 change函数的参数x和main 函数里的x其实是作用于两个不同函数的不同变量(虽然 名字相同〉,取成不同的名字当然是可以的。这种传递参数的方式就叫做值传递(相当于我把我所携带的信息内容复制给你一遍  而不是我把我给你【这一类称为地址传递】),函数定义的小括号内的参数称为形式参数或形参,而把实际调用时小括号内的参数称为实际参数或实参。

    因此, 如果想要让定义的变量对所有函数都有用, 最好还是使用全局变量的定义方式。

     

     

       By the way(关于值传递以及地址传递可见https://blog.csdn.net/DragonGirI/article/details/81706001  虽然是Java版的  但其实不影响理解,若是不理解,可以留言评论  博主亲自给你解答)

     

     

     

    展开全文
  • C语言局部变量和全局变量 变量的存储类别(static,extern,auto,register)   局部变量和全局变量 在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参...
  • 局部变量 :  在一个函数内部定义的变量是局部变量,它只在本函数范围内有效,也就是说只有... (2) 形式参数也是局部变量  (3) 在一个函数内部,可以再复合语句中定义变量,这些变量仅在本复合语句中有效,
  • C语言中的局部变量和全局变量

    千次阅读 多人点赞 2019-03-17 16:25:02
    一.作用域 首先,我们先明白一个重要的概念,什么是作用域? 每个变量都有属于它的作用域,就是这些变量在什么...(3)形式参数 在一个函数内部定义的变量只在本函数范围内有效,也就是只有本函数内才能引用它们,在此...
  • 根据所定义位置的不同, 变量可分为局部变量形式参数和全程变量。从空间角度来看,变量可以分为全局变量和局部变量,而从时间角度来分的 可以有静态存储变量和动态存储变量之分。一。全局变量和局部变量1。局部变量...
  • 1、全局变量 定义:在所有函数外部定义的变量cheng
  • 1、局部变量能否和全局变量重名?  答:能,局部会屏蔽全局。要用全局变量,需要使用"::"  局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而...
  • 1、局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。在复合语句中也可定义变量,其作用域只在复合语句范围内。 2、全局变量也称为外部变量...
  • C语言局部变量和全局变量在内存中的存放位置

    千次阅读 多人点赞 2012-12-12 10:16:41
    C语言局部变量和全局变量变量的存储类别(static,extern,auto,register)   1.局部变量和全局变量 在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参...
  • C语言全局变量和局部变量总结

    万次阅读 多人点赞 2016-11-19 11:37:21
    1) 只有局部自动变量形式参数可以作为寄存器变量; 2)一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量; 3)局部静态变量不能定义为寄存器变量。 用extern声明外部变量 外部变量...
  • C语言局部变量和全局变量变量的存储类别(static,extern,auto,register) 1----局部变量和全局变量 在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明...
  • 全局变量和局部变量的区别-c语言

    千次阅读 2013-12-12 20:50:56
    1.2 按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。    1.3 按作用域分,全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件...
  • c语言全局变量和局部变量问题汇总 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量...
  • 局部变量:在函数内部(代码块内部)声明的变量,也称为“自动变量”,进入代码块创建,退出代码块销毁 #include int fun() { int a = 19; { int a = 20; { int a = 21; printf("%d\n", a); //21,局部...
  • 1.局部变量和全局变量 在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。...C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。 1.1局部变量 局部变量
  • 1.局部变量和全局变量 在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。...C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。 1.1局部变量 局部变量
  • 局部变量是指声明在函数里的变量,它的生存周期是和它所在的函数体一致的。 全局变量是指声明在函数体外面的,生存周期与程序是一样的。可以在同一个程序下不同的函数体里UPDATE。 形式参数是指你声明函数以及创建...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,388
精华内容 16,555
关键字:

形式参数是局部变量吗c语言

c语言 订阅