筆記2 C 對C的加強

2021-09-24 01:23:29 字數 1899 閱讀 9385

首先是標頭檔案的引用問題,c++中引用標頭檔案不使用字尾「.h」,目的是為了與c語言進行區分。

1)當使用時,相當於在c中呼叫庫函式,使用的是全域性命名空間,也就是早期的c++實現;

2)當使用的時候,該標頭檔案沒有定義全域性命名空間,必須使用namespace std;這樣才能正確使用cout。

使用c++標準程式庫的任何識別符號時,可以有三種選擇:

1)直接指定識別符號。例如std::ostream而不是ostream。

2)使用using關鍵字。 using std::cout; using std::endl; using std::cin; 以上程式可以寫成 cout << std::hex << 3.4 << endl;

3)最方便的就是使用using namespace std; 

#include "iostream"

using namespace std;

int i = 0;

int k;

printf("abc");

int i = 0;

printf("abc");

int k;

system("pause");

之所以使用register關鍵字,是為了請求編譯器讓變數直接放在暫存器裡面,使執行速度變快。

1)無法取得register變數位址

2)c語言編譯器不會對**進行優化

1)可以取得register變數的位址

2)不使用register也可能做優化,即使不使用register,但當出現多次呼叫,比如for(i=0;i<1000;i++)之類重複使用到變數i的語句時,c++編譯器自動將變數i設定為register以加快速度。

int g_var;

int g_var = 1;

在c++中,不允許定義多個同名的全域性變數。

c語言的struct定義了一組變數的集合,c編譯器並不認為這是一種新的型別。

struct student

;int main(int argc, char *ar**)

;return 0;

}

c++中的struct是乙個新型別的定義宣告,且可以加訪問許可權。

struct student

;int main(int argc, char *ar**)

;return 0;

}

1)c語言中的預設型別在c++中是不合法的

h()

2)int f();表示返回值為int,接受任意引數的函式

3)int f(void);表示返回值為int的無參函式

1)int f(  );和int f(void)具有相同的意義,都表示返回值為int的無參函式

2)c++更加強調型別,任意的程式元素都必須顯示指明型別

1) c++在c語言的基本型別系統之上增加了bool,即c語言中無bool

2) c++中的bool可取的值只有true和false

3) 理論上bool只占用乙個位元組,如果多個bool變數定義在一起,可能會各佔乙個bit,這取決於編譯器的實現

補充:

1)true代表真值,編譯器內部用1來表示;false代表非真值,編譯器內部用0來表示。

2)bool型別只有true(非0)和false(0)兩個值。

3)c++編譯器會在賦值時將非0值轉換為true,0值轉換為false

1) c語言返回變數的值

2) 不能作為左值使用

1) c++中的三目運算子可直接返回變數本身;

2)可以出現在程式的任何地方

C 學習筆記2 C 變數

1 當乙個精度高的資料型別與乙個精度低的資料型別進行運算時,定義運算結果的變數型別必須與精度最高的變數型別相同。這是為了防止在運算過程中造成資料丟失。如下 double a 42.29 int b 4229 int c a b console.writeline c c console.readke...

C 對C的加強

c 是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c 擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c 就適應的問題規模而論,大小由之。c 不僅擁有計算機高效執行的實用性特徵,...

C 對C的加強

c 是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c 擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c 就適應的問題規模而論,大小由之。c 不僅擁有計算機高效執行的實用性特徵,...