C 初階 基本語法 1

2021-09-29 04:48:49 字數 1638 閱讀 5523

1.名字修飾

在c語言中名字修飾只是在函式名前面加下劃線,所以只要在函式名相同就會導致衝突。

在c++中,名字修飾時由「?函式名@網域名稱1@網域名稱2…@@引數列表@z」的格式構成的,包含:

a.函式名

b.所在域

c.引數列表

所以在c++中只有以上三個完全相同才會衝突,這就是函式過載的原理

2.extern"c"

使用extern"c"修飾一段語句或將一段**包起來,將會採用c風格進行編譯

一.引用

引用就是給乙個變數起了乙個別名,兩個名字都是乙個變數,所以操作誰從結果上看都一樣。

引用是代替指標完成跨棧操作的,所以它具備指標跨棧的一切特點。

引用的底層實現實際上是指標

#include

using

namespace std;

void

func

(int

&a,int

&b)int

_main()

特點:

1.引用在定義時必須初始化。

2.乙個變數可以有多個引用。

3.引用一旦引用了乙個變數就不能引用其他變數了。

引用和指標的區別:

1.引用在定義時必須初始化,指標沒有要求;

2.引用一旦引用乙個實體後就不能引用其他實體,指標可以在任何時候指向任何乙個同型別的實體;

3.有空指標,但沒有空引用;

4.在sizeof中含義不同,引用在sizeof中的含義為指向型別的大小,指標在sizeof中的大小為位址空間所佔的位元組個數(在32位平台下是4個位元組,在64位平台下是8個位元組);

5.引用自加1為實體自加1,指標自加1,為指標向後偏移乙個型別大小;

6,有多級指標,但沒有堆積引用;

7.訪問實體的方式不同,指標需要顯示解引用。引用編譯器自己處理;

8.引用比指標使用起來更加安全。

二.內聯函式

呼叫時不建立新棧而直接在呼叫處展開的函式為內聯函式,關鍵字為inline。

內聯函式就是對編譯器的建議,如果函式過於複雜,編譯器不會接受建議,而處理成普通的函式。

inline函式可以代替帶參巨集

三.auto(c++11)

auto是乙個型別修飾符,他會根據你給初始化變數值的型別來決定自己的型別

aotu定義的變數必須初始化,否則不知道auto是什麼型別

auto可以連續定義變數,型別由第乙個定義變數的型別決定,後續不能違背這個型別,但是可以定義對應型別的指標和引用

auto不能做函式的引數型別

auto不能參與陣列的型別

c++11,後auto失去原本的含義

四.巨集的優缺點?

優點:1.增加**的復用性。

2.提高效能。

缺點:1.不方便除錯巨集。(因為預編譯階段進行了巨集替換)

2.導致**可讀性差,可維護性差,容易誤用。

3.沒有型別安全檢查。

c++有哪些技術代替巨集?

1.常量定義換用const。

2.函式定義換用內聯函式。

C 學習筆記1 基本語法

在 c 中,有些識別符號在 的上下文中有特殊的意義,如 get 和 set,這些被稱為上下文關鍵字 contextual keywords 下表列出了 c 中的保留關鍵字 reserved keywords 和上下文關鍵字 contextual keywords 保留關鍵字 abstract asb...

C 學習筆記(1)基本語法

1.簡介 優點 缺點 2.程式結構 注意點 3.基本語法 4.資料型別 引用型別 不包含儲存再變數中的實際資料,但包含對變數的引用,指的是乙個記憶體位置 動態型別 與物件型別相似,型別檢查在執行時發生 字串型別 system.string 類的別名,從object類派生。使用者引用型別 class ...

C 基本語法 day1

感謝!正在苦惱不知從何學起的菜鳥!include using namespace std main 是程式開始執行的地方 int main c 語言定義了一些標頭檔案,這些標頭檔案包含了程式中必需的或有用的資訊。上面這段程式中,包含了標頭檔案 using namespace std 告訴編譯器使用 ...