精华内容
下载资源
问答
  • } c语言局部变量 静态局部变量 全局变量与静态全局变量 基本概念: 作用域:起作用的区域,也就是可以工作的范围. 代码块:所谓代码块,就是用{}括起来的一段代码. 数据段:数据段存的是数,像全局变量就是存在数据段的 ...

    //test.c

    #include

    extern int global_var;

    void test_global_var()

    {

    global_var++;

    printf("global_var = %d\n", global_var);

    }

    #include

    #include

    #include

    void test_static_local_variable();

    int global_var = ; //普通全局变量,随着整个程序的结束而消亡。可以在整个程序方法问

    //可以在其他.c文件中访问

    static int static_global_var = ; //静态全局变量,限定只能在本文件内部访问

    int main(int argc, char** argv)

    {

    int a = ; //普通局部变量,只能在main函数内部使用,随着main函数的结束而消亡

    for (int i = ; i < a; i++) //复合语句中定义,随着for循环的结束而消亡

    {

    printf("i = %d\n", i);

    }

    test_static_local_variable(); //local_var = 1

    test_static_local_variable(); //local_var = 2

    test_static_local_variable(); //local_var = 3

    printf("global_var = %d\n", global_var); //global_var = 1

    test_global_var(); //global_var = 2

    test_global_var(); //global_var = 3

    system("pause");

    return ;

    }

    void test_static_local_variable()

    {

    static int local_var = ; //静态局部变量,只能在函数test_static_local_variable内部使用

    //生命周期为整个程序,随着程序的结束而消亡

    local_var++;

    printf("local_var = %d\n", local_var);

    }

    c语言局部变量 静态局部变量 全局变量与静态全局变量

    基本概念: 作用域:起作用的区域,也就是可以工作的范围. 代码块:所谓代码块,就是用{}括起来的一段代码. 数据段:数据段存的是数,像全局变量就是存在数据段的 代码段:存的是程序代码,一般是只读的. ...

    C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 (转)

    1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种: 全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 1>全局变量具有全局 ...

    C&plus;&plus; 全局变量、局部变量、静态全局变量、静态局部变量的区别

    全局变量.局部变量.静态全局变量.静态局部变量的区别 C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作 ...

    静态局部变量、静态全局变量、extern全局变量、自动变量 札记

    静态局部变量 静态局部变量. 从称呼上我们可以看出,静态局部变量首先是一个局部变量,因此其只在定义它的函数内有效,冠以静态的头衔后,其生存期就被延长了,不会随着函数的返回而被撤销.我们可以这样来理解: ...

    PHP static静态局部变量和静态全局变量总结

    1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它.倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值 2.静态局部变量只会初始化一次 3.静态属 ...

    static静态全局变量和static静态局部变量

    static静态全局变量: 静态全局变量就是将全局变量变成静态的.如何变?——全局变量加个static. static就是一个存储类说明符,a这个全局变量就成了一个静态全局变量了. 静态全局变量的特点 ...

    static全局变量与普通全局变量的区别,static局部变量与普通局部变量的区别,static函数与普通函数的区别

    static全局变量与普通全局变量的区别 static全局变量和普通全局变量的存储方式没有不同,如果它们都已经初始化,那么存放在进程的数据段中,否则存放在bss段.这两者的不同点在于作用域不同,当一个 ...

    C&plus;&plus;静态全局变量和全局变量的区别

    静态全局变量 非静态全局变量 存储方式 静态存储 静态存储 作用域 定义该变量的源文件内 所有源文件 解释: 共同点:全局变量(外部变量)的说明之前再冠以static 就构 成了静态的全局变量.全 ...

    Shell 全局变量、环境变量和局部变量

    Shell 变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围). 在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他 ...

    随机推荐

    一台服务器发布多个tomcat并注册服务名办法

    修改服务名称 打开Tomcat7.0.65_1/bin/service.bat  修改注册服务名称 当然这个名字自己改 比如Tomcat7_2 原始文件:   set SERVICE_NAME=Tom ...

    &lbrack;tools&rsqb; Sublime text 3 神器

    同事给了一个Sublime text 3 增强优化版.

    Quartz CronTrigger最完整配置说明

    转:http://www.blogjava.net/xmatthew/archive/2009/02/15/253864.html   Quartz CronTrigger最完整配置说明 CronTr ...

    在centos 6&period;5 在virtual box 上 安装增强版工具

    centos 6.5 在virtual box 上 安装增强版工具: 出现:centos unable to find the source of your current linux kernel ...

    一款基于jQuery的支持鼠标拖拽滑动焦点图

    记得之前我们分享过一款jQuery全屏广告图片焦点图,图片切换效果还不错.今天我们要分享另外一款jQuery焦点图插件,它的特点是支持鼠标拖拽滑动,所以在移动设备上使用更加方便,你只要用手指滑动屏幕即 ...

    codevs1099字串变换(Bfs)

    /* 最少步数问题 妥妥的Bfs 很显然队列里存的是串(可能存个数也可以 就像8数码那样) 然后每次队首元素弄出来 能换的都换一遍 最后每次换完的新串入队前先判断到头了没 最后说一句 String大法 ...

    实现AOP功能的封装与配置的小框架

    内容 java基础巩固笔记 - 实现AOP功能的封装与配置的小框架 设计(目录): XXX = java.util.ArrayList中 代码 Advice接口 MyAdvice类 BeanFacto ...

    SqlServer变量

    MySql变量 => https://www.cnblogs.com/fanqisoft/p/10700669.html 全局变量 局部变量 ⒈全局变量 以@@开头,后面跟相应的字符串,全局变量 ...

    Maven(八)Eclipse创建Web项目(复杂方式)

    1. 生成标准的Web工程结构 2. 勾选结尾为webapp的包 3. 生成的文件结构如下 3.1 生成的目录结构若存在错误,缺少servlet.api 3.1.1 添加步骤如下 4.生成后存在的缺点 ...

    Datagridview 在基于文本的单元格中启用换行&comma;自动调整行高列宽

    将 DataGridViewCellStyle的 WrapMode 属性设置为 DataGridViewTriState 枚举值之一.下面的代码示例使用 System.Windows.Forms.Da ...

    展开全文
  • int a=2;int f(int n){static int a=3;int t=0;if(n%2){static int a=4;t+=a++;}else(static int a=5;t+=a++;}return t+a++;}main(){int s=a,i; //a=2,s=2;for(i=0;i<3;i++)s+=f(i);printf("%d\n"...

    int a=2;

    int f(int n)

    {static int a=3;

    int t=0;

    if(n%2){static int a=4;t+=a++;}

    else(static int a=5;t+=a++;}

    return t+a++;

    }

    main()

    {int s=a,i; //a=2,s=2;

    for(i=0;i<3;i++)

    s+=f(i);

    printf("%d\n",s);

    }

    第一次循环i=0

    int f(int n)

    {static int a=3;

    int t=0;

    if(n%2) //条件不成立

    {static int a=4;t+=a++;}

    else

    (static int a=5;t+=a++;}//执行此处 a=5, t=5

    //此时static int a=5;出 a=6

    return t+a++; //此处a为static int a=3;

    //return 5+3 a++,

    //此时static int a=3;的a =4;

    }

    s=s+8,就是s=10

    第二次循环 i=1

    int f(int n)

    {static int a=3;

    int t=0;

    if(n%2) //条件成立

    {static int a=4;t+=a++;} //t=4;

    else

    (static int a=5;t+=a++;}

    return t+a++; //此处a为上次的

    //此时static int a=3;的a =4;

    //return 4+4 ,a++

    //此时static int a=3;的a =5;

    }

    s=s+8,即s=18

    第三次循环i=2

    int f(int n)

    {static int a=3;

    int t=0;

    if(n%2) //条件不成立

    {static int a=4;t+=a++;}

    else

    (static int a=5;t+=a++;} //t=6; a 第一次循环时更改

    return t+a++; //return 6+5

    }

    结果s=s+11,即s=18+11=29

    全部

    展开全文
  • 静态局部变量:切断了外部链接属性。创建在static区。创建时若未初始化,则为0。全局变量和静态变量的存储是放在一块的,初始化了的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的...

    局部变量:

    创建在栈区(向下生长),生命周期存在于当前作用域中。

    创建时若未初始化,则为随机值。

    全局变量:

    创建在static区,生命周期一直存在。

    创建时若未初始化,则为0。

    静态局部变量:

    切断了外部链接属性。创建在static区。

    创建时若未初始化,则为0。全局变量和静态变量的存储是放在一块的,初始化了的全局变量和静态变量在一块区域,

    未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。

    全局静态变量:

    切断了外部链接属性,创建在static区,生命周期一直存在。

    创建时若未初始化,则为0。#include

    #include

    int fun1()

    {

    static int n = 0;

    n++;

    return n;

    }

    int main()

    {

    int ret = 0;

    for (int i = 0; i 

    {

    ret = fun1();

    printf("%d\n", ret);

    }

    system("pause");

    return 0;

    }

    输出1,2,3……10.#include

    #include

    static int n;

    int fun1()

    {

    n = 0;

    n++;

    return n;

    }

    int main()

    {

    int ret = 0;

    for (int i = 0; i 

    {

    ret = fun1();

    printf("%d\n", ret);

    }

    system("pause");

    return 0;

    }

    输出10个1。

    extern:

    有外部链接属性,即可检测到外部文件。

    static:

    切断外部链接属性。

    位于static区的变量:

    整个生命周期均存在,如全局变量,静态变量。#include

    #include

    int b = 20;

    int main()

    {

    static int a = 10;

    int c = 5;

    printf("%p\n", &a);

    printf("%p\n", &b);

    printf("%p\n", &c);

    system("pause");

    return 0;

    }

    ad1f957cba0834da3f5640f13d693b24.png

    由此可知,静态变量和全局变量的存储地址很近,在同一区域,即:均存储在static区。

    展开全文
  • static是C语言常用的变量之一。它的作用主要是更改作用域、 修饰变量 当static修饰变量时,它可以改变变量的作用域(由局部变为全局)。 修饰函数 当static饰函数时,它可以改变函数被调用的域(由此项目的全部文件...

    static是C语言常用的变量之一。它的作用主要是更改作用域、

    • 修饰变量
      修饰局部变量
      当static修饰变量时,它可以改变变量的生命周期(由局部变为全局)。
      修饰全局变量
      修改的是作用域。
    • 修饰函数
      当static饰函数时,它可以改变函数被调用的域(由此项目的全部文件变为当前文件)。
    展开全文
  • 静态存储区的静态变量在程序整个运行期间内都不是放空间,自动类型的局部变量属于动态存储类型,在动态存储区内分配内存,函数调用结束后,内存单元被释放。静态变量只需要有一次赋值即可,下次使用时就是上次使用后...
  • 阅读下面的程序,对照实际运行结果检验学习成果。(1)#includeint fun(int a,int b){static int m=0,i=2;i+=m+1;m=i+a+b;return (m);}int main(){int k=4,m=1,p1,p2;p1=fun(k,m) ;p2=fun(k,m) ;printf("%d,%d\n",p1,...
  • 首先,代码如下: #include <stdio.h>...解析:在该代码中fun函数定义的a为静态局部变量,所以在第一次调用fun函数时的a的值会被保留下来,即第二次调用fun函数时的a的值是第一次调用以后的得到的
  • 考察静态局部变量的值。 编程: #include<stdio.h> int main() { int f(int);//函数声明 int a=2,i;//自动局部变量 for(i=0;i<3;i++) printf("%d\n",f(a)); return 0; } int f(int a) { auto int b=0;//...
  • 本文主要向大家介绍了C语言的理解静态局部变量(static)在程序中的执行规则,通过具体的内容向大家展示,希望对大家学习C语言有所帮助。#include"stdio.h"/*目的: 认识静态局部变量 static !!!*/intf(inta){autob...
  • C语言中使用auto 关键字声明自动变量,使用static关键字声明静态变量。在函数中定义局部变量时,如果没有被声明为其他类型的变量都是自动变量。在编写代码时,有时需要在调用函数中的某个局部变量以后,这个变量的值...
  • 函数中的局部变量,如果不加 static 这个关键字来修饰,都属于自动变量,也叫做动态存储变量。这种存储类别的变量,在调用该函数的时候系统会给他们分配存储空间,在函数调用结束后会自动释放这些存储空间。动态存储...
  • //静态局部变量 } 全局变量:具有全局作用域,全局变量只需在一个源文件中定义,就可以作用于所有的源文件(使用extern跨)。 静态全局变量:具有全局作用域,它与全局变量的区别在于如果程序包含多个文件的话,...
  • 局部变量、全局变量和静态变量之间的区别 (1)局部变量 定义: 在一个函数内部定义的变量是局部变量,它只在本函数范围内有效。 1.主函数main定义的变量也只在主函数有效; 2.不同函数中可以使用名字相同的变量,...
  • 静态局部变量、静态全局变量、静态函数(静态局部变量只被初始化一次,保留变量值、静态全局变量是加了作用域的全局变量、静态函数亦是加了作用域的函数)
  • 静态变量的内存分配和初始化对于C语言的全局和静态变量,不管是否被初始化,其内存空间都是全局的;如果初始化,那么初始化发生在任何代码执行之前,属于编译期初始化。由于内置变量无须资源释放操作,仅需要回收...
  • c语言什么是静态变量

    2021-05-20 10:39:54
    c语言静态变量的概念定义“静态变量”这一术语有两个容易混淆的定义:语言无关的通用定义:与程序有着相同生命周期(英语:Objectlifetime)的变量;C族语言特有的定义:以存储类声明的变量。而在以Pascal为代表的许多...
  • 全局区(静态区)——全局变量静态变量的存储是放在一块的,初始化的全局变量和初始化的静态变量在同一区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。常量区——常量就是...
  • 在向旅游者致欢迎词时,便于保存变量部变地陪的态度要热情,感情要真挚,内容要依情而异,语言要( )计算机存据区静山西省总的地势是()。储管成动储区储区存放储区提出到2020年要将我国旅游业建设成国民经济的战略性...
  • 变量二、局部变量和全局变量1.局部变量:在代码块中定义的变量(具有临时性)2.全局变量:在函数体外定义的变量。(具有全局性)3.当全局变量和局部变量重名问题总结 前言 ` 一.变量 在介绍全局变量和局部变量之前...
  • 局部静态变量 使用范围:从定义的地方开始,直到最近的花括号结束 生命周期:从定义的地方开始,直到最近的花括号结束 局部静态变量 使用范围:从定义的地方开始,直到最近的花括号结束 生命周期:从程序运行开始...
  • C语言局部变量就分配在栈中。 局部变量  普通的局部变量定义的时候直接定义或者在前面加上auto void func1(void) {undefined int i = 1; i++; printf("i = %d.n", i); } 局部变量i的解析:
  • 1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同...
  • 静态局部变量 存在全局区 不初始化内容为0 整个进程结束空间释放 只能在定义所在的复合语句中有效 静态全局变量 存在全局区 不初始化内容为0 整个进程结束空间释放 只能在当前源文件中使用 ...
  • 通常存放局部变量、函数参数等。所谓的栈区,低地址(小于exe基地址),拥有可读写属性,exe中没有对应的区段,系统加载dll时自动生成,由于内存地址使用方式从大往小减,所以数量有限,尽量不要定义过大的数组变量。...
  • 局部变量C语言局部变量的存储类别自动变量静态局部变量寄存器变量 自动变量 auto int b,c=3; auto可以省略,不写与 int b,c=3;等价 静态局部变量 下面展示例子 static。 #include<stdio.h> int main() { int ...
  • 1.形参与实参C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。1.1形参(形式参数)在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收...
  • static 静态变量 一般在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈区分配空间,函数在栈区分配的空间在此函数执行结束时会释放掉。 这样就产生了一个问题: 如果想将函数中此变量的值保存至下...
  • 全局变量 局部变量 自动变量 静态变量 静态变量和自动变量的区别 声明区别 定义局部变量的时候没有加static 是自动变量(一般数据类型加上变量名的方式定义变量等到的就是自动变量) 定义局部变量的时候加了static是...
  • 一、存储区域介绍C语言在内存中一共分为如下几个区域区域作用内存栈区存放局部变量名内存堆区存放new或者malloc出来的对象常数区存放局部变量或者全局变量的值静态区用于存放全局变量或者静态变量代码区二进制代码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,235
精华内容 25,694
关键字:

c语言静态局部变量

c语言 订阅