網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
續(xù)接符
反斜杠"",他有兩種最常見的功能,一就是續(xù)航功能,二就是我們提到反斜杠就會(huì)很敏感的轉(zhuǎn)義字符。
if("1==a&&2==b&&3==c) { printf("hello\n"); }
有以上的代碼我們可以等價(jià)于
if("1==a&&\ 2==b&&\ 3==c) { printf("hello\n"); }
這里反斜線就起到了一個(gè)連接上下兩行的代碼,在咱看來(lái)是獨(dú)立的三行但在編譯器眼里這仨貨就是在同一排。設(shè)想一下當(dāng)我的條件足夠多時(shí)為了提高代碼可讀性,我們最好不擠在一排看著又臭又長(zhǎng),分占會(huì)顯得更加清新,所在大的工程文件里面我們經(jīng)常會(huì)使用續(xù)航符號(hào)來(lái)操作我們代碼的美觀。
注意:續(xù)航符在使用時(shí)要注意空格,續(xù)航符之前的空格是不存在影響的,但如果放在后面就不能編譯。
旋轉(zhuǎn)光標(biāo)
由我們系統(tǒng)方面的知識(shí)和C語(yǔ)言關(guān)鍵字基礎(chǔ),我們就能搞出來(lái)一個(gè)我們常見的旋轉(zhuǎn)光標(biāo):
int main() { int a = 0; const char *spot = "|/-\\"; while(1) { printf("[%c]\n",spot[a]); a++; Sleep(300); } }
效果如下:
單雙引號(hào)潛規(guī)則
char a= 'abc'; printf("%c\n",a);
我們來(lái)看看這個(gè)代碼的結(jié)果:
一個(gè)問(wèn)題,我們腦海里學(xué)習(xí)的知識(shí)告訴我們char類型是一個(gè)字符,但上面代碼不僅不報(bào)錯(cuò)還能完完全全打印出來(lái),我把內(nèi)容換成 ‘a(chǎn)bcd’ 依然能打印出一個(gè) d ,再加一個(gè) e 時(shí)就會(huì)開始報(bào)錯(cuò)了,我們就針對(duì)這個(gè)打印 ‘a(chǎn)bc’ 的現(xiàn)象來(lái)看看
我們直接對(duì)比一下他的字符長(zhǎng)度:
擦嘞,為啥 ‘1’ 會(huì)是4個(gè)字節(jié)大小?其實(shí)在C99中,這里的 a 叫做整型字符常量,本質(zhì)上是被編譯器看作int類型,所以其實(shí)就是在發(fā)生著一個(gè)截?cái)喱F(xiàn)象,我們對(duì) char 類型的認(rèn)知并沒有毛病,只是這里一直是在將4個(gè)字節(jié)的數(shù)據(jù)保存進(jìn)一個(gè) char 類型里面。
當(dāng)然,這種認(rèn)知也只是存在與C語(yǔ)言里,在C艸中仍然是被解釋成一個(gè)字節(jié),這也能解釋為什么咱四個(gè)字節(jié)以內(nèi)都能跑。
短路
很簡(jiǎn)單,說(shuō)的就是一個(gè)邏輯與 (&&),含義就是一個(gè)條件不通過(guò)就不需要再看后續(xù)的條件的情況就是短路。
ASCII碼剛需
為什么咱計(jì)算機(jī)要搞這么多花里胡哨的符號(hào)呢??jī)?nèi)存里存的都是二進(jìn)制數(shù)據(jù),即0和1的一串序列,這時(shí)所謂的計(jì)算機(jī)語(yǔ)言,但作為一個(gè)person來(lái)講,咱最擅長(zhǎng)的不是看0和1,是我們能直觀理解的語(yǔ)句。
我們的計(jì)算器程序,在計(jì)算結(jié)果后如果返回的不是十進(jìn)制數(shù)而是一個(gè)二進(jìn)制序列是對(duì)我們極為不友好的,特別是不熟悉二進(jìn)制的普通用戶。所以程序會(huì)存在一個(gè)映射,這個(gè)映射機(jī)制就是給一個(gè)二進(jìn)制序列安排一個(gè)人為設(shè)計(jì)的符號(hào)或圖形,比如我屏幕上一個(gè)“1234”,在我們眼中它是一個(gè)整型1234,但在計(jì)算機(jī)眼里它就是四個(gè)字符。
所以為什么我們手機(jī)啥的能更換語(yǔ)言系統(tǒng),英文,簡(jiǎn)體中文,繁體中文……,其本質(zhì)原理就是改了一張映射表。
原文鏈接:https://blog.csdn.net/qq_61500888/article/details/122144106
相關(guān)推薦
- 2022-07-16 from server (NotFound): pods “XXX“ not found
- 2022-01-16 jQuery 核心函數(shù)css和平滑滾動(dòng)頂部
- 2021-11-27 關(guān)于UDP服務(wù)器客戶端編程流程介紹_C 語(yǔ)言
- 2022-11-10 pytorch人工智能之torch.gather算子用法示例_python
- 2022-08-15 springboot實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換
- 2022-04-26 EF?Core通過(guò)顯式編譯提高查詢性能_實(shí)用技巧
- 2022-03-20 Android四大組件之Activity詳細(xì)介紹_Android
- 2022-05-12 C語(yǔ)言的數(shù)組指針與函數(shù)指針詳解_C 語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支