第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

C語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的兩種聲明結(jié)構(gòu)體的方式有什么區(qū)別

C語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的兩種聲明結(jié)構(gòu)體的方式有什么區(qū)別

數(shù)據(jù)結(jié)構(gòu) 順序表結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)體typedef struct {     ElemType data[MAXSIZE];     int length;}SqList;第一種聲明方式SqList SeqlistInsert(SqList L, int i, ElemType x)第二種聲明方式SqList SeqlistInsert(SqList *L, int i, ElemType x)加星號(hào) " * "和不加*有啥區(qū)別,主要是結(jié)構(gòu)體加了* 號(hào)如何看這個(gè)數(shù)據(jù)和操作的問題
查看完整描述

2 回答

?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊

一個(gè)是傳指針一個(gè)是傳副本,通常不會(huì)傳副本,一是大量占用內(nèi)存二是對對象修改不靈活。建議你找個(gè)c基礎(chǔ)的書開始看。

查看完整回答
反對 回復(fù) 2018-10-29
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

C語言函數(shù)傳遞參數(shù)是值傳遞,也就是會(huì)將實(shí)參復(fù)制一份,然后再給函數(shù)使用。
比如這個(gè)函數(shù),

SqList SeqlistInsert(SqList L, int i, ElemType x)
{
...
}

SqList S1;ElemType E1;...
SeqlistInsert(S1, 1, E1);...

S1會(huì)被復(fù)制一份,然后傳給SeqlistInsert()函數(shù),如果SeqlistInsert()函數(shù)嘗試對S1進(jìn)行修改,比如SeqlistInsert(S1, 1, E1)中有這個(gè)語句

S1.length = 3;

這里修改的并不是我們最開始定義的S1(SqList S1;處定義的S1),而是復(fù)制后的S1,這么做的結(jié)果就是我們沒有辦法修改之前定義的S1。

另一種形式就不一樣了,

SqList SeqlistInsert(SqList *L, int i, ElemType x)
{
...
}

SqList *S1;ElemType E1;...
SeqlistInsert(S1, 1, E1);

這里S1是指在,它的值就是S1所在的內(nèi)存地址。我們?nèi)绻胄薷腟1的值,我們只需要添加

S1->length = 3;

就可以修改之前定義的S1了。因?yàn)殡m然傳入SeqlistInsert()函數(shù)的也是S1的復(fù)制體,但它們的值都是S1的內(nèi)存地址,所以我們可以用這種方式修改S1中元素的值。

如果還有不懂,請百度"C語言函數(shù)值傳遞"。


查看完整回答
反對 回復(fù) 2018-10-29
  • 2 回答
  • 0 關(guān)注
  • 1093 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)