『壹』 c语言中,static变量使用,如图

因为C语言在函数调抄用时,采用“值传递”,就是形参被改变,不影响实参的值
简单举个例子
假如a=5;b=3;
Swap(int x,int y);交换两个数,在主函数里调用
Swap(a,b);那么a,b其实是不会被改变。。。
交换的只是x,y但是,x,y在函数调用结束,就释放了。
同理,你的change(*pi)
调用change(p),那么p的值是不会实际改变的。所以本来指向的4,调用结束,仍指向4,而不是指向10,并且+2

『贰』 c语言,静态变量相关

被static定义的变量属于静态变量,之后即使再次定义都对其无效,所以它的值不会因为再次定义而重置值,所以再此题中就相当于就是在求1+2+3+4+5+6的和,故选B。

『叁』 C语言中static修饰变量

最主要有两点用途。
让一个变量长期有效,而不管其是在什么地方被申明。比如:
int fun1()
{
static int s_value = 0;
....
}
那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下次s_value再被用到时,也即当fun1()再次被调用时,s_value初始值将是最近被保存过的值(请注意s_value初始化操作只会被执行一次,即上述s_value =0 这个语句)。

2.避免多个文件使用了相同的变量名而导致冲突
比如有多个文件,分别由几个人独立开发的。假定他们在各自的文件中定义相同的“全局”变量名(仅仅指在他们独自的文件中全局),当系统集成时,由于他们使用了名字一样的“全局”变量,导致有难于遇见的问题。解决这个问题方便的做法就是在各自文件中,在相同的全局变量申明前加上static修饰符。这样系统就会为他们分配不同的内存,互不影响了。

『肆』 关于c语言static变量

函数中定义的static存储型变量的地址被返回后,在主调函数中通过指针操作该变量是合法的,以下代码可以验证:

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
int*f(void){
statica=1;
return&++a;
}
intmain(void){
int*p=f();
printf("%d ",*p);
*p=7;
printf("%d ",*p);
printf("%d ",*f());
return0;
}

输出是:

2

7

8

说明很正常。

『伍』 c语言 static静态变量

c语言的static变量是在来程源序加载的时候就为之分配内存的,一直到程序结束,而不像普通变量那样函数执行一次分配一次。所以当第一次执行p(1)的时候,y已经加1了,下次执行p(2)时,y不会恢复成1,还是2;你就当全局变量的功能处理就行,性能上有区别

『陆』 c语言中static说明是什么意思

static 用来说明静态变量。

1、如果是在函数外面定义的,那么其效果和全局变量类似,即static说明的变量可以在当前c程序文件中使用。

2、如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始化,于是,这个变量的取值就会一直保存着,我们再次调用该函数时,仍是保存的上一次函数调用时保存的结果。

(6)static变量C语言扩展阅读:

c语言中的static有三个主要作用:

1、隐藏性。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。

2、static可以保持变量内容的持久,当static定义变量在函数内部时,改变量值的生命周期和全局变量相同。

3、static可以令其定义变量内存区所有字节默认初始化为0,这一特点可以省去程序员许多麻烦,减少工作量。

『柒』 c语言中变量前的static有什么用

static变量大概是两种情况

在函数里的static变量意味着这个变量的生存期是全局的,你可以想象它实际上就是在函数外声明的, 当然因为可见范围的原因其他函数不能访问它

在函数外的static变量意思是本地的, 跟不加static的差别就是其他文件不能通过extern来访问这个变量。

『捌』 C语言static变量的一个问题

a = f(g(3));,其中g(3) = 2*3 = 6。f(6) = 2 + 6*6=38,并且f中的c变成38。
b = g(f(3));,其中,f中的c是static,保持上次计算后的值,38。所以f(3) = 38 + 3*3=47,g(3) = 2*47=94。

『玖』 C语言里面静态变量static是什么作用啊

static关键字在C语言复中用于声制明一个静态的局部变量。
作用:
有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。

用静态存储要多占内存(长期占用不释放,而不能像动态存储那样一个存储单元可以先后为多个变量使用,节约内存),而且降低了程序的可读性,因此若非必要,不要多用静态局部变量。

『拾』 C语言中static变量的赋值问题

static int a = 0; // 运行期时初始化一次, 下次再调用时, 不进行初始化工作如下:

printf(“%d”,a);

a++;

}

int main()

{

staticLocalVar(); // 第一次调用, 输出a=0

staticLocalVar(); // 第二次调用, 记忆了第一次退出时的值, 输出a=1

return 0;

}

(10)static变量C语言扩展阅读

1、static对全局变量的修饰,可以认为是限制了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入static修饰之后,只能被本文件中函数引用此变量。

2、static对栈变量的修饰,可以认为栈变量的生命周期延长到程序执行结束时。一般来说,栈变量的生命周期由OS管理,在退栈的过程中,栈变量的生命也就结束。

3、但加入static修饰之后,变量已经不再存储在栈中,而是和全局变量一起存储。同时,离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。