c语言变量初始化的方式
发布网友
发布时间:2022-04-25 23:43
我来回答
共5个回答
热心网友
时间:2023-10-18 12:03
变量的初始化就是在定义变量的时候,直接对变量进行赋值操作。
初始化的方式一般有如下两种:
1、直接对变量进行赋予常量数值进行初始化;
2、通过同类型变量进行初始化。
举例说明如下:
// 以下属于第1种初始化方式
int a1=5; // 整型变量的初始化
int b1[]={1,2,3,4}; // 整型数组的初始化
char str1[]="abcd"; // 字符数组的初始化
// 以下属于第2种初始化方式
int a2 = a1; // 整型变量的初始化
int b2[4] = b1; // 整型数组的初始化
char str2[4] = str1;// 字符数组的初始化
char *p = str1; // 字符指针的初始化
热心网友
时间:2023-10-18 12:04
全局变量的初始化 对于不同编译单位的全局变量,其初始化的顺序没有任何的保证,因此对不同编译单位里的全局变量,在它们的初始化顺序之间建立依赖性都是不明智的。 此外也没办法捕捉到全局变量初始化抛出的异常,一般来说要减少全局变量的使用,特别是*那些要求复杂初始化的全局变量。
1,尽量不用全局变量
2,用静态变量,通过访问器进行访问 例如:全局变量
int a = 5;
int b = a;
如果a,和b定义在同一个文件里,那没什么问题,结果b等于5.
如果a和b定义在不同文件里,就不能保证b也等于5,也就是说不能保证a先初始化. 事实上,除了在同一个文件定义的全局对象的初始化是按照定义次序来进行的之外,其他全局或静态变量之间的初始化次序没有任何保障。解决这种问题的方法是不直接使用全局变量,而改用一个包装函数来访问,例如
int get_a()
{
static int a = 5;
return a;
}
int get_b()
{
static int b = get_a();
return b;
}
热心网友
时间:2023-10-18 12:04
这个就只有二种,一种、在定义是就初始化 二种、就是先定义,在初始化
热心网友
时间:2023-10-18 12:05
在程序中自己定义副初值 或者在程序的开头定义撒
热心网友
时间:2023-10-18 12:05
多看看书吧 已发到你邮箱