生活随笔
收集整理的這篇文章主要介紹了
C语言进阶剖析 13 接续符和转义符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
接續符的意義
實例分析: 初探接續符
#
in\
clud\
e
<st\
dio
.h
>in\
t m\
ain(\
)
{
pri\
ntf\
(\
"Hello D.T.\n"\
);ret\
urn
0;
}
《
==》#include
<stdio
.h
>int
main()
{printf("Hello D.T.\n");return 0;
}
輸出:
Hello D.T.
接續符的使用
- 編譯器會將反斜杠\ 剔除 ,跟在反斜杠后面的字符自動接續到前一行
- 在接續’單詞’時,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格
- 接續符適合在宏代碼塊時使用
編程實驗:接續符的使用
{ \
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
);
}
輸出:
a = 2, b = 1
b = 3, c = 1
轉義符的意義
- 在 C 語言中的轉義符\主要用于表示無回顯字符,也可用于表示常規字符
名稱作用
| \n | 回車換行 |
| \t | 橫向跳到下一制表位置 |
| \v | 豎向跳格 |
| \b | 退格 |
| \r | 回車 |
| \f | 走紙換頁 |
| \\ | 反斜杠"" |
| \' | 單引號 |
| \a | 鳴鈴 |
| \ddd | 1~3位八進制所代表的字符 |
| \xhh | 1-2位十六進制所代表的字符 |
轉義符的使用
- 當反斜杠\作為轉義符使用時必須出現在單引號或者雙引號之間
實例分析: 轉義符使用實例
#include <stdio.h>int main()
{char enter
= '\n';char* p
= "\141\t\x62";printf("%s", p
);printf("%c", enter
);return 0;
}
輸出:
a b
小結
- C 語言中的反斜杠 \ 同時具有接續符和轉義符的作用
- 作為接續符使用時可直接出現在程序中
- 作為轉義符使用時需要出現在單引號或雙引號之間
??????? ■ 高手無招勝有招
??????? ???□ 獎項 : Best of Show
??????? ???□ 功能 : 處理三種文件格式(PGM、PPM和ASCII Art)的降采樣工具
??????? ???□ 作者 : Google 華裔工程師 Don Hsi-Yun Yang ▼
#include
<stdio
.h
>int
main(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";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] !='\0'))?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 " "not\x20open\40%s\40" "" "for\40%sing\n",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
); return k
- -1+ /*\' '-`*/( -0x01 ); {;{ }}; ;}
內容參考狄泰軟件學院系列課程,如有侵權,請聯系作者刪除!感謝~
總結
以上是生活随笔為你收集整理的C语言进阶剖析 13 接续符和转义符的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。