如果是定义的全局变量或者静态变量,未初始化的话就是0.如果是局部变量,那就是以前残留在堆栈里的随机值。
区分变量的类型,有两种情况。
1、局部变量。
局部变量在没有显式初始化时,其值C语言规范没做要求,可以是随机值,也可以是编译器随意给定的值。
比如gcc编译器的局部变量就是随机值,可能为任何值。而微软的编译器,如VC或VS,则会初始化为全c,即0xCCCCCCCC。
2、全局变量或静态局部变量。
所有的全局变量,即定义在函数外的变量,默认值为0。
所有的静态局部变量,即定义在函数内部的static int name形式的,默认初始化为0。
扩展资料:
int是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符。
目前在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]
在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]
定义方法:
int i//定义整形变量i
int i=1//定义整形变量i并初始化为1
定义常量:
const int i//编译错误,因为常量需要给予一个初值
const int i=1//定义常量i,值为1
Java定义常量:
final int i=1//定义常量i,值为1
参考资料来源:百度百科-INT (数据类型)
C语言不支持默认参数,不过可以用宏来模拟://---------------------------------------------------------------------------
#include <stdio.h>
#define DEFAULT 40 /*默认参数值*/
#define FUN(A) fun(#A##"-")/*用于实现默认参数的宏*/
int f(int n) /*用于实验默认参数的函数*/
{
return printf("%d\n",n)
}
int fun(const char *a)/*确定函数调用的函数,返回值类型要和实际需要调用的f()函数返回值类型一致*/
{
int n/*变量的类型要和f()函数参数的类型一样*/
if (a[0]=='-') n=DEFAULT
else sscanf(a,"%d",&n)
return f(n)
}
int main(void)
{
FUN()
FUN(67)
return 0
}
//---------------------------------------------------------------------------
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)