一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

c語(yǔ)言和其他高級(jí)語(yǔ)言的最大的區(qū)別在哪里?

GReq_mcu168 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-07-16 15:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

提到C語(yǔ)言,我們知道c語(yǔ)言和其他高級(jí)語(yǔ)言的最大的區(qū)別就是C語(yǔ)言是要操作內(nèi)存的!

我們需要知道——變量,其實(shí)是內(nèi)存地址的一個(gè)抽像名字罷了。在靜態(tài)編譯的程序中,所有的變量名都會(huì)在編譯時(shí)被轉(zhuǎn)成內(nèi)存地址。機(jī)器是不知道我們?nèi)〉拿值?,只知道地址?/p>

內(nèi)存的使用時(shí)程序設(shè)計(jì)中需要考慮的重要因素之一,這不僅由于系統(tǒng)內(nèi)存是有限的(尤其在嵌入式系統(tǒng)中),而且內(nèi)存分配也會(huì)直接影響到程序的效率。因此,我們要對(duì)C語(yǔ)言中的內(nèi)存管理,有個(gè)系統(tǒng)的了解。

在C語(yǔ)言中,定義了4個(gè)內(nèi)存區(qū)間:代碼區(qū);全局變量和靜態(tài)變量區(qū);局部變量區(qū)即棧區(qū);動(dòng)態(tài)存儲(chǔ)區(qū),即堆區(qū);具體如下:

1、棧區(qū)(stack)— 由編譯器自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。

2、堆區(qū)(heap) — 一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時(shí)可能由OS回收 。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表,呵呵。

3、全局區(qū)(靜態(tài)區(qū))(static)—全局變量和靜態(tài)變量的存儲(chǔ)是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的 另一塊區(qū)域。 - 程序結(jié)束后由系統(tǒng)釋放。

4、常量區(qū) —常量字符串就是放在這里的。 程序結(jié)束后由系統(tǒng)釋放

5、程序代碼區(qū)—存放函數(shù)體的二進(jìn)制代碼。

我們來(lái)看張圖:

首先我們要知道,源代碼編譯成程序,程序是放在硬盤(pán)上的,而非內(nèi)存里!只有執(zhí)行時(shí)才會(huì)被調(diào)用到內(nèi)存中!

我們來(lái)看看程序結(jié)構(gòu),ELF是是Linux的主要可執(zhí)行文件格式。ELF文件由4部分組成,分別是ELF頭(ELF header)、程序頭表(Program header table)、節(jié)(Section)和節(jié)頭表(Section header table)。具體如下:

1、Program header描述的是一個(gè)段在文件中的位置、大小以及它被放進(jìn)內(nèi)存后所在的位置和大小。即要加載的信息;

2、Sections保存著object 文件的信息,從連接角度看:包括指令,數(shù)據(jù),符號(hào)表,重定位信息等等。在圖中,我們可以看到Sections中包括:

(1) .text 文本結(jié) 存放指令;

(2) .rodata 數(shù)據(jù)結(jié) readonly;

(3).data 數(shù)據(jù)結(jié)可讀可寫(xiě);

3、Section頭表(section header table)包含了描述文件sections的信息。每個(gè)section在這個(gè)表中有一個(gè)入口;每個(gè)入口給出了該section的名字,大小,等等信息。相當(dāng)于 索引

而程序被加載到內(nèi)存里面,又是如何分布的呢?我們看看上圖中:

1、正文和初始化的數(shù)據(jù)和未初始化的數(shù)據(jù)就是我們所說(shuō)的數(shù)據(jù)段,正文即代碼段;

2、正文段上面是常量區(qū),常量區(qū)上面是全局變量和靜態(tài)變量區(qū),二者占據(jù)的就是初始化的數(shù)據(jù)和未初始化的數(shù)據(jù)那部分;

3、再上面就是堆,動(dòng)態(tài)存儲(chǔ)區(qū),這里是上增長(zhǎng);

4、堆上面是棧,存放的是局部變量,就是局部變量所在代碼塊執(zhí)行完畢后,這塊內(nèi)存會(huì)被釋放,這里棧區(qū)是下增長(zhǎng);

5、命令行參數(shù)就是$0 $1之類的,環(huán)境變量什么的前面的文章已經(jīng)講過(guò),有興趣的可以去看看。

我們知道,內(nèi)存分為動(dòng)態(tài)內(nèi)存和靜態(tài)內(nèi)存,我們先講靜態(tài)內(nèi)存。

一、靜態(tài)內(nèi)存

內(nèi)存管理---存儲(chǔ)模型

