第13课 接续符和转义符

1. 接续符的意义:C语言中的接续符()是指示编译器行为的利器

【实例分析】初探接续符

使用接续符的例子 剔除接续符后的原码
#in
clud
e <st
dio.h>

in
t m
ain(
)
{
pri
ntf
    (
    "Hello World!n"
    )
    ;

ret
urn 0;
}
#include <stdio.h>

int main()
{

   printf("Hello World!n");

   return 0;
}

 

2. 接续符的使用

(1)编译器将反斜杠剔除,跟在反斜杠后面的字符自动接续到前一行

(2)在接续单词时,反斜杠之后不能有空格,反斜杠下一行之前也不能有空格

(3)接续符适合在宏定义代码块使用

【编程实验】接续符的应用

#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 = %dn", a, b);

    SWAP(b,c);

    printf("b = %d, c = %dn", b, c);

    return 0;
}

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

n

回车换行

t

横向跳到下一制表位置

v

竖向跳格

b

退格

r

回车

f

走纸换页

\

反斜杠符“”

'

单引号符

a

鸣铃

ddd

1~3位八进制数所表示的字符

xhh

1~2位十六进制数所表示的字符

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

  【实例分析】转义符使用实例

#include <stdio.h>

int main()
{
    char enter = 'n';

    char* p = "141tx62"; //141为a的ASCII的8进制数
                            //62为b的ASCII码的16进制数
    
    printf("%s", p);        //输出:a    b
    printf("%c", enter);    //换行效果

    return 0;
}

5. 小结:C语言中的反斜杠()同时具有接续符与转义符的作用

(1)作为接续符使用时可直接出现在程序中

(2)作为转义符使用时需出现在单引号或双引号之间

6. 高手无招胜有招

(1)奖项:Best of Show

(2)功能:处理三种文件格式(PGM、PPM和ASCII Art)的降采样工具

(3)作者:Google华裔工程师Don His-Yun Yang

第13课 接续符和转义符

//akari.c文件

                                       /*
                                      +
                                     +
                                    +
                                    +
                                    [         >i>n[t
                                     */   #include<stdio.h>
                        /*2w0,1m2,]_<n+a m+o>r>i>=>(['0n1'0)1;
                     */int/**/main(int/**/n,char**m){FILE*p,*q;int        A,k,a,r,i/*
                   #uinndcelfu_dset<rsitcdti_oa.nhs>i/_*/;char*d="P%"   "dn%d40%d"/**/
                 "n%dn0wb+",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";int/**/u;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]  !=''))?fopen(m[1],y+298):stdin;
      /*y/riynrt~(^w^)],]c+h+a+r+*+*[n>)+{>f+o<r<(-m]    =<2<5<64;}-]-(m+;yry[rm*])/[*
       */q=(n<3||!(m[2][0]-'-'||m[2][1]))?stdout /*]{     }[*/:fopen(m[2],d+14);if(!p||/*
       "]<<*-]>y++>u>>+r >+u+++y>--u---r>++i+++"  <)<      ;[>-m-.>a-.-i.++n.>[(w)*/!q/**/)
    return+printf("Can "  "notx20open40%s40"    ""       "for40%singn",m[!p?1:2],!p?/*
  o=82]5<<+(+3+1+&.(+  m  +-+1.)<)<|<|.6>4>-+(>    m-        &-1.9-2-)-|-|.28>-w-?-m.:>([28+
 */"read":"writ");for  (   a=k=u= 0;y[u];  u=2    +u){y[k++   ]=y[u];}if((a=fread(b,1,1024/*
,mY/R*Y"R*/,p/*U*/)/*          R*/ )>/*U{  */   2&& b/*Y*/[0]/*U*/=='P' &&4==/*"y*r/y)r}
*/sscanf(b,d,&k,& A,&           i,  &r)&&        !   (k-6&&k -5)&&r==255){u=A;if(n>3){/*
]&<1<6<?<m.-+1>3> +:+ .1>3+++     .   -m-)      -;.u+=++.1<0< <; f<o<r<(.;<([m(=)/8*/
u++;i++;}fprintf   (q,    d,k,           u      >>1,i>>1,r);u  = k-5?8:4;k=3;}else
  /*]>*/{(u)=/*{   p> >u  >t>-]s                >++(.yryr*/+(    n+14>17)?8/4:8*5/
     4;}for(r=i=0  ;  ;){u*=6;u+=                (n>3?1:0);if    (y[u]&01)fputc(/*
      <g-e<t.c>h.a r  -(-).)8+<1.                 >;+i.(<)<     <)+{+i.f>([180*/1*
      (r),q);if(y[u   ]&16)k=A;if                               (y[u]&2)k--;if(i/*
      ("^w^NAMORI; {   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/*
             49;7i(w)/;}             y}ru=*ri[        ,mc]o;n}trientuu ren (
             */]-(int)'`';}             fclose(          p);k= +fclose( q);
              /*] <*.na/m*o{ri{                       d;^w^;}  }^_^}}
               "   */   return  k-                -1+   /*'   '-`*/
                     (   -/*}/   */0x01        );       {;{    }}
                            ;           /*^w^*/        ;}

 

原文链接: https://www.cnblogs.com/5iedu/p/5321559.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    第13课 接续符和转义符

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/394570

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月3日 下午3:49
下一篇 2023年4月3日 下午3:49

相关推荐