复合字面量
复合字面量,是除了符号常量之外的常量,例如:5是int的字面常量,1.2是double的字面常量,'a'是char的字面常量,"hello"是字符串的字面常量。一般来说,字符常量可以方便初始化变量,而且可以用于相应运算。其中较为特殊的还有数组的复合字面常量。形如:
(int [2]){1, 2}我们可以通过这样的字面常量来初始化数组:
int a[2] = {1, 3};还有可以使用这样常量作为需要的数组参数,这时候就需要标注清楚数组的类型名,对于数组内元素都已知情况下,我们也可以省略数组的元素数目:
(int []){1, 2, 5, 7, 10},编译器将会将其识别为int [5]类型数组。但是符合字面量作为一种匿名类型,我们必须在创建时候使用,否则就将会被废弃,我们可以通过一个指针来接受它的地址(它本身就作为它首元素的地址,对于C语言的各种类型的数组都是如此):
int *a = (int []){1, 2, 3, 5, 10, 15};
我们来观察一些用例
浙公网安备 33010602011771号