存儲(chǔ)模型決定了一個(gè)變量的內(nèi)存分配方式和訪問(wèn)特性,在C語(yǔ)言中主要有三個(gè)維度來(lái)決定:1、存儲(chǔ)時(shí)期 2、作用域 3、鏈接

1、存儲(chǔ)時(shí)期

存儲(chǔ)時(shí)期:變量在內(nèi)存中的保留時(shí)間(生命周期)

存儲(chǔ)時(shí)期分為兩種情況,關(guān)鍵是看變量在程序執(zhí)行過(guò)程中會(huì)不會(huì)被系統(tǒng)自動(dòng)回收掉。

1) 靜態(tài)存儲(chǔ)時(shí)期 Static

在程序執(zhí)行過(guò)程中一旦分配就不會(huì)被自動(dòng)回收。

通常來(lái)說(shuō),任何不在函數(shù)級(jí)別代碼塊內(nèi)定義的變量。

無(wú)論是否在代碼塊內(nèi),只要采用static關(guān)鍵字修飾的變量。

2) 自動(dòng)存儲(chǔ)時(shí)期 Automatic

除了靜態(tài)存儲(chǔ)以外的變量都是自動(dòng)存儲(chǔ)時(shí)期的,或者說(shuō)只要是在代碼塊內(nèi)定義的非static的變量,系統(tǒng)會(huì)肚臍自動(dòng)非配和釋放內(nèi)存;

2、作用域

作用域:一個(gè)變量在定義該變量的自身文件中的可見(jiàn)性(訪問(wèn)或者引用)

在C語(yǔ)言中,一共有3中作用域:

1) 代碼塊作用域

在代碼塊中定義的變量都具有該代碼的作用域。從這個(gè)變量定義地方開(kāi)始,到這個(gè)代碼塊結(jié)束,該變量是可見(jiàn)的;

2) 函數(shù)原型作用域

出現(xiàn)在函數(shù)原型中的變量,都具有函數(shù)原型作用域,函數(shù)原型作用域從變量定義處一直到原型聲明的末尾。

3)文件作用域

一個(gè)在所有函數(shù)之外定義的變量具有文件作用域,具有文件作用域的變量從它的定義處到包含該定義的文件結(jié)尾處都是可見(jiàn)的;

3、鏈接

鏈接:一個(gè)變量在組成程序的所有文件中的可見(jiàn)性(訪問(wèn)或者引用);

C語(yǔ)言中一共有三種不同的鏈接:

1) 外部鏈接

如果一個(gè)變量在組成一個(gè)程序的所有文件中的任何位置都可以被訪問(wèn),則稱該變量支持外部鏈接;

2) 內(nèi)部鏈接

如果一個(gè)變量只可以在定義其自身的文件中的任何位置被訪問(wèn),則稱該變量支持內(nèi)部鏈接。

3) 空鏈接

如果一個(gè)變量只是被定義其自身的當(dāng)前代碼塊所私有,不能被程序的其他部分所訪問(wèn),則成該變量支持空鏈接

我們來(lái)看一個(gè)代碼示例:

[cpp]view plaincopy

1.#include

2.

3.inta=0;//全局初始化區(qū)

4.char*p1;//全局未初始化區(qū)

5.

6.intmain()

7.{

8.intb;//b在棧區(qū)

9.chars[]="abc";//棧

10.char*p2;//p2在棧區(qū)

11.

12.char*p3="123456";//123456\0在常量區(qū),p3在棧上。

13.staticintc=0;//全局(靜態(tài))初始化區(qū)

14.

15.p1=(char*)malloc(10);

16.p2=(char*)malloc(20);//分配得來(lái)得10和20字節(jié)的區(qū)域就在堆區(qū)。

17.

18.strcpy(p1,"123456");//123456\0放在常量區(qū),編譯器可能會(huì)將它與p3所指向的"123456"優(yōu)化成一個(gè)地方。

19.}

二、動(dòng)態(tài)內(nèi)存

當(dāng)程序運(yùn)行到需要一個(gè)動(dòng)態(tài)分配的變量時(shí),必須向系統(tǒng)申請(qǐng)取得堆中的一塊所需大小的存儲(chǔ)空間,用于存儲(chǔ)該變量。當(dāng)不在使用該變量時(shí),也就是它的生命結(jié)束時(shí),要顯示釋放它所占用的存儲(chǔ)空間,這樣系統(tǒng)就能對(duì)該空間進(jìn)行再次分配,做到重復(fù)使用有線的資源。下面介紹動(dòng)態(tài)內(nèi)存申請(qǐng)和釋放的函數(shù)。

