真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語(yǔ)言函數(shù)能返回結(jié)構(gòu)體嗎 c++構(gòu)造函數(shù)不能有返回類(lèi)型

請(qǐng)教:C語(yǔ)言函數(shù)的返回值類(lèi)型能否為結(jié)構(gòu)體

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了武勝免費(fèi)建站歡迎大家使用!

只要在定義函數(shù)時(shí),返回類(lèi)型聲明你要返回的類(lèi)型就可以

參考代碼:

//#include "stdafx.h"http://If the vc++6.0, with this line.

#include "stdio.h"

#include "string.h"

struct ABC{

char name[20];

int n;

};

struct ABC myfun(void){

struct ABC x={"Lining",99};//聲明一個(gè)結(jié)構(gòu)體局部變量x并初始化

return x;//返回局部變量結(jié)構(gòu)體x

}

int main(void){

struct ABC y=myfun();//聲明一個(gè)同類(lèi)型結(jié)構(gòu)體變量y并將函數(shù)返回值賦給它

printf("%s %d\n",y.name,y.n);//打出來(lái)看看

return 0;

}

求高手指教c語(yǔ)言函數(shù)怎么返回結(jié)構(gòu)體

#include "stdio.h"

struct abc{

int a;

int b;

char *p;

};

struct abc myabc(void){

struct abc n;

n.a=2;

n.b=3;

n.p=(char *)0x00FF3304;

return n;

}

void main(void)

{

struct abc x={1,2,(char *)0x00FF3300},y;

y=myabc();

printf("%d %d %p\n%d %d %p\n",x.a,x.b,x.p,y.a,y.b,y.p);

}

擴(kuò)展資料:

在C語(yǔ)言中,結(jié)構(gòu)體(struct)指的是一種數(shù)據(jù)結(jié)構(gòu),是C語(yǔ)言中聚合數(shù)據(jù)類(lèi)型(aggregate data type)的一類(lèi)。結(jié)構(gòu)體可以被聲明為變量、指針或數(shù)組等,用以實(shí)現(xiàn)較復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)體同時(shí)也是一些元素的集合,這些元素稱(chēng)為結(jié)構(gòu)體的成員(member),且這些成員可以為不同的類(lèi)型,成員一般用名字訪問(wèn)。

C++提供了許多種基本的數(shù)據(jù)類(lèi)型(如int、float、double、char等)供用戶(hù)使用。由于程序需要處理的問(wèn)題往往比較復(fù)雜,而且呈多樣化,已有的數(shù)據(jù)類(lèi)型顯得不能滿(mǎn)足使用要求。C++允許用戶(hù)根據(jù)需要自己聲明一些類(lèi)型,用戶(hù)可以自己聲明的類(lèi)型還有結(jié)構(gòu)體類(lèi)型(structure)、共用體類(lèi)型(union)、枚舉類(lèi)型(enumeration)、類(lèi)類(lèi)型(class )等,這些統(tǒng)稱(chēng)為用戶(hù)自定義類(lèi)型(user-defined type,UDT)。

c語(yǔ)言函數(shù)能不能返回strut,不是指針

可以返回結(jié)構(gòu)體,但一般不推薦這么做,特別是結(jié)構(gòu)體比較大的情況下,

因?yàn)榻Y(jié)構(gòu)體都是存在棧上,太大可能導(dǎo)致棧溢出,并且運(yùn)行效率比較低。

c語(yǔ)言中函數(shù)返回值可以是數(shù)組、字符串和結(jié)構(gòu)體嗎?

//語(yǔ)法編碼規(guī)則的角度看

ANSI C語(yǔ)言標(biāo)準(zhǔn),明確規(guī)定 數(shù)組類(lèi)型和函數(shù)類(lèi)型不可以做為返回值。

解決這種返回值的方法是通過(guò)指針來(lái)間接返回,即使用數(shù)組指針和函數(shù)指針。這可以做為c語(yǔ)言引入指針的另一個(gè)理由。

結(jié)構(gòu)體類(lèi)型可以做為返回值,我猜測(cè)C語(yǔ)言設(shè)計(jì)者當(dāng)時(shí)引入struct結(jié)構(gòu)體的概念,目的是為了增加一種建立C語(yǔ)言新類(lèi)型的機(jī)制, 換句話(huà)說(shuō)它希望通過(guò)struct建立的類(lèi)型,像內(nèi)置的int float類(lèi)型一樣使用方便。

//從匯編角度來(lái)看

有兩種返回值方法,第一種是直接返回到寄存器的,第二種是類(lèi)似于結(jié)構(gòu)體返回值的那樣 建立臨時(shí)存儲(chǔ)區(qū)的返回方式

比如 int 返回值類(lèi)型、指針?lè)祷刂殿?lèi)型,在ia32平臺(tái)上都是直接返回到eax寄存器 不管是vc還是gcc, 對(duì)于像float 類(lèi)型的浮點(diǎn)返回值類(lèi)型,在ia32平臺(tái),往往借助于fpu浮點(diǎn)運(yùn)算器部件中的寄存器存儲(chǔ)于棧中,第三類(lèi)就是像struct結(jié)構(gòu)體返回值,它需要建立臨時(shí)對(duì)象,對(duì)于c語(yǔ)言來(lái)說(shuō)引入一個(gè)臨時(shí)內(nèi)在區(qū)域是問(wèn)題不大的,但是對(duì)于c++這個(gè)有時(shí)候是致命的。

我是菜鳥(niǎo),希望能幫到你,觀樓主英俊瀟灑,風(fēng)流倜儻,必當(dāng)世豪杰,誠(chéng)邀加入0x30百度貼吧,共商義舉,建不世之功!


文章標(biāo)題:c語(yǔ)言函數(shù)能返回結(jié)構(gòu)體嗎 c++構(gòu)造函數(shù)不能有返回類(lèi)型
文章鏈接:http://weahome.cn/article/hhjdpd.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部