C语言,全局变量和局部变量有什么区别

C语言,全局变量和局部变量有什么区别,第1张

全局变量就是整个源程序都有效的变量;而局部变量会在其所属的函数或循环等结束后消亡。

整个程序都要用的变量定义全局变量,如果就是某个函数用的话,就定义局部变量,以便其他函数可以重新定义同名变量来使用。

要是都用全局变量,那遇到大程序时,程序是由不同人分别编各自的模块或函数,不能避免定义同名变量,到时就会冲突。

全局变量也称为外部变量,它是在函数外部定义的变量。

全局变量既可以通过某对象函数创建,也可以是在本程序任何地方创建的。其作用域是整个源程序,可以被本程序所有对象或函数引用。

在函数中使用全局变量,一般应作全局变量说明, 只有在函数内经过说明的全局变量才能使用。

简单来说,在main() 函数以前声明的变量就是全局量。例如:

#include<stdioh>

#include<stdlibh>

int i=22;

float f=34;

void main()

{

printf("%d %f",i,f);

}

C/C++ 的域 由 花括号 括定;

每对 { } 构成一个域;

每个域的开始可以有变量声明,接下来是语句;

每对花括号的外层 声明的量,都是本域的全局变量。

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。

参考资料CSDN专业IT社区中国知网

全局变量,这个全局的意思

一种是本文件内全局,这样的全局变量可以被本文件内所有函数使用和修改

另一种是外部可可使用的全局变量,有extern关键字修饰,可以被本文件和外部文件函数调用和修改

全局变量又分为:

1:静态全局变量,有const关键字修饰,该变量的值在任何位置的值都不能修改,相当于常量

2:不是静态的全局变量,也就是值可以修改的全局变量

主函数运行让用户输入全局变量(n)的值,接下来主函数调用功能函数:int

sign();sign函数的功能是:根据全局变量n三种范围的取值而返回三种值(0,1,-1)当n大于0则返回1,当n小于0则返回-1,当n等于0则返回0接下来主函数把sign函数返回的值(0,1或-1)赋值给局部变量s,最后主函数输出s的值你既然输入4,那n的值就是4,那sign返回的值是:1,于是局部数据s的值就是1咯!

在函数内定义的变量是局部变量,而在函数外定义的变量叫做外部变量,外部变量是全局变量。全局变量可以为本文件中其他函数所共用它的有效范围从定义变量的位置开始到本源文件结束。

建立全局变量的作用是增加了函数间数据联系的渠道。

1、记住一条就够了:在函数之外定义的变量就是全局变量。用static修饰的变量可以是全局的,也可以是局部的,所以说“用static修饰的变量是全局变量”是错误的。用static修饰的变量的生命周期与全局变量一样,但可见性仍分全局和局部。

2、全局变量在整个c文件中都能使用,而局部变量在其作用域内才能使用,举个例子:

int f = 7;// 这个是全局变量

int myadd(int a, int b)

{

int c = a + b;// c是局部变量,只能在myadd中使用

return c;

}

int main(void)

{

printf("%d\n", c);// 因为c是myadd中定义的局部变量,这里会报错。

printf("%d\n", f);// f是全局变量,这句是正确的。

}

C语言中的全局变量的默认值:

#include<iostream>

#include<string>

usingnamespacestd;

inta;

charb;

floatc;

doubled;

boolboo;

stringstr;

inte;

charf;

floatg;

doubleh;

strings;

intmain(){

cout<<"int:"<<a<<endl<<"char:"<<b<<endl<<"float:"<<c<<endl<<"double"<<d<<endl<<"string"<<str<<endl<<"bool:"<<boo<<endl;

cout<<"int"<<e<<endl<<"float"<<g<<endl<<"double"<<h<<endl<<"string"<<s<<endl<<"char"<<f<<endl;

return0;

}

扩展资料

变量和赋值

#include<stdioh>

intmain()

{

inta=3;

printf("thevariableis%d\n",a);

return0;

}

//程序输出thevariableis3

以上就是关于C语言,全局变量和局部变量有什么区别全部的内容,包括:C语言,全局变量和局部变量有什么区别、在c/ c++中,全局变量是什么意思啊、C语言全局变量有哪几种等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9269808.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存