您好,歡迎進入深圳市穎特新科技有限公司官方網(wǎng)站!
C和C++的區(qū)別:
C是一個結(jié)構(gòu)化語言,它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。
C++,首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合與之對應(yīng)的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”。
C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯!算法是程序設(shè)計的基礎(chǔ),好的設(shè)計如果沒有好的算法,一樣不行。而且,“C加上好的設(shè)計”也能寫出非常好的東西。
有如下一段C語言程序:
#include "stdio.h"
int main(void)
{
char a = 0xC8;
printf ("字符a的ASCII碼值的10進制是%d ", a);
return 0;
}
程序定義了一個字符‘a’,并且賦予了初始值“0xC8”,這是一個16進制的數(shù)。最后,通過printf函數(shù)輸出字符a的值。
程序不難,光看程序,也應(yīng)該知道最終的結(jié)果。16進制“0xC8”的10進制數(shù)是200,所以程序應(yīng)該輸出字符a的ASCII碼值是200吧。實際運行結(jié)果如下:
結(jié)果是-56,還是個負數(shù),C語言初學(xué)者估計一頭霧水了。
其實字符a在定義時如果就寫一個“char”,則就默認(rèn)類型是“signed char”,也就是說字符a的10進制ASCII碼值是有符號的,取值范圍是【-128,127】,那么200這個數(shù)肯定就超過這個范圍,超過的部分是200 – 127 = 73。那么超過的部分又從-128開始計數(shù)了,也就是-128 + 73 - 1 = -56了。
如果在定義字符a時,類型寫成“unsigned char”,那么舊標(biāo)明字符a的10進制ASCII碼值是無符號的,取值范圍就是【0,255】了。朋友們可以修改下程序看看結(jié)果是什么。
上一篇:C語言while語句
下一篇:C語言條件運算符
掃碼關(guān)注我們
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08