1.1 malloc 函數(shù)

malloc函數(shù)原型:

[cpp]view plaincopy

1.#include

2.

3.void*malloc(size_tsize);

size是需要?jiǎng)討B(tài)申請(qǐng)的內(nèi)存的字節(jié)數(shù)。若申請(qǐng)成功,函數(shù)返回申請(qǐng)到的內(nèi)存的起始地址,若申請(qǐng)失敗,返回NULL。我們看下面這個(gè)例子:

[cpp]view plaincopy

1.int*get_memory(intn)

2.{

3.int*p;

4.p=(int*)malloc(sizeof(int));

5.if(p==NULL)

6.{

7.printf("mallocerror\n");

8.returnp;

9.}

10.

11.memset(p,0,n*sizeof(int));

12.}

使用該函數(shù)時(shí),有下面幾點(diǎn)要注意:

1)只關(guān)心申請(qǐng)內(nèi)存的大小;

2)申請(qǐng)的是一塊連續(xù)的內(nèi)存。記得一定要寫(xiě)出錯(cuò)判斷;3)顯示初始化。即我們不知這塊內(nèi)存中有什么東西,要對(duì)其清零;

1.2 free函數(shù)

在堆上分配的額內(nèi)存,需要用free函數(shù)顯示釋放,函數(shù)原型如下:

[cpp]view plaincopy

#include

voidfree(void*ptr);

使用free(),也有下面幾點(diǎn)要注意:

1)必須提供內(nèi)存的起始地址;

調(diào)用該函數(shù)時(shí),必須提供內(nèi)存的起始地址,不能夠提供部分地址,釋放內(nèi)存中的一部分是不允許的。

2)malloc和free配對(duì)使用;

編譯器不負(fù)責(zé)動(dòng)態(tài)內(nèi)存的釋放,需要程序員顯示釋放。因此,malloc與free是配對(duì)使用的,避免內(nèi)存泄漏。

[cpp]view plaincopy

free(p);

p=NULL;

p = NULL是必須的,因?yàn)殡m然這塊內(nèi)存被釋放了,但是p仍指向這塊內(nèi)存,避免下次對(duì)p的誤操作;

3)不允許重復(fù)釋放

因?yàn)檫@塊內(nèi)存被釋放后,可能已另分配,這塊區(qū)域被別人占用,如果再次釋放,會(huì)造成數(shù)據(jù)丟失;

2、我們經(jīng)常將堆和棧相比較:

2.1申請(qǐng)方式

stack:由系統(tǒng)自動(dòng)分配。 例如,聲明在函數(shù)中一個(gè)局部變量 int b; 系統(tǒng)自動(dòng)在棧中為b開(kāi)辟空間

heap:需要程序員自己申請(qǐng),并指明大小,在c中malloc函數(shù) ,如p1 = (char *)malloc(10);2.2 申請(qǐng)后系統(tǒng)的響應(yīng)

棧:只要棧的剩余空間大于所申請(qǐng)空間,系統(tǒng)將為程序提供內(nèi)存,否則將報(bào)異常提示棧溢出。

堆:首先應(yīng)該知道操作系統(tǒng)有一個(gè)記錄空閑內(nèi)存地址的鏈表,當(dāng)系統(tǒng)收到程序的申請(qǐng)時(shí),會(huì)遍歷該鏈表,尋找第一個(gè)空間大于所申請(qǐng)空間的堆結(jié)點(diǎn),然后將該結(jié)點(diǎn)從空閑結(jié)點(diǎn)鏈表中刪除,并將該結(jié)點(diǎn)的空間分配給程序,另外,對(duì)于大多數(shù)系統(tǒng),會(huì)在這塊內(nèi)存空間中的首地址處記錄本次分配的大小,這樣,代碼中的delete語(yǔ)句才能正確的釋放本內(nèi)存空間。另外,由于找到的堆結(jié)點(diǎn)的大小不一定正好等于申請(qǐng)的大小,系統(tǒng)會(huì)自動(dòng)的將多余的那部分重新放入空閑鏈表中。

2.3申請(qǐng)大小的限制

棧:棧是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是一塊連續(xù)的內(nèi)存的區(qū)域。這句話的意思是棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的,棧的大小是2M(也有的說(shuō)是1M,總之是一個(gè)編譯時(shí)就確定的常數(shù)),如果申請(qǐng)的空間超過(guò)棧的剩余空間時(shí),將提示overflow。因此,能從棧獲得的空間較小。

