C 基礎 001 C到C 的過渡

2021-10-23 06:20:59 字數 2518 閱讀 7115

二、c++對c的加強

2、「實用性」增加

3、struct型別加強

4、新增bool型別關鍵字

5、三目運算子的增強

這個物件有下面的兩種說法:

具體可以看看這篇文章

下面用一道程式設計題目來簡單說明一下

題目:在c++環境下,編寫程式使其輸入乙個半徑值,求這個半徑對應的圓的面積?

程式如下:

#include

"iostream"

using namespace std;

//使用命名空間 std 標準的命名空間 (在這個命名空間中定義了很多標準定義)

intmain()

這個程式裡面,採用自頂向下結構,很清晰。

#include

"iostream"

using namespace std;

/* 物件導向 */

class circle};

intmain()

namespace namespaceb

如何使用這個命名空間呢?

使用方式:using namespace+自定義命名空間名字

int

main()

1.2 命名空間相互巢狀
namespace namespaceb;}

}

如何使用這個命名空間呢?

使用方式(針對結構體):using 自定義命名空間名字::巢狀命名空間名字::結構體型別;

int

main()

int

main()

}

int

main()

}

struct teacher

;

當在main函式中這樣定義時teacher t1;會報錯。正確:struct teacher t1;

struct teacher

;

main函式允許這樣定義:teacher t1;

bool名為布林型別,可取的值只有true和false,理論上bool只占用乙個位元組

提問:那bool可以賦值嗎?

回答:執行bool=2,編譯可以通過,但是bool輸出值為1不為2。

執行bool=-2,編譯可以通過,但是bool輸出值為1不為-2。

執行bool=0,編譯可以通過,但是bool輸出值為0

總結:bool賦值時將非0值轉換為true0值轉換為false

int

main()

結果:會發現編譯器報錯

原因三目運算子返回的是變數的值,即執行(a>b? a:b)得到的是b的值,20

int

main()

結果:會發現編譯器成功

原因三目運算子返回的是變數本身,即執行(a>b? a:b)得到的是變數b,之後變數b賦值為30

提問:那麼c++編譯器是如何實現的呢?

回答:1、從c的角度去分析,相當於(a>b? &a:&b)

2、從c++的角度分析,相當於c++編譯器手工去執行(a>b? &a:&b)

注意:上面所說的是從變數的角度,如果是(a>b? 1:2) = 30,那麼無論是c還是c++編譯器,他們都會報錯。

當然,對於c++對c的優化與公升級遠遠不止上述介紹的那麼少,通過後續的學習將逐漸完善。

001c 入門程式

以前語言基礎不牢固 導致很多時候學習後續內容很吃力。物件 物件具有狀態和行為,是乙個具體的東西 類 類可以定義描述物件行為狀態的模板,是乙個抽象的概念 方法 即時變數 話不多上上程式 include 包含c 的標頭檔案 using namespace std 使用命名空間 std 標準的命名空間 在...

001 C 列舉型別

include using namespace std 列舉型別 enumeration 是c 中的一種派生資料型別,它是由使用者定義的若干列舉常量的集合。如果乙個變數只有幾種可能的值,可以定義為列舉 enumeration 型別。所謂 列舉 是指將變數的值一一枚舉出來,變數的值只能在列舉出來的值的...

c到c 的過渡

1.c到c 的過度 1 2.類和物件 2 3.繼承與派生 1 4.運算子過載 1 5.多型 1 6.函式模板與類模板 1 7.異常與檔案 1 c 的基本知識 8.stl 標準模板庫 2 9.設計模式 2 10.qt 2 mysql 1 1.彙編 低階語言 可以直接操作硬體 mov移植性差 第一代高階...