您好,歡迎進入深圳市穎特新科技有限公司官方網站!
C語言是面向過程的,而C++是面向對象的
C和C++的區(qū)別:
C是一個結構化語言,它的重點在于算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或實現過程(事務)控制)。
C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或實現過程(事務)控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設計這個概念已經被融入到C++之中 ”。
C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設計這個概念已經被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯!算法是程序設計的基礎,好的設計如果沒有好的算法,一樣不行。而且,“C加上好的設計”也能寫出非常好的東西。
C語言一共有32個關鍵字,如下表所示:
1數據類型關鍵字
A)基本數據類型(5個)
void:聲明函數無返回值或無參數,聲明無類型指針,顯式丟棄運算結果
char:字符型類型數據,屬于整型數據的一種
int:整型數據,通常為編譯器指定的機器字長
float:單精度浮點型數據,屬于浮點數據的一種
double:雙精度浮點型數據,屬于浮點數據的一種
B)類型修飾關鍵字(4個)
short:修飾int,短整型數據,可省略被修飾的int。
long:修飾int,長整形數據,可省略被修飾的int。
signed:修飾整型數據,有符號數據類型
unsigned:修飾整型數據,無符號數據類型
C)復雜類型關鍵字(5個)
struct:結構體聲明
union:共用體聲明
enum:枚舉聲明
typedef:聲明類型別名
sizeof:得到特定類型或特定類型變量的大小
D)存儲級別關鍵字(6個)
auto:指定為自動變量,由編譯器自動分配及釋放。通常在棧上分配
static:指定為靜態(tài)變量,分配在靜態(tài)變量區(qū),修飾函數時,指定函數作用域為文件內部
register:指定為寄存器變量,建議編譯器將變量存儲到寄存器中使用,也可以修飾函數形參,建議編譯器通過寄存器而不是堆棧傳遞參數
extern:指定對應變量為外部變量,即在另外的目標文件中定義,可以認為是約定由另外文件聲明的對象的一個“引用“
const:與volatile合稱“cv特性”,指定變量不可被當前線程/進程改變(但有可能被系統(tǒng)或其他線程/進程改變)
volatile:與const合稱“cv特性”,指定變量的值有可能會被系統(tǒng)或其他進程/線程改變,強制編譯器每次從內存中取得該變量的值
2流程控制關鍵字
A)跳轉結構(4個)
return:用在函數體中,返回特定值(或者是void值,即不返回值)
continue:結束當前循環(huán),開始下一輪循環(huán)
break:跳出當前循環(huán)或switch結構
goto:無條件跳轉語句
B)分支結構(5個)
if:條件語句
else:條件語句否定分支(與if連用)
switch:開關語句(多重分支語句)
case:開關語句中的分支標記
default:開關語句中的“其他”分治,可選。
C)循環(huán)結構(3個)
for:for循環(huán)結構,for(1;2;3)4;的執(zhí)行順序為1->2->4->3->2...循環(huán),其中2為循環(huán)條件
do:do循環(huán)結構,do 1 while(2);的執(zhí)行順序是1->2->1...循環(huán),2為循環(huán)條件
while:while循環(huán)結構,while(1) 2;的執(zhí)行順序是1->2->1...循環(huán),1為循環(huán)條件
以上循環(huán)語句,當循環(huán)條件表達式為真則繼續(xù)循環(huán),為假則跳出循環(huán)。
下面來詳細介紹各個關鍵字:
基本數據類型(5個)
void
char
int
float
double
類型修飾關鍵字(4個)
short
long
signed
unsigned
1)在windows,32位系統(tǒng)中
char 1個字節(jié)
short 2個字節(jié)
int 4個字節(jié)
long 4個字節(jié)
double 8個字節(jié)
float 4個字節(jié)
2)數據類型和占位符之間的對應關系
char和unsingned char %c
short %hd
unsigned short %hu
long %ld
unsigned long %lu
int %d
unsigned int %u
float %f/%g
double %lf/%lg
%f和%lf會保留小數點后面多余的0 如 3.1400000 .2%f得 3.14
%g和%lg不會保留 如 3.14
規(guī)定整型值相互之間大小的規(guī)則:
長整型至少應該和整型一樣長,而整型至少應該和短整型一樣長。
3)signed、unsigned關鍵字
signed char取值范圍是 -2^7 到 2^7-1
unsigned char取值范圍是 0 到 2^8
signed int取值范圍是 -2^31 到 2^31-1
unsigned int取值范圍是 0 到 2^32
留兩個問題思考:
1), int i = -20;
unsigned j = 10;
i+j 的值為多少?為什么?
-10 應該是按照有符號的來計算的
2), 下面的代碼有什么問題?
unsigned i ;
for (i=9;i>=0;i--)
{
printf("%u ",i);
}
一直打印無法停止,到了0 后,變成-1。因為-1是有符號的了,再變成 4294967295一直又減下去了
4)void關鍵字:
復雜類型關鍵字(5個)
struct
union
enum
typedef
sizeof
存儲級別關鍵字(6個)
auto
static
register
extern
const
volatile
2、流程控制關鍵字 A)跳轉結構(4個)
return
continue
break
goto
B)分支結構(5個)
if
else
switch
case
default
這些是C/C++能做的
服務器開發(fā)工程師、人工智能、云計算工程師、信息安全(黑客反黑客)、大數據 、數據平臺、嵌入式工程師、流媒體服務器、數據控解、圖像處理、音頻視頻開發(fā)工程師、游戲服務器、分布式系統(tǒng)、游戲輔助等
C)循環(huán)結構(3個)
for
do
while
上一篇:AVR 定時器快速PWM模式使用
下一篇:經典51懶人5步速成法