堆:堆是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域。這是由于系統(tǒng)是用鏈表來(lái)存儲(chǔ)的空閑內(nèi)存地址的,自然是不連續(xù)的,而鏈表的遍歷方向是由低地址向高地址。堆的大小受限于計(jì)算機(jī)系統(tǒng)中有效的虛擬內(nèi)存。由此可見(jiàn),堆獲得的空間比較靈活,也比較大。

2.4申請(qǐng)效率的比較:

棧由系統(tǒng)自動(dòng)分配,速度較快。但程序員是無(wú)法控制的。

堆是由new分配的內(nèi)存,一般速度比較慢,而且容易產(chǎn)生內(nèi)存碎片,不過(guò)用起來(lái)最方便。

2.5堆和棧中的存儲(chǔ)內(nèi)容

棧:在函數(shù)調(diào)用時(shí),第一個(gè)進(jìn)棧的是主函數(shù)中后的下一條指令(函數(shù)調(diào)用語(yǔ)句的下一條可執(zhí)行語(yǔ)句)的地址,然后是函數(shù)的各個(gè)參數(shù),在大多數(shù)的C編譯器中,參數(shù)是由右往左入棧的,然后是函數(shù)中的局部變量。注意靜態(tài)變量是不入棧的。 當(dāng)本次函數(shù)調(diào)用結(jié)束后,局部變量先出棧,然后是參數(shù),最后棧頂指針指向最開(kāi)始存的地址,也就是主函數(shù)中的下一條指令,程序由該點(diǎn)繼續(xù)運(yùn)行。

堆:一般是在堆的頭部用一個(gè)字節(jié)存放堆的大小。堆中的具體內(nèi)容由程序員安排。

2.6存取效率的比較

char s1[] = "aaaaaaaaaaaaaaa";char *s2 = "bbbbbbbbbbbbbbbbb";aaaaaaaaaaa是在運(yùn)行時(shí)刻賦值的;而bbbbbbbbbbb是在編譯時(shí)就確定的;但是,在以后的存取中,在棧上的數(shù)組比指針?biāo)赶虻淖址?例如堆)快。

比如:

[cpp]view plaincopy

1.#include

2.voidmain()

3.{

4.chara=1;

5.charc[]="1234567890";

6.char*p="1234567890";

7.a=c[1];

8.a=p[1];

9.return;

10.}

對(duì)應(yīng)的匯編代碼

[cpp]view plaincopy

1.0:a=c[1];

2.004010678A4DF1movcl,byteptr[ebp-0Fh]

3.0040106A884DFCmovbyteptr[ebp-4],cl

4.11:a=p[1];

5.0040106D8B55ECmovedx,dwordptr[ebp-14h]

6.004010708A4201moval,byteptr[edx+1]

7.004010738845FCmovbyteptr[ebp-4],al

第一種在讀取時(shí)直接就把字符串中的元素讀到寄存器cl中,而第二種則要先把指針值讀到edx中,再根據(jù)edx讀取字符,顯然慢了。

總結(jié)

堆和棧的區(qū)別可以用如下的比喻來(lái)看出:

棧就象我們?nèi)ワ堭^里吃飯,只管點(diǎn)菜(發(fā)出申請(qǐng))、付錢(qián)、和吃(使用),吃飽了就走,不必理會(huì)切菜、洗菜等準(zhǔn)備工作和洗碗、刷鍋等掃尾工作,他的好處是快捷,但是自由度小。

堆就象是自己動(dòng)手做喜歡吃的菜肴,比較麻煩,但是比較符合自己的口味,而且自由度大。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    807

    瀏覽量

    42309
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141557
  • 內(nèi)存管理
    +關(guān)注

    關(guān)注

    0

    文章

    168

    瀏覽量

    14548

