复合字面量
复合字面量
C99新增了复合字面量。字面量是除符号常量外的常量。例如,5是int类型常量,3.14是double类型常量,'y'是字符常量, "hello"是字符串字面量。那么我们是不是还可以弄一个代表数组和结构内容的复合字面量呢!
这是一个数组的声明,它和复合字面量有着类似的初始化列表。
int a[5]={0,1,2,3,4};
下面这是一个复合字面量的声明:
(int [5]){0,1,2,3,4};
(类型名){参数列表};
int [5]是复合字面量的类型名,内含5个元素,还可以这样声明复合字面量:
(int []){0,1,2,3,4};
复合字面量是匿名的,我们无法先创建、后使用,必须在创建的同时使用。
可以使用指针记录复合字面量的地址
int *p=(int [5]){0,1,2,3,4};
还可以把复合字面量作为函数的实参
sum((int [5]){0,1,2,3,4},5);
复合字面量是提供临时值的一种手段,具有块作用域。

浙公网安备 33010602011771号