
C語言是非常重要的一門程序設計語言,學好C語言再去學習其他編程語言將變得很輕松,因為大部分語言的都有相同的共性存在。 本節我們來講解一下C語言中的基本數據類型,掌握如何使用變量以及變量在編程中的作用及重要性,學會區分變量的存儲類型,學會如何聲明并初始化變量,了解字符和數值之間的不同。
在學習變量之前,我們先來了解一下計算機內存的一些基本知識,了解計算機內存能很好地幫助理解C編程
(資料圖片)
說到變量就不得不說變量的命名,說到變量命名就不得不說編程中代碼的規范問題。 雖然在C編程中變量命名是有一定自由的,但是為了我們編寫的代碼具有可讀性、友好性、可維護性,在開始進行編程時,就要養成良好的編程習慣,按照程序的規范去編寫代碼。 具有良好的編碼規范和習慣能很好的減少編程中出現不必要的錯誤。 下面我們說一下基本的編碼規范。
在C編程中使用變量,我們首先就是要知道如何創建和命名變量。 C語言中的變量必須遵循以下規則
變量名由字母(a-z,A-Z)、數字(0-9)、下劃線組成(_)變量名的第一個字符必須為字母和下劃線C語言區分大小寫,Test和test是兩個不同的變量C語言中的關鍵不能用作變量,因為關鍵字是C語言的一部分一般C編譯器不允許變量的命名字符無限長,一般不超過31個#include int main(int argc, char const *argv[]){ /* 變量定義 */ int iTest; // 合法 int itest; // 合法 int iTest1; // 合法 int iTest_1; // 合法 int _iTest; // 合法 int 1iTest; // 非法 return 0;}
定義函數時一般用單詞表示函數的作用,并且每個單詞首字母大寫。 這是作者習慣性用法,不是必須的。
例如:
int TestAddTwoNumber(int iA, int iB) { return (iA + iB); }
程序中代碼的注釋是為了做說明,方便理解代碼的功能。 良好的代碼注釋能給人更好的閱讀感,并且方便其他人進行代碼的維護。 C編程中代碼的注釋有//和/**/兩種
// 木榮君本人習慣做單行注釋/**/ 木榮君本人習慣做多行注釋C語言中有多種不同的數值變量,不同類型的數值變量需要不同的內存空間,而且占用的內存空間也不盡相同。 選用合適的變量類型,可以使程序的運行效率提高。
C語言中的數值變量基本上分兩大類:
整型變量,存儲沒有小數部分的數值,分為有符號和無符號變量。 有符號變量可以存儲正負值,無符號變量只能存儲正值和零。浮點型變量:存儲帶有小數部分的值下面看一下C語言的數值數據類型
不同的數值變量類型所占內存大小不同,依不同的計算機平臺而有差異。 下面我們看一下在64位的ubuntu上數值變量類型的大小。#include int main(int argc, char const *argv[]){ printf("sizeof(char) = %lu\\n", sizeof(char)); printf("sizeof(short) = %lu\\n", sizeof(short)); printf("sizeof(int) = %lu\\n", sizeof(int)); printf("sizeof(long) = %lu\\n", sizeof(long)); printf("sizeof(long long) = %lu\\n", sizeof(long long)); printf("sizeof(unsigned char) = %lu\\n", sizeof(unsigned char)); printf("sizeof(unsigned short) = %lu\\n", sizeof(unsigned short)); printf("sizeof(unsigned int) = %lu\\n", sizeof(unsigned int)); printf("sizeof(unsigned long) = %lu\\n", sizeof(unsigned long)); printf("sizeof(unsigned long long) = %lu\\n", sizeof(unsigned long long)); printf("sizeof(float) = %lu\\n", sizeof(float)); printf("sizeof(double) = %lu\\n", sizeof(double)); return 0;}
在C程序中,要想使用變量,前提是必須先聲明。 變量聲明
就是告訴編譯器變量的類型和名稱,建議在聲明變量時進行指定初始值。 這樣做是有好處的,因為變量不指定初始值,會默認賦值隨機值。
變量的聲明格式如下:typename varname
typename:指定變量的類型 varname:指定變量名
例如:
int iVar1,iVar2; int iVar2; int iVar4; float fVar5; double dVar6;
上面提到了聲明變量時如果不進行指定初始值,系統會隨機賦一個隨機值。 所以在聲明變量時進行賦值初始值。
int iVar1 = 0, iVar2 = 1; int iVar2 = 1; int iVar4 = -1; float fVar5 = 0.1; double dVar6 = 1.2;
注意,賦值變量初始值時不能超過變量的表示范圍。 如果超過范圍編譯可以通過,但是程序運行時可能發生意想不到的問題。常量與變量類似,但是與變量不同的是存儲在常量中的值在程序運行中是不可改變的。 C語言中有兩種類型的常量字面常量和符號常量。
int cnt = 20; float rate = 0.51
20和0.51都是字面常量,上面的聲明是將這兩個字面常量分別存儲在cnt和rate中。 其中,20不帶小數點的字面常量是整型常量,0.51是帶小數點的字面常量是浮點型常量。 C編譯器將沒有小數點的常量認為整型常量,帶有小數點的常量為浮點型常量。程序中,用常量名來表示符號常量。 與字面常量一樣,程序運行時也不能改變符號常量。 符號常量的好處是為編碼和閱讀帶來便利性。
#include #define PI3.14 // 定義符號常量int main(){ double dRes = 2.PI; printf("%lf\\n", dRes); return 0;}
C編程中可以選擇變量的不同存儲形式,分為靜態存儲和動態存儲。 可以通過存儲類型修飾符來告訴編譯器是什么類型的變量。
靜態存儲是指程序運行分配的固定存儲方式,而動態存儲則是在程序運行期間動態分配存儲空間。
auto變量 修飾一個局部變量為自動的,就是每次執行到該變量時,就會產生一個新的變量。 如果不加auto關鍵,默認也是自動變量。static變量 修飾為靜態變量,static變量在語句執行期間始終保持它的值,并且初始化只在第一次執行時起作用,在隨后的執行中保持上一次執行時的值。register變量 稱為寄存器變量。 把某個局部變量存放在計算機的硬件寄存器而不是內存中,這樣可以提高程序的運行效率。 實際編程中用處不大。extern變量 為外部存儲變量,extern聲明程序中用到的在其他地方定義的變量。/* 文件1 */#include int main(){ extern int a; printf("a = %d\\n", a); return 0;}/* 文件2 */#include int a = 100;
那么上述結果打印輸出a = 100;
本節闡述了有關變量和常量的基本內容,以及如何在程序中使用變量。 最后介紹了變量的存儲類型,掌握這些基本的知識是C編程所應該具備的能力。 希望通過本節對你有所幫助。 最重要的是我們要學會從編寫代碼中去理解這些知識,不要紙上談兵,要學會操練起來。
標簽: