C語言初識變量常量字符串轉(zhuǎn)義符及注釋方式簡介
一:變量與常量
1.1:變量
生活中有些值是可變的(比如年齡,體重,薪資)。
下面我們舉一個簡單的例子表示變量的創(chuàng)建與使用。
1.1.1:變量的分類
局部變量
全局變量
這里主要介紹一下全局變量與局部變量作用域與生命周期。
作用域:通俗來講,也就是一個變量在哪里可以使用,哪里就是他的作用域。
生命周期:也就是從創(chuàng)建到銷毀的一個過程。
局部變量的作用域:是變量所在的局部范圍。
全局變量的作用域:是整個項目工程。
局部變量的生命周期:進(jìn)入作用域生命周期開始,出作用域生命周期結(jié)束。
全局變量的生命周期:整個程序的生命周期,也就是main函數(shù)的生命周期。
下面我們用個表格來總結(jié)一下
注:此處的儲存位置可暫時不看,后續(xù)會詳細(xì)介紹。
1.1.2:變量的優(yōu)先性
遵循“就近原則”,意思是如果全局變量和局部變量同名時,在函數(shù)內(nèi)還是會局部變量起作用。如下:
1.2:常量
C語言中,常量與變量的定義有所差別,常見的有字面常量,#define定義,枚舉常量,const修飾的常量。
1.2.1:#define定義
通常我們寫程序時當(dāng)一個常數(shù)多次在程序中使用時,如果我們每次都把數(shù)字寫入程序,當(dāng)我們需要改變這個數(shù)據(jù)時,那么就需要去修改每一處,非常的麻煩,那么這時候我們就可以定義一個define常量。
例如:#define MAX 100
1.2.2:枚舉常量
這里枚舉常量只做簡要介紹,后面作者會詳細(xì)介紹。
這里提醒一下
- 當(dāng)我們定義枚舉類型變量時,只能用枚舉的可能取值給變量賦值。
- 枚舉常量內(nèi)部有默認(rèn)值,如果無特殊賦值,則從0開始,依次+1。
1.2.3:const修飾的常量
我們定義變量時,可以在類型前加const,此時定義的變量具有常屬性,偽常量,不可定義數(shù)組。
const定義的常量的修改:
- 全局變量:不可修改
- 局部變量:不可以直接修改 。
注:關(guān)于此處內(nèi)容后續(xù)詳細(xì)介紹,盡情期待。
二:字符串介紹
“hello world!\n”這種由雙引號引起來的一串字符稱為字符串字面值,簡稱字符串。
下面我們看一個代碼:
思考為何ch2打印出來會是亂碼?
這里我們介紹字符串的標(biāo)志結(jié)束符'\0', 表示字符串結(jié)束。
ch2表示一個字符數(shù)組,沒有定義數(shù)組大小時,后面的'\0'不知在何處,所以打印出來時后面會是亂碼。我們可以調(diào)試查看一下ch1和ch2de1區(qū)別。
可見,ch1中有'a', ‘b', ‘c', ‘\0', 而ch2只有'a', ‘b', ‘c',無結(jié)束標(biāo)識符。
當(dāng)我們限定一下CH2大小時,這時打印就正確了:
這時與數(shù)組的不完全初始化有關(guān),當(dāng)限定大小時,后面不完全初始化為數(shù)字0,也就相當(dāng)于'\0'的作用。
下面我們看兩個相等變換:
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'}
如果一個字符數(shù)組有'\0', 那么就可以理解為一個字符串,也就是說字符串是字符數(shù)組的特例,字符串末尾隱藏一個'\0', 是字符串的結(jié)束標(biāo)志。
三:轉(zhuǎn)義字符的介紹
當(dāng)我們要在屏幕上打印一個目錄:C:\code\test.c時,我們需要怎樣寫代碼?
先看一個錯誤代碼:
我們可以看出第一種打印是錯誤的,原因是\t被轉(zhuǎn)譯成一個水平制表符,所以我們要打印時需要把目錄中的''進(jìn)行轉(zhuǎn)義。
我們再介紹兩個特殊的轉(zhuǎn)義字符:
\ddd:ddd表示1~3個八進(jìn)制的數(shù)字。
\xdd:dd表示2個十六進(jìn)制數(shù)字。
下面我們用代碼來驗證:
原理:\130此時表示把130轉(zhuǎn)換成十進(jìn)制,這個十進(jìn)制數(shù)代表的ASC碼對應(yīng)的字符。
三:注釋方式的介紹
代碼中有不需要的代碼可以直接刪除,也可以注釋掉
代碼中有些難懂的代碼,可以加一些注釋文字
注釋有兩種風(fēng)格:
C語言的注釋風(fēng)格 /※xxxxxxxxxxxxxxxxxx※/
缺陷:不可以嵌套注釋,C99之前的C語言的注釋風(fēng)格。
C++的注釋風(fēng)格 //xxxxxxxxxxxxxxxxx
優(yōu)點(diǎn):可以注釋多行也可以注釋一行,C99之后引入的注釋風(fēng)格。
OK!!!觀眾老爺們,這里只是C語言的入門知識,如果朋友們覺得有一點(diǎn)點(diǎn)作用的話,希望朋友們能夠給予小菜鳥一點(diǎn)支持!后續(xù)繼續(xù)給朋友們帶來更好的博文,還希望朋友們能夠繼續(xù)關(guān)注,小菜鳥致力于把自己的學(xué)習(xí)經(jīng)驗與個人理解更多的分享給大家,望大家喜歡與指正,希望大家以后多多支持腳本之家!
相關(guān)文章
C++使用FFmpeg實現(xiàn)YUV數(shù)據(jù)編碼轉(zhuǎn)視頻文件
這篇文章主要介紹了C++如何使用FFmpeg實現(xiàn)把一個YUV原始視頻數(shù)據(jù)(時間序列圖像)經(jīng)過h264編碼為視頻碼流,然后在使用mp4封裝格式封裝,感興趣的可以了解一下2023-06-06C++實現(xiàn)LeetCode數(shù)組練習(xí)題
這篇文章主要介紹了C++實現(xiàn)LeetCode的幾道數(shù)組練習(xí)題,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08詳解C/C++ Linux出錯處理函數(shù)(strerror與perror)的使用
我們知道,系統(tǒng)函數(shù)調(diào)用不能保證每次都成功,必須進(jìn)行出錯處理,這樣一方面可以保證程序邏輯正常,另一方面可以迅速得到故障信息。本文主要為大家介紹兩個出錯處理函數(shù)(strerror、perror)的使用,需要的可以參考一下2023-01-01