国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C/C++ - c/c++內(nèi)存分配大小實(shí)例講解

c/c++內(nèi)存分配大小實(shí)例講解

2022-02-22 14:59jihite C/C++

在本篇文章里小編給大家整理了一篇關(guān)于c/c++內(nèi)存分配大小實(shí)例講解內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。

測試平臺(tái):linux 32位系統(tǒng)

用sizeof()運(yùn)算符計(jì)算分配空間大小。單位:字節(jié)

1. 數(shù)組名與變量名的區(qū)別

?
1
2
3
4
5
6
7
8
9
10
int main()
{
    char q[] = "hello";
    cout << "q:" << sizeof(q) << endl;
    char *mq = q;
    cout << "mq:" << sizeof(mq) << endl;
 
    const char *p = "hello";
    cout << "p:" << sizeof(p) << endl;
}

結(jié)果

q:6
mq:4
p:4

分析

q是數(shù)組名,申請(qǐng)內(nèi)存是編譯器記住了,但是賦值給mq后,mq和p一樣是一個(gè)普通的指針了,大小為4.

總之:c/c++沒有辦法知道指針?biāo)傅膬?nèi)存容量,除非在申請(qǐng)時(shí)記住它。

2. 類的內(nèi)存分配

2.1 空類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
 
class A
{
};
 
int main()
{
    A a;
    cout << sizeof(a) << endl;
}

結(jié)果

1

分析

所謂類的實(shí)例化就是在內(nèi)存中分配一塊地址(空類同樣可以被實(shí)例化),每個(gè)實(shí)例在內(nèi)存中都有一個(gè)獨(dú)一無二的地址,為了達(dá)到這個(gè)目的,編譯器往往會(huì)給一個(gè)空類隱含的加一個(gè)字節(jié),這樣空類在實(shí)例化后在內(nèi)存得到了獨(dú)一無二的地址.因?yàn)槿绻疹惒浑[含加一個(gè)字節(jié)的話,則空類無所謂實(shí)例化了(因?yàn)轭惖膶?shí)例化就是在內(nèi)存中分配一塊地址。

2.2 類只有成員變量

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
 
class A
{
    public:
        int val;
};
 
int main()
{
    A a;
    cout << sizeof(a) << endl;
}

結(jié)果

4

解釋

這個(gè)4是int類型類的成員變量所占字節(jié)數(shù)

2.2 類含有成員函數(shù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
 
class A
{
    public:
        A(int value) : val(value) {}
        int val;
};
 
int main()
{
    A a(3);
    cout << sizeof(a) << endl;
}

結(jié)果

4

分析

這個(gè)4是int類型類的成員變量所占字節(jié)數(shù)。即成員函數(shù)沒有占空間。原因是這樣的:成員函數(shù)不屬于類(或類的對(duì)象),所有的成員函數(shù)和全局函數(shù)都在代碼段,在調(diào)用成員函數(shù)時(shí),會(huì)隱式的通過this指針過去調(diào)用。

3.3 類中含有靜態(tài)成員

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
 
class A
{
    public:
        A(int value) : val(value) {}
        int val;
        static int sta_val;
};
int A::sta_val = 3;
 
int main()
{
    A a(3);
    cout << sizeof(a) << endl;
}

結(jié)果

4

分析

這個(gè)4仍然是int類型類的成員變量所占字節(jié)數(shù)。static變量存放于靜態(tài)區(qū),并不和普通成員變量(存于棧)放在一起。

3.4 類中含有virtural函數(shù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
 
class A
{
    public:
        int val;
        virtual void fuc() { cout << "hello" << endl; }
};
 
 
int main()
{
    A a;
    cout << sizeof(a) << endl;
}

結(jié)果

8

分析

virtual 會(huì)增加4個(gè)字節(jié)大小的空間。原因:增加一個(gè)virtual ,會(huì)增加一個(gè)虛函數(shù)表指針(即使有多個(gè)虛函數(shù),也僅有一個(gè)虛函數(shù)表),例證

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
 
class A
{
    public:
        int val;
        virtual void fuc() { cout << "hello" << endl; }
        virtual void fuc2() { cout << "hello" << endl; }
};
 
 
int main()
{
    A a;
    cout << sizeof(a) << endl;
}

結(jié)果

8

3.5 子類空間分配

例子1

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
 
class A
{
    public:
        int val;
};
 
class B : public A
{
    int valb;
};
 
 
int main()
{
    B b;
    cout << sizeof(b) << endl;
}

結(jié)果

8

例子2

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
 
class A
{
    public:
        int val;
        virtual void fuc() {}
};
 
class B : public A
{
    int valb;
};
 
 
int main()
{
    B b;
    cout << sizeof(b) << endl;
}

結(jié)果

Bb

分析

4 + 4 + 4(虛函數(shù)表指針)

到此這篇關(guān)于c/c++內(nèi)存分配大小實(shí)例講解的文章就介紹到這了,更多相關(guān)c/c++內(nèi)存分配大小內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://www.cnblogs.com/kaituorensheng/p/3694587.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 自拍偷拍视频网站 | 精品国产乱码久久久久久丨区2区 | 桃色五月 | 夜夜天天 | 国产高清精品一区二区三区 | 91福利视频导航 | www.黄在线看| 国产乱码精品一区二区三区av | 99久久婷婷国产综合精品电影 | 亚洲国产精品va在线看黑人 | 国产视频一二三区 | 国产精品日韩在线观看 | 日韩精品视频久久 | 成人午夜精品一区二区三区 | 亚洲色图p | 午夜免费视频 | h在线观看视频 | 日韩精品一区二 | 色天天综合| 久久精品亚洲精品国产欧美 | 国产欧美一区二区精品性色 | 午夜剧| 中文字幕日韩有码 | 久久亚洲国产精品 | 自拍在线 | 黄色一级视频在线观看 | 久久国产欧美日韩精品 | 久艹精品 | 日韩第一页 | 久久亚洲综合 | 婷婷综合久久 | 国产综合精品一区二区三区 | 亚洲视频www | 欧美视频成人 | 91亚洲精品乱码久久久久久蜜桃 | 日韩色区| 国产麻豆一区二区三区四区 | 欧美在线视频网站 | 亚洲精选一区二区 | 欧美99热 | 国产日韩一级片 |