C 的一些知識點

2021-10-01 10:12:13 字數 2051 閱讀 1217

#include

using

namespace std;

//內聯函式,交換兩個數的值

//建議直接定義,不用先在開頭宣告再在後面定義

inline

void

swap

(int

*a,int

*b)int

main()

int

*p =

newint

;//分配1個int型的記憶體空間

delete p;

//釋放記憶體

int*p =

newint[10

];//分配10個int型的記憶體空間

delete

p;

student stu;

student *pstu =

&stu;

student *pstu =

new student;

pstu -

> name =

"小明"

;pstu -

> age =15;

pstu -

> score =

92.5f

;pstu -

>

say(

);

student::

student

(char

*name,

int age,

float score)

:m_name

(name)

,m_age

(age)

,m_score

(score)

初始化列表可以用於全部成員變數,也可以只用於部分成員變數。下面的示例只對 m_name 使用初始化列表,其他成員變數還是一一賦值:

student::

student

(char

*name,

int age,

float score)

:m_name

(name)

執行時機

#include

#include

using

namespace std;

class

demo

;demo::

demo

(string s)

:m_s

(s)demo::

~demo()

void

func()

//全域性物件

demo obj2

("2");

intmain()

執行結果

1

main

32

:在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指令集中,效率很高,但是分配的記憶體容量有限。

:就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new就要對應乙個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**。

自由儲存區:就是那些由malloc等分配的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。

全域性/靜態儲存區:全域性變數和靜態變數被分配到同一塊記憶體中,在以前的c語言中,全域性變數又分為初始化的和未初始化的,在c++裡面沒有這個區分了,他們共同占用同一塊記憶體區。

常量儲存區:這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改。

一些知識點

字串拼接 1.a join b a為元素之間的分隔符,b為待分割的序列 可用於輸出時的資料處理,元素間有空格,末尾沒有 2 s s s str1,str2,str3 前半部分為字串,後半部分為索引。用於引入,s是物件 3.format str1,str2,str3 與f 括號裡為已有變數 關於for...

一些知識點

1.vector是在堆上還是棧上?在堆上.2.我們發現指標有一些 似是而非 的特徵 1 指標消亡了,並不表示它所指的記憶體會被自動釋放。比如函式中的指標是區域性變數,如果它指向了堆上,而自己出了函式後消亡了,但它所指向的記憶體還是存在的,導致了記憶體洩漏.2 記憶體被釋放了,並不表示指標會消亡或者成...

一些知識點

1 sln 解決方案檔案 csproj 專案檔案 cs 原始檔 解決方案包含多個專案,每個專案都是乙個程式。config 配置檔案 3 const int a 1 const 定義乙個量為常量,運算中用到當常量使用,不可以再重新賦值。4 型別轉換。1 隱式轉換。從值型別轉換成引用型別。從引用型別轉換...