`
zhaoningbo
  • 浏览: 624169 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言static局部变量使用的一个现象

    博客分类:
  • c
阅读更多
引言:

  C语言的static有点内涵,今天遇到个有意思的问题。

正文:

  先上代码:
/*
	时间:2012-03-06 16:30
	目的:实验静态局部变量
 */
#include <stdio.h>

int f()
{
	static int a = 0;
	a++;
	return a;
}

int fa()
{
	static int a;
	a = 0;
	a++;
	return a;
}

int main(void)
{

	int i, j;

	// f()
	for (i = 0; i < 4; i++)
	{
		j = f();
		printf("a = %d\n", j);
	}

	// fa()
	for (i = 0; i < 4; i++)
	{
		j = fa();
		printf("a = %d\n", j);
	}

	return 0;
}
/*
	VC++6.0 结果
---------------------
a = 1
a = 2
a = 3
a = 4
a = 1
a = 1
a = 1
a = 1
Press any key to continue
---------------------
 */

  小差异,大区别。到底是咋回事呢?

  (要开会,稍后续)

  因为,static语句,从始至终,只被执行过一次。

  读了static说明书,发现这个问题很菜,留着吧。笔者目前也就这水准了~。= 另外献上参考贴,请看下文引用内容。

引用:

  C语言中的static的作用


1
0
分享到:
评论

相关推荐

    C语言中static变量使用方法

    在C语言编程中,`static`关键字扮演着一个非常重要的角色,尤其是在处理变量的存储方式、作用域以及生命周期方面。本文将深入探讨C语言中`static`变量的使用方法,包括静态局部变量、静态全局变量以及`static`函数的...

    C语言初级-static声明局部变量

    C语言使用static中声明局部变量的用法及作用源码 C语言使用static中声明局部变量的用法及作用源码 C语言使用static中声明局部变量的用法及作用源码 C语言使用static中声明局部变量的用法及作用源码 C语言使用...

    C语言面试题大汇总之华为面试题:1、局部变量能否和全局变量重名;2、如何引用一个已经定义过的全局变量;3、全局变量可不可以定义在可被多个.C文件包含的头文件中 为什么;4、语句for( ;1 ;)有什么问题 它是什么意思……

    在同一个函数内可以定义多个同名的局部变量,每个局部变量的作用域就在那个循环体内。 二、extern关键字 extern关键字用于引用已经定义过的全局变量。如果用引用头文件方式来引用某个在头文件中声明的全局变理,...

    C语言全局/局部变量

    举例来说,如果你有一个函数需要计算结果并返回,但不想让这个结果影响到其他函数,那么应该使用局部变量。而如果有一个状态标志需要在多个函数间共享,全局变量可能是更合适的选择。 在Keil App的项目中,我们可以...

    C语言中局部变量和全局变量_等在内存中的存放位置.doc

    "C语言中局部变量和全局变量在内存中的存放位置" C语言中局部变量和全局变量是两种不同的变量类型...因此,了解C语言中局部变量和全局变量的特点和使用方法,可以帮助我们更好地编写C语言程序,并提高我们的编程能力。

    c语言全局变量和局部变量问题汇总

    假设我们有一个简单的示例来说明全局变量和局部变量的使用: ```c #include int global_var = 10; void modify_global() { global_var++; // 修改全局变量 } void modify_local() { int local_var = 5; // ...

    C语言static的用法

    - 当在一个函数内部定义了一个`static`变量时,该变量就变成了一个局部静态变量。 - 局部静态变量在其整个生命周期内只初始化一次,即使调用该函数多次也只初始化一次。 - 每次函数退出后,局部静态变量的值会...

    C语言 全局变量和局部变量详解及实例

    局部变量的作用域:在一个函数内部定义的变量只能在本函数内部进行使用。 OK,上面的效果用Java语言实现一下: public class App1 { public static int k = 10;//相当于全局变量 public static void main...

    static静态局部变量的使用技巧

    由于静态局部变量的值在程序运行期间持续存在,如果程序中的多线程会同时访问同一个静态局部变量,就需要考虑线程安全的问题,以避免出现竞争条件导致的不一致现象。另外,在调试过程中,由于静态局部变量可能在程序...

    深入探讨C语言中局部变量与全局变量在内存中的存放位置

    C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)1.局部变量和全局变量在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在...

    C语言的变量PPT课件.pptx

    在C语言中,变量分为全局变量和局部变量,这两种变量在内存中的存储方式和可访问范围都有所不同。 3.1 变量的生存期: 生存期指的是变量在程序中的生命周期。全局生存期的变量,包括全局变量和静态变量,它们在程序...

    C语言咋项里面的全局变量与局部变量工程

    2. 静态局部变量:在函数内部,使用static关键字声明的局部变量,虽然也只在该函数内可见,但其生命周期贯穿整个程序执行期间,仅在首次调用函数时初始化一次。 3. 隐蔽性:全局变量容易被误修改,建议尽量减少全局...

    c语言static用法总结

    - 当在函数内部的局部变量前加上`static`,这个变量就变成了局部静态变量。虽然它的作用域仍限于该函数,但不同于普通局部变量,局部静态变量在函数退出后不会被销毁,而是保持其最后的状态,直到程序结束。 - ...

    单片机与DSP中的ADS下C语言中局部变量的存储位置分配

    在单片机与DSP开发中,使用ADS(ARM Development Studio)进行C语言编程时,局部变量的存储位置分配是一个关键的细节。虽然教科书上通常将C语言的局部变量视为存储在“栈”中,但实际实现可能有所不同,这取决于...

    C语言中static用法大全

    `static`关键字在C语言中的意义经历了一个不断演变的过程。最初,`static`被用来表示那些在退出作用域后仍然存在的局部变量。随后,`static`被扩展了另一种含义:用来表示那些不能被其他文件访问的全局变量和函数。...

    c语言中static_用法总结

    在C语言中,`static`关键字是一个非常重要的概念,它可以帮助开发者更好地管理内存和控制变量的作用域。本文将详细介绍`static`关键字的不同用途及其对程序行为的影响,帮助读者深入理解C语言中的`static`。 #### ...

    使用C语言编程时变量内存分配

    本文将详细介绍C语言中不同类型的变量在内存中的分配机制,并通过一个具体的示例程序来具体说明。 #### 变量的内存分配类型 在C语言中,根据变量的作用域和生命周期的不同,可以将其分为以下几类: 1. **全局...

    c语言中static使用方法

    - **关键字static的历史**:在C语言中,`static`关键字最初被引入是为了表示在退出一个块后仍然存在的局部变量。随后,`static`又获得了另一种含义:用来表示不能被其他文件访问的全局变量和函数。尽管如此,为了不...

    c_全局变量

    局部变量可以分为两种,一种是形参变量,另一种是普通局部变量。形参变量是函数的参数,它们的作用域仅限于函数内部,而普通局部变量是函数内部定义的变量,它们的作用域也仅限于函数内部。局部变量的存储类别可以是...

    C语言中static的作用.pdf

    在C语言中,`static`关键字具有重要的功能,主要体现在以下几个方面:修饰局部变量、全局变量以及函数。接下来将详细解释这些用途及其背后的原理。 #### 1. 修饰局部变量 当`static`用于函数内部的局部变量时,该...

Global site tag (gtag.js) - Google Analytics