C语言数组的自动初始化 有没什么模式(类似于享元模式之类)?0
Demo_1:
#include
int main()
{
int a[5]={6,2,3,4,5};
int b[5];
int d[6]={0};
printf("数组d中的内容*****\n");
for(int j=0;j<6;j++)
printf("%d\t",d[j]);
printf("\n");
printf("数组a中的内容*****\n");
for(int i=0;i<5;i++)
printf("%d\t",a[i]);
printf("\n");
printf("数组b中的内容*****\n");
for(int n=0;n<5;n++)
printf("%d\t",b[n]);
printf("\n");
printf("数组b中的内容*****\n");
for(int k=0;k<5;k++)
printf("%d\t",b[k]);
return 0;
}
/*
----------------运行结果-------------------
数组d中的内容*****
0 0 0 0 0 0
数组a中的内容*****
6 2 3 4 5
数组b中的内容*****
6 2 3 4 5
数组b中的内容*****
6 2 3 4 5 Press any key to continue
*/
Demo_2
#include
void show()
{
int c[5];
printf("数组c中的内容*****\n");
for(int j=0;j<5;j++)
printf("%d\t",c[j]);
printf("\n");
}
int main()
{
int a[5];
int b[5];
int d[6];
printf("数组d中的内容*****\n");
for(int j=0;j<6;j++)
printf("%d\t",d[j]);
printf("\n");
printf("数组a中的内容*****\n");
for(int i=0;i<5;i++)
printf("%d\t",a[i]);
printf("\n");
printf("数组b中的内容*****\n");
for(int n=0;n<5;n++)
printf("%d\t",b[n]);
printf("\n");
show();
printf("数组b中的内容*****\n");
for(int k=0;k<5;k++)
printf("%d\t",b[k]);
return 0;
}
/*
----------------运行结果-------------------
数组d中的内容*****
4201441 2048 4 0 4201628 4222976
数组a中的内容*****
4201441 2048 4 0 4201628
数组b中的内容*****
4201441 2048 4 0 4201628
数组c中的内容*****
1244972 4223160 0 1245000 2147303424
数组b中的内容*****
4201441 2048 4 0 4201628 Press any key to continue
*/
在Demo_2中并不会自动初始化为0,而在Demo_1中当有一个数组有有效值时,为初始化的数组也都自动初始化为存在有效值的数组的值。这里面是不是有什么设计模式之类的呢?