复合字面量

复合字面量

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);

复合字面量是提供临时值的一种手段,具有块作用域。

posted @ 2021-08-19 15:32  攀Sir  阅读(211)  评论(0)    收藏  举报