C语言复合字面量应该如何使用?

本文介绍了C语言中复合字面量的概念和使用方法,包括作为数组参数、应用于二维数组和结构体的情况。复合字面量允许在运行时创建匿名数组和结构体,提供了一种简洁的初始化方式。文章还对比了C和C++中复合字面量的区别,并给出了相关示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关注、星标公众号,直达精彩内容

来源:技术让梦想更伟大

作者:李肖遥

C语言中有没有见过(int [2]){19,20}或者int (*pt2)[4]的使用方法,字面上可能不好理解,这是C99之后才新增的知识点,名为复合字面量(Compound Literals),一旦熟悉使用,便会体会到它简洁而强大的表达。

什么是复合字面量?

假设给带int类型的形参函数传递一个值,可以传递int类型的变量,也可以传递int类型常量,但是对于带数组形参的函数则不一样,可以传递数组,但是不支持传递数组常量,由此C99新增了复合字面量的用法,字面量是指除符号常量外的常量。

例如10是int的类型的字面量,10.24是double类型的字面量,“lixiaoyao”是字符串的字面量等,如果有数组或者结构体的字面量,这样使用起来会更方便。

对于数组

数组的复合字面量和数组初始化列表差不多,前面使用括号括起来的类型名,例如下面是一个普通的数组声明。

int age[

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值