接續符的意義
- C 語言中的接續符 是指示編譯器行為的利器
例項分析: 初探接續符
#in
clud
e <st
dio.h>
in
t m
ain(
)
{
pri
ntf
(
"Hello D.T.
"
);
ret
urn 0;
}
《==》
#include <stdio.h>
int main()
{
printf("Hello D.T.
");
return 0;
}
輸出:
Hello D.T.
接續符的使用
- 編譯器會將反斜槓 剔除 ,跟在反斜槓後面的字元自動接續到前一行
- 在接續`單詞`時,反斜槓之後不能有空格,反斜槓的下一行之前也不能有空格
- 接續符適合在巨集程式碼塊時使用
程式設計實驗:接續符的使用
#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
",a, b);
SWAP(b, c);
printf("b = %d, c = %d
",b, c);
}
輸出:
a = 2, b = 1
b = 3, c = 1
轉義符的意義
- 在 C 語言中的轉義符 主要用於表示無回顯字元,也可用於表示常規字元
回車換行 | |
橫向跳到下一製表位置 | |
v | 豎向跳格 |
退格 | |
回車 | |
f | 走紙換頁 |
\ | 反斜槓”” |
` | 單引號 |
a | 鳴鈴 |
ddd | 1~3位八進位制所代表的字元 |
xhh | 1-2位十六進位制所代表的字元 |
轉義符的使用
- 當反斜槓 作為轉義符使用時必須出現在單引號或者雙引號之間
例項分析: 轉義符使用例項
#include <stdio.h>
int main()
{
char enter = `
`;
char* p = "141 x62";
printf("%s", p);
printf("%c", enter);
return 0;
}
輸出:
a b
小結
C 語言中的反斜槓 同時具有接續符和轉義符的作用
- 作為接續符使用時可直接出現在程式中
- 作為轉義符使用時需要出現在單引號或雙引號之間
高手無招勝有招
- 獎項 : Best of Show
- 功能 : 處理三種檔案格式(PGM、PPM和ASCII Art)的降取樣工具
- 作者 : Google 華裔工程師 Don Hsi-Yun Yang
/*
+
+
+
+
[ >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%" "d
%d40%d"/**/
"
%d
0wb+",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%sing
",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^*/ ;}
以上內容參考狄泰軟體學院系列課程,請大家保護原創!