**:
c語言和c++語言在語法上面的部分區別:
1、c語言的定義必須在最前面,c++可以在任何地方定義,比如
for(int i=0;i<100;i++) s+=i;
在c++中是正確的,但是在c語言中是錯誤的
2、型別強制轉換,c語言必須將型別括起來,c++可以將變數括起來。比如int(a)在c++中是正確的,但是在c語言中是錯誤的,必須寫為(int)a
3、在vc中,int是32位的;在tc中,int是16位的。vc支援c++語法
共享群裡面的上機手冊中建立的檔案test.cpp.
各位老師在具體作的時候可以建立.c檔案取代.cpp檔案。
這樣子可以避免很多c和c++的區別。例如:
變數宣告的位置等都和tc中的語法一樣了。
c++是c語言的超集,雖然c++相容c,但是c++中也有與c語言中不相容的地方。
一、變數宣告的位置
c中變數宣告和**是分開的,必須在函式開始處宣告;
c++中,變數可以在任意處宣告,只要保證先聲名後使用的原則就可以。
二、struct結構體方面
1、用struct定義變數
struct mystruct
在c中宣告struct變數要這麼寫:struct mystruct a;
在c++中前面不用加struct:mystruct a;
一種相容的用法是:
typedef struct _mystruct
mystruct;
然後用mystruct 定義變數。列舉型(enum),聯合體型別(union)也是同樣。
2、在c++中,struct結構體支援成員函式的定義,c中不行。另外要注意的是,c++中成員函式的預設訪問說明符為public,這一點和類不同,類的預設訪問說明符為private.
三、bool型別值
c++中有bool(或boolean型別);c中可沒有這樣的bool型別,均為數值型別!需要注意的是真為非零(如:1,52,-5,-2等),假的數值為0。
四、注釋的不同
c中的注釋至有一種 ;
c++中的注釋包含兩種和//。
五、強制資料型別裝換
c中的強制轉化形式為:(型別)變數;
c++中還可以使用:型別(變數)的形式。
六、賦值
c語言中的賦值只有一中即:=;
c++中除了使用=外,還可以使用()。例如:int x(5);就等於: int x=5;我想這種寫法是給c++中物件初始化時初始化屬性是物件時使用的,那麼對於基本型別也可以使用了。
七、函式
1、c語言中函式沒有引數預設值,在c++中函式有引數預設值的概念,注意引數預設值與函式過載的區別。
2、c語言中函式的定義又兩種形式,經典形式和標準形式,c++中只支援標準形式。
標準形式:int string(int x,float y)
經典形式: int string(x,y)int x;float y;
3、c++的函式必須先聲名原型或定義才能使用,因為c++是強資料型別語言,在c語言中,未聲名和定義函式之前呼叫函式是允許的.
八、運算子&和關鍵字const
int &rtux()
rtux()=5;
以上表示式在c++中完全正確,但在c語言中是非法的。
const關鍵字要注意一點不同的就是在c++的類函式中,函式可以聲名是可以用const,表示這個函式沒有改變類中的任何屬性。如:void unchange()const;c不能有這樣的生明。
九、extern說明符
在c語言的某些版本中,可以在程式中多次使用乙個全域性變數而無需使用extern說明符。但在c++中除定義全域性變數外,在其他模組使用應先用extern生明。
十、void指標
在c語言中void指標可以賦給任何型別的指標,但在c++中,卻不行,但可以先進行強制資料型別轉換,在賦值。
C語言和 C 語言關係
沒有深思熟慮的設計過程 使用時存在很多 灰色地帶 殘留量過多低階語言的特徵 直接利用指標進行記憶體操作 最終程式執行效率的高效 當面向過程方 暴露越來越多的缺陷的時候,業界開始考慮在工程專案中引入物件導向的設計方法,而第乙個需要解決的問題就是 高效的物件導向語言,並且能夠相容已經存在的 c語言 物件...
const 在C語言和C 語言中的區別
const 在c語言和c 語言中的區別 1 c語言中的 const 是定義了乙個 const 變數,const 用來限定乙個變數是唯讀的,不具備寫的功能,即是不可變的 c 語言中的 const 則是定義了乙個常量 const int a 10 int arr a 在c語言中是錯誤的,因為在c語言中是...
static在C語言和c 中作用
在c語言中static的作用如下 第一 在修飾變數的時候,static修飾的靜態區域性變數只執行一次,而且延長了區域性變數的生命週期,直到程式執行結束以後才釋放。第二 static修飾全域性變數的時候,這個全域性變數只能在本檔案中訪問,不能在其它檔案中訪問,即便是extern外部宣告也不可以。第三 ...