C語言初識變量常量字符串轉義符及註釋方式簡介
一:變量與常量
1.1:變量
生活中有些值是可變的(比如年齡,體重,薪資)。
下面我們舉一個簡單的例子表示變量的創建與使用。
1.1.1:變量的分類
局部變量
全局變量
這裡主要介紹一下全局變量與局部變量作用域與生命周期。
作用域:通俗來講,也就是一個變量在哪裡可以使用,哪裡就是他的作用域。
生命周期:也就是從創建到銷毀的一個過程。
局部變量的作用域:是變量所在的局部范圍。
全局變量的作用域:是整個項目工程。
局部變量的生命周期:進入作用域生命周期開始,出作用域生命周期結束。
全局變量的生命周期:整個程序的生命周期,也就是main函數的生命周期。
下面我們用個表格來總結一下
註:此處的儲存位置可暫時不看,後續會詳細介紹。
1.1.2:變量的優先性
遵循“就近原則”,意思是如果全局變量和局部變量同名時,在函數內還是會局部變量起作用。如下:
1.2:常量
C語言中,常量與變量的定義有所差別,常見的有字面常量,#define定義,枚舉常量,const修飾的常量。
1.2.1:#define定義
通常我們寫程序時當一個常數多次在程序中使用時,如果我們每次都把數字寫入程序,當我們需要改變這個數據時,那麼就需要去修改每一處,非常的麻煩,那麼這時候我們就可以定義一個define常量。
例如:#define MAX 100
1.2.2:枚舉常量
這裡枚舉常量隻做簡要介紹,後面作者會詳細介紹。
這裡提醒一下
- 當我們定義枚舉類型變量時,隻能用枚舉的可能取值給變量賦值。
- 枚舉常量內部有默認值,如果無特殊賦值,則從0開始,依次+1。
1.2.3:const修飾的常量
我們定義變量時,可以在類型前加const,此時定義的變量具有常屬性,偽常量,不可定義數組。
const定義的常量的修改:
- 全局變量:不可修改
- 局部變量:不可以直接修改 。
註:關於此處內容後續詳細介紹,盡情期待。
二:字符串介紹
“hello world!\n”這種由雙引號引起來的一串字符稱為字符串字面值,簡稱字符串。
下面我們看一個代碼:
思考為何ch2打印出來會是亂碼?
這裡我們介紹字符串的標志結束符’\0′, 表示字符串結束。
ch2表示一個字符數組,沒有定義數組大小時,後面的’\0’不知在何處,所以打印出來時後面會是亂碼。我們可以調試查看一下ch1和ch2de1區別。
可見,ch1中有’a’, ‘b’, ‘c’, ‘\0′, 而ch2隻有’a’, ‘b’, ‘c’,無結束標識符。
當我們限定一下CH2大小時,這時打印就正確瞭:
這時與數組的不完全初始化有關,當限定大小時,後面不完全初始化為數字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’}
如果一個字符數組有’\0’, 那麼就可以理解為一個字符串,也就是說字符串是字符數組的特例,字符串末尾隱藏一個’\0’, 是字符串的結束標志。
三:轉義字符的介紹
當我們要在屏幕上打印一個目錄:C:\code\test.c時,我們需要怎樣寫代碼?
先看一個錯誤代碼:
我們可以看出第一種打印是錯誤的,原因是\t被轉譯成一個水平制表符,所以我們要打印時需要把目錄中的”進行轉義。
我們再介紹兩個特殊的轉義字符:
\ddd:ddd表示1~3個八進制的數字。
\xdd:dd表示2個十六進制數字。
下面我們用代碼來驗證:
原理:\130此時表示把130轉換成十進制,這個十進制數代表的ASC碼對應的字符。
三:註釋方式的介紹
代碼中有不需要的代碼可以直接刪除,也可以註釋掉
代碼中有些難懂的代碼,可以加一些註釋文字
註釋有兩種風格:
C語言的註釋風格 /※xxxxxxxxxxxxxxxxxx※/
缺陷:不可以嵌套註釋,C99之前的C語言的註釋風格。
C++的註釋風格 //xxxxxxxxxxxxxxxxx
優點:可以註釋多行也可以註釋一行,C99之後引入的註釋風格。
OK!!!觀眾老爺們,這裡隻是C語言的入門知識,如果朋友們覺得有一點點作用的話,希望朋友們能夠給予小菜鳥一點支持!後續繼續給朋友們帶來更好的博文,還希望朋友們能夠繼續關註,小菜鳥致力於把自己的學習經驗與個人理解更多的分享給大傢,望大傢喜歡與指正,希望大傢以後多多支持WalkonNet!