c語言資料結構L與 L?

2024-12-25 14:20:06 字數 4390 閱讀 7478

1樓:網友

<>變數前有&,這裡的形參l是引用型別,屬於引用呼叫,引用是c++裡的東西,不是c的。

簡單的說這裡的形參l不再是實參的副本,而就是實參本身,在函式中對形參l做的任何操作都會反應在實參上。

這裡的l不是引用型別,標準的傳值呼叫,形參l就是呼叫時實參的副本,所以在函式中對l的操作不會反應到實參上。

2樓:承詩宸

c語言 資料結構,*&l 與*l的差別是什麼? *是用來做指標處理的。*l表示:

而l則把20h這個位址存起來了。*l就等於5.而*&l而不同&是取位址的意思。

l就是把l的位址位置取出來。例於l在0x30位置。*&l的結果,相當於*(0x30)。

這個時候,要看0x30裡面的值是多少。然後把這個值做為指標,再把具體的資料取出來。

3樓:可玉穿搭教學

是用來做指標處理的。

而l則把20h這個位址存起來了。

l就等於5.

而*&l而不同。

是取位址的意思。

l就是把l的位址位置取出來。例於l在0x30位置。

l的結果,相當於*(0x30)。這個時候,要看0x30裡面的值是多少。然後把這個值做為指標,再把具體的資料取出來。

4樓:百好佳

圖面上的意思是子函式insert引用l;子函式printlist是傳遞l指向的節點的位址;

c語言 資料結構,*&l 與*l的差別是什麼?

5樓:蘭色的閃電

*是用來做指標處理的。

而l則把20h這個位址存起來了。

l就等於5.

而*&l而不同。

是取位址的意思。

l就是把l的位址位置取出來。例於l在0x30位置。

l的結果,相當於*(0x30)。這個時候,要看0x30裡面的值是多少。然後把這個值做為指標,再把具體的資料取出來。

6樓:匿名使用者

這個用在形式引數中。*&l表示傳遞引用,形參與實參就是同乙個變數;*l表示傳位址值,實參將位址值傳給形參後,他們之間不在有聯絡。

7樓:網友

當然有了。

l 表示以l這個指標變數中的內容為位址的變數中的內容。

l 是表示以l內容為位址的變數中的內容。

可能看了有點彆扭。

如l->i 且i=7;那麼 *l就是7;

如l中存了39501h這個位址,且這個位址所指的變數是j ,且j=3;那麼 *&l就是3。

資料結構&l與l區別

8樓:坑者

在學c語言的時候,要想昂函式返回乙個值,就要把這個函式的型別定義清楚,但是在資料結構的演算法中,需要返回的不只乙個值而且他們的型別又不一樣,所以,加個&,該變數也能作為函式的返回值返回到主函式中,而不會因為是區域性變數的關係在主函式中看不到變化,這是c++中的一種用法,物件導向的思想,和取位址符不一樣。

9樓:我的內心是個瘦子

參數列initlist(&l)中的&l表示是乙個位址,而這個函式需要用到l的位址。

主程式initlist(l)中的l本來就是個位址,對應輸入到函式引數也是個位址。

嗯嗯,白話了講就是你理解的意思~

資料結構中*&l啥意思和int *p, p=&l不一樣啊?

10樓:三天打魚

int *p 是定義乙個int型別的指標變數。

int l=5; 定義變數l賦值為5

p=&l;將l變數的指標賦值給p

p=6;給指標指向的變數賦值為6 這裡的*是解除指標運算 對指標指向的值操作。

這樣上面的l值就變成6了。

11樓:鎮遠山神侍

:取位址符。

取值符。l:取變數l的位址。

l:先取變數l的位址,再取出位址裡面的值,在這裡也就是變數l的值,*&l == l 的。

int *p 這個是定義指標變數,int *這是一種定義變數的格式,這個跟上面的取值符是不一樣的,一般c語言的書裡面有都講這個的區分,p =&l,這是指標變數賦值,指標變數存的是位址,在這裡是變數l的記憶體空間位址。

