新聞中心
- 認識C語言
- 什么是語言?
- 那什么又是C語言呢?
- 計算機語言的發(fā)展
- C生萬物,編程之本
- 第一個C語言程序
- 編譯器的基本使用
- 數(shù)據(jù)類型
- 數(shù)據(jù)類型的使用
- 變量、常量
- 變量命名
- 變量的分類
- 局部變量
- 全局變量
- 變量的作用域和生命周期
- 常量
- 字符串
- 轉(zhuǎn)義字符
首先,來看C語言之前,我們先來討論一下“語言”
什么是語言?(語言是人類用嘴說出來的話,它由語音、語匯和語法所組成,它跟思想有密切關(guān)系,是表達情意、傳遞思想的重要工具,是人類區(qū)別于其他動物的本質(zhì)特征。)
從官方解釋來看,語言其本質(zhì)來說就是溝通的工具。
人和人之間的語言:漢語、英語、法語、日語 西班牙語…
那人和機器之間又怎么溝通呢?
于是演變出了計算機語言:C/C++/Java/Python/go等上百種語言
C語言是一門通用計算機編程語言 ,廣泛應(yīng)用于底層開發(fā)。C語言的設(shè)計目標是提供一種能以簡易的方式編譯、處理低級儲存器、產(chǎn)生少量機器碼以及不需任何運行環(huán)境支持便能運行的編程語言。
計算機語言的發(fā)展C語言是母體語言,是人機交互接近底層的橋梁。學(xué)習(xí)C有助于更好的理解C++,Java,C#,Perl以及其他基于C的特性的語言。
第一開始就學(xué)習(xí)其他語言的程序員往往不能很好的掌握繼承自C語言的基本特性。
同時近50年間,在TIOBE排行榜中,C/C++位置長期霸占前三名,沒有絲毫撼動,可謂經(jīng)典永不過時!
C語言的實現(xiàn)需要編譯器,這里以VS2019(集成開發(fā)環(huán)境(IDE))為示例
實現(xiàn)一個C語言代碼的步驟:
(1)在編輯器中創(chuàng)建一個項目
(2)在項目中創(chuàng)建xxx.c文件
當創(chuàng)建好項目,進入界面,找到解決方案資源管理器
然后鼠標右鍵點擊源文件,在子菜單中鼠標移動到添加,在下一級菜單中點擊新建項
注意:如果你的界面中未出現(xiàn)解決方案資源管理器,可從界面上方工具欄中的視圖中找到
當你添加新建項后,會進入下圖界面,先點擊C++文件,隨后將名稱改為.c為后綴的文件,最后點擊添加
(3)編寫代碼并運行
這就是你創(chuàng)建好的C語言源文件,點開你的文件進行代碼編寫即可
當你編寫好代碼后,在工具欄中的調(diào)試中點擊開始執(zhí)行或開始調(diào)試(也可使用命令后對應(yīng)的快捷鍵進行操作),即可使代碼開始運行
在我們使用C語言編寫代碼時,,總離不開去定義一些變量,那這些數(shù)據(jù)在計算機內(nèi)存中又是怎么存儲的呢?又是以什么方式進行存儲?接下來我就介紹一些基礎(chǔ)的數(shù)據(jù)類型
C語言的數(shù)據(jù)類型基本有以下幾種:
char //字符數(shù)據(jù)類型
short //短整型
int //整形
long //長整型
long long //更長的整型
float //單精度浮點數(shù)
double //雙精度浮點數(shù)
不知你有沒有想過為什么會創(chuàng)建這么多的數(shù)據(jù)類型呢?設(shè)置一種數(shù)據(jù)類型不就行了嗎?何必自取其擾呢?
其實設(shè)置這么多數(shù)據(jù)類型都是有他的緣由的,為回答這個問題,我們還是先看一下每種類型所創(chuàng)建的空間在內(nèi)存中所占的大小。
#includeint main()
{
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
return 0;
}
從運行結(jié)果來看,每種類型在內(nèi)存中所占大小是不同的,所以給每一個變量用一個合適的數(shù)據(jù)類型進行修飾,可以更高效地利用內(nèi)存空間,節(jié)省內(nèi)存。在我們早期的計算機中,存儲空間很小,內(nèi)存是很珍貴的,能省則省,所以我們才要給數(shù)據(jù)分配合適的存儲空間進行使用。
但是我們這里代碼運行的結(jié)果所呈現(xiàn)出來的數(shù)字又是什么意思呢?它的單位又是什么呢?為了解答這個問題,就不得不先解釋一下數(shù)據(jù)在內(nèi)存中是如何存儲的了。在這里先告訴大家這里的單位是字節(jié)(byte)
計算機中,最小的單位是比特位(bit),再往上就是字節(jié)(byte),生活中常見的有kb、mb、gb、tb、pb。
眾所周知,計算機是一個硬件,需要通電,分為正電和負電,正好對應(yīng)1/0二進制位,所以,我們計算機存儲和處理的就是二進制,那么一個二進制位(也就是0/1)就被儲存一個bit的空間里
1個字節(jié)由8個比特位(bit)組成,01001001就代表一個字節(jié)
下圖是一個整型數(shù)據(jù)存儲的流程
//數(shù)據(jù)類型 變量名 = 初始值
char ch = 'Q'
int age = 19
float stature = 1.77f
以上述代碼第一個char類型舉例,它的意思代表的是:向計算機 用char字符數(shù)據(jù)類型 申請一塊1個字節(jié)的存儲空間,并為該空間取名為ch,并在該空間內(nèi)存儲‘Q’。
另外注意:.C語言規(guī)定,sizeof(long)>=sizeof(int),所以我們經(jīng)常見到sizeof(long)為4或者8(建議一般情況下盡量不使用long)
1.只能由字母(包括大寫和小寫)、數(shù)字和下劃線(_)組成
2.不能以數(shù)字開頭
3.長度不能超過63個字符
4.變量名中區(qū)分大小寫
5.變量命中不能使用關(guān)鍵字
局部變量也稱為內(nèi)部變量。局部變量是在函數(shù)內(nèi)作定義說明的。其作用域僅限于函數(shù)內(nèi), 離開該函數(shù)后再使用這種變量是非法的。
全局變量全局變量也稱為外部變量,它是在函數(shù)外部定義的變量。 它不屬于哪一個函數(shù),它屬于一個源程序文件。其作用域是整個源程序。在函數(shù)中使用全局變量,一般應(yīng)作全局變量說明。 只有在函數(shù)內(nèi)經(jīng)過說明的全局變量才能使用。全局變量的說明符為 extern。 但在一個函數(shù)之前定義的全局變量,在該函數(shù)內(nèi)使用可不再加以說明。
//示例
#includeint a = 100;//全局變量
int main()
{
int b = 10;//局部變量
return 0;
}
但如果出現(xiàn)以下情況,局部變量名和全局變量名沖突時,程序又怎么運行呢?兩個變量的設(shè)置又有沒有問題呢?
#includeint a = 100;//全局變量
int main()
{
int a = 10;//局部變量
printf("%d\n", a);
return 0;
}
運行結(jié)果
從運行結(jié)果來看,程序順利執(zhí)行,說明變量設(shè)置沒有問題,但是是局部變量被執(zhí)行了
總結(jié):當局部變量和全局變量同名時,局部變量優(yōu)先使用(戲稱:就近原則)
作用域
作用域(scope),程序設(shè)計概念,通常來說,一段程序代碼中所用到的名字并不總是有效/可用的,而限定這個名字的可用性的代碼范圍就是這個名字的作用域。
1.局部變量的作用域是變量所在的局部范圍
2.全局變量的作用域是整個工程
生命周期
變量的生命周期指的是變量的創(chuàng)建到變量的銷毀之間的一個時間段
1.局部變量的生命周期是:進入作用域生命周期開始,出作用域生命周期結(jié)束
2.全局變量的生命周期是:整個程序的生命周期
C語言中的常量和變量的定義的形式有所差異
C語言中的常量分為以下幾種:
字面常量
const修飾的常變量
#define定義的標識符常量
枚舉常量
#include//舉例
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括號中的MALE,FEMALE,SECRET是枚舉常量
int main()
{
//字面常量演示
3.14;//字面常量
1000;//字面常量
//const修飾的常變量
const float pai = 3.14f;//這里的pai是const修飾的常變量
pai = 5.14;//pai是不能直接修改的!
//#define的標識符常量演示
#define MAX 100
printf("MAX = %d\n", MAX);
//枚舉常量演示
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注意:枚舉常量的默認是從0開始,依次向下遞增1
return 0;
}
注:
上面例子中的pai被稱為const修飾的常變量,const修飾的常變量在C語言中只是在語法層面限制了變量pai不能被改變,但是pai本質(zhì)上還是變量,所以叫常變量
"hello word.\n"
這種由雙引號(Double Quote)引起來的一串字符成為字符串字面值(String Literal),或者簡稱字符串
注:字符串的結(jié)束標志是’\0’的轉(zhuǎn)義字符
在計算字符串長度的時候’\0’是結(jié)束標志,不算作字符串內(nèi)容
#include//下面代碼,打印結(jié)果是什么?為什么?(突出'\0'的重要性)
int main()
{
char arr1[] = "bit";
char arr2[] = {'b', 'i', 't'};
char arr3[] = {'b', 'i', 't', '\0'};
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}
轉(zhuǎn)義字符如果我們在屏幕上要打印一個目錄
c:\code\test.c
你可能寫下的代碼是這樣的
#includeint main()
{printf("c:\code\test.c\n");
return 0;
}
但運行結(jié)果卻是這樣的
為什么會出現(xiàn)這種結(jié)果呢,這里就需要提及一下轉(zhuǎn)義字符
轉(zhuǎn)義字符顧名思義就是轉(zhuǎn)變意思
下面舉例一些轉(zhuǎn)義字符:
轉(zhuǎn)義字符 | 釋義 |
---|---|
\? | 在書寫連續(xù)多個問號時使用,防止他們被解析成三字母詞 |
\’ | 用于表示字符常量’ |
\“ | 用于表示一個字符串內(nèi)部的雙引號 |
\\ | 用于表示一個反斜杠,防止它被解釋為一個轉(zhuǎn)義序列符。 |
\a | 警告字符,蜂鳴 |
\b | 退格符 |
\f | 進紙符 |
換行 | |
\r | 回車 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3個八進制的數(shù)字。 如: \130 X |
\xdd | dd表示2個十六進制數(shù)字。 如: \x30 0 |
本篇只是大致介紹一下C語言的基礎(chǔ)內(nèi)容,其他比如if語句,for循環(huán)語句,函數(shù)等知識會在后面文章中一一提及。
希望對你有所幫助。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文標題:初識C語言(1)基礎(chǔ)認識C語言內(nèi)容-創(chuàng)新互聯(lián)
瀏覽地址:http://www.dlmjj.cn/article/dhchpp.html