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