关于c语言中变量赋值问题

 

局部变量:也叫内部变量,是在一个函数内部定义的,其作用域限制在所定义的函数中,不可在其它函数中使用,而该函数也不可以使用其它函数所定义的局部变量。函数的形式参数被认为是局部变量,在函数被调用时才会在内存的动态存储区中开辟存储单元。函数调用结束时,与此函数内的其他局部变量一样释放所占有的内存单元。局部变量的存储类型可以通过类型标示符auto和static来规定。利用auto定义的变量存放在动态存储区中,auto可以省略;利用static定义的变量存放在静态存储区中。编译器并不将局部变量自动预设为0!!!其值是不确定的或无意义的。程序员必须在局部变量使用前确切的给他们赋值。不同函数中可以使用相同名字的局部变量,他们代表不同的变量,相互之间不会形成干扰。局部变量还可以与全局变量同名,此时在局部变量的而作用域,全局变量不起作用。

全局变量:也叫外部变量,存放在静态存储区中,作用域从全局变量定义之后知道该源文件结束的所有函数;当通过extern作引用说明,全局变量的作用域可以扩大到整个程序的所有文件。但当使用static类型标示符时,与普通全局变量的区别是作用域。普通全局变量不仅对文件中的所有函数都是可见的,而且能被其它文件中的函数调用。而static型全局变量仅对其所在文件中定义处之后的函数是可见的,不能被其他文件使用。全局变量初始化是在其定义时进行的。而其初始化仅执行一次。不定义的话默认为0!!!

在C语言中,全局变量和静态变量,如果没有赋初值,则默认初始值int,float,char,空指针
分别为0  0.0  '\0'  0!!!~~~~~~~除了全局变量和静态变量以外,其它变量如果没有赋初值,则默认初始值为内存中的垃圾内容,对于垃圾内容不能有任何假设.这些规则对于数组\结构体和联合体也同样适用用malloc()和realloc()动态分配的内存也可能存在垃圾内容.因此在使用变量前最好都赋初值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值