刚发现C语言中数组还可以这么初始化

时间:2023-02-06 15:27:41
在水木的CProgramming版看到的:

刚发现C语言中数组还可以这么初始化char  str1[ 32 ];
刚发现C语言中数组还可以这么初始化刚发现C语言中数组还可以这么初始化
char  str2[ 32 ] = ... {0} ;
刚发现C语言中数组还可以这么初始化刚发现C语言中数组还可以这么初始化
char  str2[ 32 ] = ... {1} ;
刚发现C语言中数组还可以这么初始化


在上述三种数组初始化方式中:

   数组str1中的32个元素的值为未指定的随机值;
   数组str2中,32个元素的值均为0 ;
   数组str3中,str3[0]的值为1,其余31个元素的值为0;

以下是引用NetMD网友的解释:

“按照标准,聚合类型(数组、结构等)的初始化被定义如下:

    被指定初始化值的部分由初始化值初始化;
    未被指定初始化值的部分由T()方式初始化;


下面是测试程序和结果

刚发现C语言中数组还可以这么初始化# include <stdio.h>
刚发现C语言中数组还可以这么初始化#
include <stdlib.h>
刚发现C语言中数组还可以这么初始化#
include <string.h>
刚发现C语言中数组还可以这么初始化

刚发现C语言中数组还可以这么初始化int main (a 
, b)
刚发现C语言中数组还可以这么初始化
刚发现C语言中数组还可以这么初始化{
刚发现C语言中数组还可以这么初始化
刚发现C语言中数组还可以这么初始化   char str1[
32 ] = { 1 };
刚发现C语言中数组还可以这么初始化   char str2[
32 ] = { 0 };
刚发现C语言中数组还可以这么初始化
刚发现C语言中数组还可以这么初始化   int i;
刚发现C语言中数组还可以这么初始化   
for (i = 0 ; i < 32 ;i ++ )
刚发现C语言中数组还可以这么初始化        
printf ( " %d__ " , str1[i]);
刚发现C语言中数组还可以这么初始化   
printf ( " " );
刚发现C语言中数组还可以这么初始化
刚发现C语言中数组还可以这么初始化   
for (i = 0 ; i < 32 ;i ++ )
刚发现C语言中数组还可以这么初始化        
printf ( " %d__ " , str2[i]);
刚发现C语言中数组还可以这么初始化   
printf ( " " );
刚发现C语言中数组还可以这么初始化
刚发现C语言中数组还可以这么初始化}
刚发现C语言中数组还可以这么初始化

刚发现C语言中数组还可以这么初始化jekyll@ubuntu: ~/ prgramming$ . / a. out
刚发现C语言中数组还可以这么初始化1__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__
刚发现C语言中数组还可以这么初始化0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__0__
刚发现C语言中数组还可以这么初始化