資料結構中的&l,如initlist(&l),是不是在c語言程式裡就得寫成initlist(*l)才能通過?

12樓:網友

「&l」這是c++的引用,不是c的,檔名儲存為*.cpp就可以以了。

c用的是指標。

c語言linklist &l 和linklist l的區別

13樓:薊皓厲藏

由於l是指標型別的導致,void

create_linklist(linklist&l),void

create_linklist(linklistl);這兩種都沒錯,但第一種從語義上更容易理解,從引用型操作會破壞原有的資料結構上理解,很容易知道建立的連結串列會直接修改l,第二種由於l是指標,雖然值傳遞,但實參l,形參l都是指標,傳值後又相同,導致實參l,形參l都指向相同的連結串列節點處。

14樓:尉典羽天睿

linklist&l

是引用傳遞。

可以起到修改連結串列的效果。

linklist

l是值傳遞。

傳的是l的乙個副本。

對副本操作後無法起到修改連結串列的效果。

c語言資料結構線性表問題

15樓:一頓能吃五碗飯

initlist()函式原型的形參是變數l型別的指標(即取變數l位址&l),listempty()函式的形參就是變數l型別。

資料結構 c語言 單連結串列 status listinsert_l(linklist &l,int i,elemtype e) &l是什麼意

16樓:網友

在c語言中,函式形參是沒有&修飾符的,這個&來自於c++,因為使用方便,且目前的大部分編譯環境都支援c++,所以不講究的人在c中使用了c++的&修飾符,在c++的函式形參表中,&修飾符表示對實參的引用,可以這樣理解,通過&操作符,在主調函式和被調函式中,主調函式中的實參對於被調函式如同該函式區域性變數一樣的使用許可權,就像全域性變數一樣。

資料結構(c語言)

17樓:有錢買不起房子

#include

順序表。#define listsize 100 //表空間的大小可根據實際需要而定,這裡假設為100

typedef int datatype; //datatype的型別可根據實際情況而定,這裡假設為int

typedef struct

seqlist;

表的初始化。

void initlist(seqlist *l)//將表的長度置為0

將新結點x按公升序插入l所指的順序表。

int insert_sqlist(seqlist *l,datatype x)

第乙個元素直接插入。

if(l->length==0)

l->data[l->length]=x;

else//表長加1

l->length++;

return 1;

/列印順序表。

int listprint(seqlist *l)

printf("順序表:");

for(i=0;ilength;i++)

printf("%d ",l->data[i]);

return 1;

int main()

列印順序表。

listprint(p);

return 0;}

18樓:網友

/*(1) initlist( )生成乙個順序表(2) insert_sqlist ( 在有序表中插入乙個元素x(3) listprint( )

顯示順序表所有元素*/#define list_size 1024 //順序表最大長度1024

typedef struct list //順序表結構體list;

#include

void initlist(list * list)void insert_sqlist(list *list,int x)

for(k=list->size-1;k>i;k--)//把順序表i後面位置的元素往後移。

list->num[i+1]=x;//x插入到i+1位置list->size++;

void listprint(list *list)printf("");

void main()

資料結構c語言描述,資料結構(C語言描述)

include include include define datatype int define maxsize 1000 typedef struct nodebitreenode datatype bt maxsize bitreenode buildbtree datatype bt,in...

c語言資料結構,C語言資料結構 快速排序的問題

將 放在變數名後,是先使用變數的值,再執行自加 自減 開始時i為左邊界,j為右邊界 以x s i 為中回間答值,將小於x的值放在左邊,大於x的值放在右邊找到大於x的值將其放在s j 中,j j 1,找到小於x的值將其放在s i 中,i i 1,直到所有數值按兩邊放好。依次在區間n,n 2,n 4,2...

資料結構C語言

其實這個是跟a與b大小的定義有關係,a與b相等的情況比較好判斷,所有元素都相等那麼就相等了。但是什麼情況下a比b大?通常的定義是根據a與b第一個不相等的元素來判斷。考慮字串的情況可以做類比,比如兩個字串 abcd 與 abce 其實可以看做是兩個順序表 a a b c d b a b c e 那麼我...