枚举变量
声明枚举类型变量,未赋值时,它的默认值分全局和局部两种情况。
全局变量默认为0,因为枚举类型说到底是整型。
局部变量则是随机值。
下面的是测试:
day,N => 全局变量,value = 0
其他 => 局部变量,value随机。
代码如下:
#include <stdio.h>
#include <stdlib.h>
enum week
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
enum RGB
{
R=20, G ,B
} N;
int main()
{
enum week dd;
enum RGB dh;
printf("day:%d\nN:%d\ndd:%d\ndh:%d\n",day,N,dd,dh);
return 0;
}
运行截图:
数组变量
至于数组变量,众所周知,数组名即是地址,如果是索引具体的值,那也分全局和局部变量中情况。
测试如下:
a, &a,&a[0]
皆为地址,地址的值自然不是我们可控的。
a[0]
=> 0,arr[0]
=> 62(随机),和我们熟知一样,全局变量默认值为0,局部变量默认随机分配。
附代码:
#include <stdio.h>
#include <stdlib.h>
int a[4];
int main()
{
printf("a:%d\n",a);
printf("&a:%d\n",&a);
printf("a[0]:%d\n",a[0]);
printf("&a[0]:%d\n",&a[0]);
printf("=======================================\n");
int arr[3];
printf("arr:%d\n",arr);
printf("&arr:%d\n",&arr);
printf("arr[0]:%d\n",arr[0]);
printf("&arr[0]:%d\n",&arr[0]);
return 0;
}