C語(yǔ)言初識(shí)變量常量字符串轉(zhuǎn)義符及注釋方式簡(jiǎn)介
一:變量與常量
1.1:變量
生活中有些值是可變的(比如年齡,體重,薪資)。
下面我們舉一個(gè)簡(jiǎn)單的例子表示變量的創(chuàng)建與使用。

1.1.1:變量的分類(lèi)
局部變量
全局變量
這里主要介紹一下全局變量與局部變量作用域與生命周期。
作用域:通俗來(lái)講,也就是一個(gè)變量在哪里可以使用,哪里就是他的作用域。
生命周期:也就是從創(chuàng)建到銷(xiāo)毀的一個(gè)過(guò)程。
局部變量的作用域:是變量所在的局部范圍。
全局變量的作用域:是整個(gè)項(xiàng)目工程。
局部變量的生命周期:進(jìn)入作用域生命周期開(kāi)始,出作用域生命周期結(jié)束。
全局變量的生命周期:整個(gè)程序的生命周期,也就是main函數(shù)的生命周期。
下面我們用個(gè)表格來(lái)總結(jié)一下

注:此處的儲(chǔ)存位置可暫時(shí)不看,后續(xù)會(huì)詳細(xì)介紹。
1.1.2:變量的優(yōu)先性
遵循“就近原則”,意思是如果全局變量和局部變量同名時(shí),在函數(shù)內(nèi)還是會(huì)局部變量起作用。如下:

1.2:常量
C語(yǔ)言中,常量與變量的定義有所差別,常見(jiàn)的有字面常量,#define定義,枚舉常量,const修飾的常量。
1.2.1:#define定義
通常我們寫(xiě)程序時(shí)當(dāng)一個(gè)常數(shù)多次在程序中使用時(shí),如果我們每次都把數(shù)字寫(xiě)入程序,當(dāng)我們需要改變這個(gè)數(shù)據(jù)時(shí),那么就需要去修改每一處,非常的麻煩,那么這時(shí)候我們就可以定義一個(gè)define常量。
例如:#define MAX 100

1.2.2:枚舉常量
這里枚舉常量只做簡(jiǎn)要介紹,后面作者會(huì)詳細(xì)介紹。

這里提醒一下
- 當(dāng)我們定義枚舉類(lèi)型變量時(shí),只能用枚舉的可能取值給變量賦值。
- 枚舉常量?jī)?nèi)部有默認(rèn)值,如果無(wú)特殊賦值,則從0開(kāi)始,依次+1。
1.2.3:const修飾的常量
我們定義變量時(shí),可以在類(lèi)型前加const,此時(shí)定義的變量具有常屬性,偽常量,不可定義數(shù)組。
const定義的常量的修改:
- 全局變量:不可修改
- 局部變量:不可以直接修改 。
注:關(guān)于此處內(nèi)容后續(xù)詳細(xì)介紹,盡情期待。
二:字符串介紹
“hello world!\n”這種由雙引號(hào)引起來(lái)的一串字符稱為字符串字面值,簡(jiǎn)稱字符串。
下面我們看一個(gè)代碼:

思考為何ch2打印出來(lái)會(huì)是亂碼?
這里我們介紹字符串的標(biāo)志結(jié)束符'\0', 表示字符串結(jié)束。
ch2表示一個(gè)字符數(shù)組,沒(méi)有定義數(shù)組大小時(shí),后面的'\0'不知在何處,所以打印出來(lái)時(shí)后面會(huì)是亂碼。我們可以調(diào)試查看一下ch1和ch2de1區(qū)別。

可見(jiàn),ch1中有'a', ‘b', ‘c', ‘\0', 而ch2只有'a', ‘b', ‘c',無(wú)結(jié)束標(biāo)識(shí)符。
當(dāng)我們限定一下CH2大小時(shí),這時(shí)打印就正確了:

