C語言和C 語言在語法上面的部分區別 2

2021-07-04 21:07:38 字數 1904 閱讀 2715

**:

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外部宣告也不可以。第三 ...