字符串常量定义时的换行问题

C语言编译器允许使用反斜杠进行续行,这在定义长字符串或跨行宏时非常有用。不使用反斜杠时,多行字符串会引发编译警告。通过反斜杠或相邻字符串的方式,可以避免多余的空格并简洁地初始化字符数组。例如,`printf`函数中的多行参数也会被自动连接成一个字符串。
摘要由CSDN通过智能技术生成
    如果我们在一行代码的行尾放置一个反斜杠,c语言编译器会忽略行尾的换行符, 而把下一行的内容也算作是本行的内容。这里反斜杠起到了续行的作用。
    构建较长的字符串是续行的常见用途, 还有一个作用是定义跨行的宏。
    如果我们不使用反斜杠,当我们试图初始化一个跨多行的字符串是,c语言编译器就会发出警告。如下面的语句所示:
char letters[] = {"abcdefghijklmnopqrstuvwxyz
  ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
      但是我们在行尾使用反斜杠, 那么就可以吧字符串常量跨行书写, 如下所示:
      char letters[] = {"abcdefghijklmnopqrstuvwxyz/
ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
    从续行的开始输入字符串,可以避免在整个字符串中加入多于的空格。综上所述,上面的语句定义了一个字符数组letters,
并将其初始化为如下的初值:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  
   c语言中还有一中拆分字符串的方法,那就是将其写个多个相邻的字符串。这些字符串之间用0个或者多个 空白、制作符以及换行符隔开。c语言编译器会自动将这些字符串连接起来。因此,下面的表达式:"one"  "tow" "three" 实际上相当于 "onetwothree".
因此前面跨行的初始化语句也可以用下面的形式完成:
char letters[] 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值