這時(shí)與數(shù)組的不完全初始化有關(guān),當(dāng)限定大小時(shí),后面不完全初始化為數(shù)字0,也就相當(dāng)于'\0'的作用。
下面我們看兩個(gè)相等變換:
char arr[] = {‘h', ‘e', ‘l', ‘l', ‘o', ‘\0'}; == char arr[] = “hello”;
char arr[] = {‘h', ‘e', ‘l', ‘l', ‘o', ‘\0'} = char arr[6] = {‘h', ‘e', ‘l', ‘l', ‘o'}
如果一個(gè)字符數(shù)組有'\0', 那么就可以理解為一個(gè)字符串,也就是說(shuō)字符串是字符數(shù)組的特例,字符串末尾隱藏一個(gè)'\0', 是字符串的結(jié)束標(biāo)志。
三:轉(zhuǎn)義字符的介紹
當(dāng)我們要在屏幕上打印一個(gè)目錄:C:\code\test.c時(shí),我們需要怎樣寫(xiě)代碼?
先看一個(gè)錯(cuò)誤代碼:

我們可以看出第一種打印是錯(cuò)誤的,原因是\t被轉(zhuǎn)譯成一個(gè)水平制表符,所以我們要打印時(shí)需要把目錄中的''進(jìn)行轉(zhuǎn)義。
我們?cè)俳榻B兩個(gè)特殊的轉(zhuǎn)義字符:
\ddd:ddd表示1~3個(gè)八進(jìn)制的數(shù)字。
\xdd:dd表示2個(gè)十六進(jìn)制數(shù)字。
下面我們用代碼來(lái)驗(yàn)證:

原理:\130此時(shí)表示把130轉(zhuǎn)換成十進(jìn)制,這個(gè)十進(jìn)制數(shù)代表的ASC碼對(duì)應(yīng)的字符。
三:注釋方式的介紹
代碼中有不需要的代碼可以直接刪除,也可以注釋掉
代碼中有些難懂的代碼,可以加一些注釋文字
注釋有兩種風(fēng)格:
C語(yǔ)言的注釋風(fēng)格 /※xxxxxxxxxxxxxxxxxx※/
缺陷:不可以嵌套注釋?zhuān)珻99之前的C語(yǔ)言的注釋風(fēng)格。
C++的注釋風(fēng)格 //xxxxxxxxxxxxxxxxx
優(yōu)點(diǎn):可以注釋多行也可以注釋一行,C99之后引入的注釋風(fēng)格。
OK!!!觀眾老爺們,這里只是C語(yǔ)言的入門(mén)知識(shí),如果朋友們覺(jué)得有一點(diǎn)點(diǎn)作用的話,希望朋友們能夠給予小菜鳥(niǎo)一點(diǎn)支持!后續(xù)繼續(xù)給朋友們帶來(lái)更好的博文,還希望朋友們能夠繼續(xù)關(guān)注,小菜鳥(niǎo)致力于把自己的學(xué)習(xí)經(jīng)驗(yàn)與個(gè)人理解更多的分享給大家,望大家喜歡與指正,希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言深入探究動(dòng)態(tài)規(guī)劃之線性DP
線性動(dòng)態(tài)規(guī)劃,是較常見(jiàn)的一類(lèi)動(dòng)態(tài)規(guī)劃問(wèn)題,其是在線性結(jié)構(gòu)上進(jìn)行狀態(tài)轉(zhuǎn)移,這類(lèi)問(wèn)題不像背包問(wèn)題、區(qū)間DP等有固定的模板,線性動(dòng)態(tài)規(guī)劃的目標(biāo)函數(shù)為特定變量的線性函數(shù),約束是這些變量的線性不等式或等式,目的是求目標(biāo)函數(shù)的最大值或最小值2022-04-04
C++實(shí)現(xiàn)學(xué)校人員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)校人員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配
C++ 不允許變量重名,但是允許多個(gè)函數(shù)取相同的名字,只要參數(shù)表不同即可,這叫作函數(shù)的重載,下面這篇文章主要給大家介紹了關(guān)于C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配的相關(guān)資料,需要的朋友可以參考下2019-01-01
C++11 模板參數(shù)的“右值引用”是轉(zhuǎn)發(fā)引用嗎
這篇文章主要介紹了C++11 模板參數(shù)的“右值引用”是轉(zhuǎn)發(fā)引用嗎,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Protocol Buffer技術(shù)深入理解(C++實(shí)例)
C++實(shí)例Protocol Buffer技術(shù)詳解,感興趣的朋友可以了解下2013-01-01
C++使用string的大數(shù)快速模冪運(yùn)算(6)
這篇文章主要為大家詳細(xì)介紹了C++使用string的大數(shù)快速模冪運(yùn)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
C語(yǔ)言 詳細(xì)講解數(shù)組參數(shù)與指針參數(shù)
這篇文章主要介紹了C語(yǔ)言中數(shù)組參數(shù)與指針參數(shù)的分析,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04

