文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言详细讲解接续符和转义符的使用

2024-04-02 19:55

关注

一、接续符的意义

C语言中的接续符(\)是指示编译器行为的利器

下面看一段接续符的代码(代码1-1):

#in\
clud\
e <st\
dio.h>
in\
t m\
ain(\
)
{
pri\
ntf\
    (\
    "Hello AutumnZe.\n"
    )\
    ;  
ret\
urn 0;
}

可以看到上述代码写的很凌乱,但是可以正常编译运行,如下:

二、接续符的使用

所以说代码1-1可以写成:

#include <stdio.h>
 
int main()
{
printf    (    "Hello AutumnZe.\n"
    )    ;
    
return 0;
}

下面看一个接续符的应用程序:

#include<stdio.h>
 
#define SWAP(a,b)       \
{                       \
        int temp = a;   \
        a = b;          \
        b = temp;       \
}
 
int main()
{
    int a = 1;
    int b = 2;
    int c = 3;
    
    SWAP(a,b);
    
    printf("a = %d, b = %d\n", a, b);
    
    SWAP(b,c);
    
    printf("b = %d, c = %d\n", b, c);
    
    return 0;
}

可以看到,通过接续符来进行宏定义,代码看起来非常优美。下面为输出结果:

三、转义符的意义

C语言中的转义符(\)主要用于表示无回显字符,也可用于表示常规字符

\n回车换行
\t横向跳到下—制表位置
\v竖向跳格
\b退格
\r回车
\f走纸换页
\\反斜杠符"\"
\'单引号符
\a鸣铃
\ddd1~3位八进制数所代表的字符
\xhh1~2位十六进制数所代表的字符

四、转义符的使用

当反斜杠(\)作为转义符使用时必须出现在单引号或者双引号之间

如下:

下面看一段转义字符的使用示例:

#include <stdio.h>
 
int main()
{
    char enter = '\n';
    char* p = "\141\t\x62";
    printf("%s", p);
    printf("%c", enter);
    return 0;
}

141 的十进制表示为 97, 0x62 的十进制表示为 98,所以打印出来的结果如下:

五、转义符和其他的语法混合

下面是源码,看起来像一个小女孩的脸:

                                          #include<stdio.h>
                        intmain(intn,char**m){FILE*p,*q;int        A,k,a,r,i;char*d="P%"   "d\n%d\40%d"
                 "\n%d\n\00wb+",b[1024],y[]="yuriyurarararayuruyuri*daijiken**akkari~n**"
          "/y*u*k/riin<ty(uyr)g,aur,arr[a1r2a82*y2*/u*r{uyu}riOcyurhiyua**rrar+*arayra*="
       "yuruyurwiyuriyurara'rariayuruyuriyuriyu>rarararayuruy9uriyu3riyurar_aBrMaPrOaWy^?"
      "*]/f]`;hvroai<dp/f*i*s/<ii(f)a{tpguat<cahfaurh(+uf)a;f}vivn+tf/g*`*w/jmaa+i`ni(""i+k[>+b+i>++b++>l[rb";intu;for(i=0;i<101;i++)y[i*2]^="~hktrvg~dmG*eoa+%squ#l2"
     ":(wn\"1l))v?wM353{/Y;lgcGp`vedllwudvOK`cct~[|ju {stkjalor(stwvne\"gt\"yogYURUYURI"[
     i]^y[i*2+1]^4;p=(n>1&&(m[1][0]-'-'||m[1][1]  !='\0'))?fopen(m[1],y+298):stdin;
      q=(n<3||!(m[2][0]-'-'||m[2][1]))?stdout :fopen(m[2],d+14);if(!p||!q)
    return+printf("Can "  "not\x20open\40%s\40"    ""       "for\40%sing\n",m[!p?1:2],!p?"read":"writ");for  (   a=k=u= 0;y[u];  u=2    +u){y[k++   ]=y[u];}if((a=fread(b,1,1024,p) )>   2&& b[0]=='P' &&4==sscanf(b,d,&k,& A,&           i,  &r)&&        !   (k-6&&k -5)&&r==255){u=A;if(n>3){
u++;i++;}fprintf   (q,    d,k,           u      >>1,i>>1,r);u  = k-5?8:4;k=3;}else
  {(u)=+(    n+14>17)?8/4:8*5/
     4;}for(r=i=0  ;  ;){u*=6;u+=                (n>3?1:0);if    (y[u]&01)fputc(1*
      (r),q);if(y[u   ]&16)k=A;if                               (y[u]&2)k--;if(i==a){i=a=(u)*11
       &255;if(1&&0>=     (a=                                 fread(b,1,1024,p))&&
        ")]i>(w)-;} {                                         /i-f-(-m--M1-0.)<{"
         [ 8]==59                                       )break;i=0;}r=b[i++]
            ;u+=(+8&*
            (y+u))?(10-              r?4:2):(y[u]         &4)?(k?2:4):2;u=y[u]-(int)'`';}             fclose(          p);k= +fclose( q);
                return  k-                -1+  
                     (   -0x01        );       {;{    }}
                            ;                  ;}

下面为输出结果:

六、小结

C语言中的反斜杠 (\) 同时具有接续符和转义符的作用

到此这篇关于C语言 详细讲解接续符和转义符的使用的文章就介绍到这了,更多相关C语言 接续符内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