原文標(biāo)題:C語(yǔ)言和其他高級(jí)語(yǔ)言的最大的區(qū)別是什么?

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語(yǔ)言和其他高級(jí)語(yǔ)言最大區(qū)別是什么?

    本帖最后由 24不可說(shuō) 于 2018-7-16 13:50 編輯 提到C語(yǔ)言,我們知道C語(yǔ)言和其他
    發(fā)表于 07-16 13:41

    MCS的C語(yǔ)言和標(biāo)準(zhǔn)C語(yǔ)言區(qū)別

    MCS的C語(yǔ)言和標(biāo)準(zhǔn)C語(yǔ)言區(qū)別MC9S12的C語(yǔ)言
    發(fā)表于 07-20 07:06

    小編科普什么是ST語(yǔ)言

    什么是ST語(yǔ)言?ST語(yǔ)言和C語(yǔ)言區(qū)別在哪?STL語(yǔ)言和ST
    發(fā)表于 09-01 06:43

    什么是腳本語(yǔ)言?腳本語(yǔ)言的特點(diǎn)有哪些

    什么是腳本語(yǔ)言?腳本語(yǔ)言的特點(diǎn)有哪些?shell語(yǔ)言和c語(yǔ)言區(qū)別在哪?編輯腳本
    發(fā)表于 10-09 08:53

    vhdl語(yǔ)言和c語(yǔ)言區(qū)別大嗎?差異性體現(xiàn)在哪

    相信對(duì)vhdl語(yǔ)言和c語(yǔ)言區(qū)別也有了一定的了解,并且它們兩者之間的區(qū)別還是挺大的,下面我們?cè)敿?xì)細(xì)數(shù)一下它們的
    發(fā)表于 11-09 16:06 ?2.1w次閱讀
    vhdl<b class='flag-5'>語(yǔ)言和</b><b class='flag-5'>c</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>區(qū)別</b>大嗎?差異性體現(xiàn)<b class='flag-5'>在哪</b>兒

    高級(jí)語(yǔ)言和匯編語(yǔ)言_機(jī)器語(yǔ)言區(qū)別

    本文首先介紹了高級(jí)語(yǔ)言的優(yōu)缺點(diǎn)、匯編語(yǔ)言的優(yōu)缺點(diǎn)及使用匯編語(yǔ)言的理由,其次介紹了機(jī)器語(yǔ)言的優(yōu)缺點(diǎn),最后闡述了
    的頭像 發(fā)表于 04-16 10:28 ?3.1w次閱讀

    匯編和C語(yǔ)言相結(jié)合的51單片機(jī)編程技巧

    C語(yǔ)言和匯編語(yǔ)言區(qū)別在于他們之間優(yōu)缺點(diǎn)幾乎是相反的。
    發(fā)表于 09-10 14:59 ?6089次閱讀
    匯編和<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>相結(jié)合的51單片機(jī)編程技巧

    詳談C語(yǔ)言和C++的區(qū)別和聯(lián)系

    在學(xué)習(xí)了C語(yǔ)言和C++之后,這兩者之間的區(qū)別我們需要仔細(xì)的捋一捋!
    的頭像 發(fā)表于 06-29 14:56 ?6188次閱讀
    詳談<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言和</b><b class='flag-5'>C</b>++的<b class='flag-5'>區(qū)別</b>和聯(lián)系

    RTK和GPS定位的區(qū)別在哪里

    RTK和GPS定位的區(qū)別在哪里?
    發(fā)表于 05-08 10:08 ?76次下載

    串口屏和并口屏的區(qū)別在哪里

    串口屏還是并口屏好用?區(qū)別在哪里?
    的頭像 發(fā)表于 01-23 09:53 ?1.1w次閱讀

    梯形絲桿和滾珠絲桿的區(qū)別在哪里?

    梯形絲桿和滾珠絲桿的區(qū)別在哪里
    的頭像 發(fā)表于 03-28 17:48 ?3120次閱讀
    梯形絲桿和滾珠絲桿的<b class='flag-5'>區(qū)別在哪里</b>?

    vb語(yǔ)言和c++語(yǔ)言區(qū)別

    VB語(yǔ)言和C++語(yǔ)言是兩種不同的編程語(yǔ)言,雖然它們都屬于高級(jí)編程語(yǔ)言,但在設(shè)計(jì)和用途上有很多
    的頭像 發(fā)表于 02-01 10:20 ?3320次閱讀

    plc編程語(yǔ)言c語(yǔ)言的聯(lián)系 c語(yǔ)言和PLC有什么區(qū)別

    語(yǔ)言,主要用于開(kāi)發(fā)各種應(yīng)用程序。盡管PLC編程語(yǔ)言和C語(yǔ)言有一些相似之處,但它們之間也存在一些明顯的區(qū)別。 首先,PLC編程
    的頭像 發(fā)表于 02-05 14:21 ?5520次閱讀

    PLC編程語(yǔ)言和C語(yǔ)言區(qū)別

    在工業(yè)自動(dòng)化和計(jì)算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語(yǔ)言和C語(yǔ)言各自扮演著重要的角色。盡管兩者都是編程語(yǔ)言,但它們?cè)诙鄠€(gè)方面存在顯著的區(qū)別
    的頭像 發(fā)表于 06-14 17:11 ?4707次閱讀

    C語(yǔ)言和C++中結(jié)構(gòu)體的區(qū)別

    同樣是結(jié)構(gòu)體,看看在C語(yǔ)言和C++中有什么區(qū)別
    的頭像 發(fā)表于 10-30 15:11 ?761次閱讀