1. 程式人生 > >C和C++的一些語法區別

C和C++的一些語法區別

①struct
在C語言中,試用定義的struct型別的變數方式:struct [定義的變數] [生成的變數];在C++語言中,試用定義的struct型別的變數方式:struct [定義的變數] [生成的變數]或者[定義的變數] [生成的變數]。
在C語言中struct定義的變數中不能有函式,而在C++中可以有函式。

②函式的引數以及返回值(以test()為例)
C語言中,表示引數可有可無,返回值為int;C++中表示無參函式,由於無返回值導致語法錯誤,但是當無返回值的函式為建構函式的時候例外。

③malloc
malloc函式的返回值為void*,在C語言中可以賦值給任意型別的指標,在C++中必須進行強制型別裝換,否則報錯。

④malloc、free和new、delete
malloc、free在C和C++中均可使用,但是在C++中更多的是使用 new、delete。malloc、free是函式,而new、delete是操作符,兩組堆記憶體的操作不能混用。

⑤struct和class
class是對struct的擴充套件,struct預設的訪問許可權是public,而class預設的訪問許可權是private。