1樓:匿名使用者
這個是取bai地址的作du
用。一般定義一個普通變數,zhi若要dao將其在指標中呼叫就專要用&。如int a;要將屬a在函式void hanshu(int *t)中呼叫的話,那麼就應該寫成hanshu(&a)。
另外在鍵盤輸入資料的時候也要用到,比如scanf("%d」,&a)。&這個符號,主要用在這兩個地方。
在資料結構中什麼時候用&,什麼時候用*,什麼時候用&*?
2樓:匿名使用者
資料結復
構應用非常廣泛。資料結制構應用在程式bai設計的方方du面面,是所有程式設計的zhi靈魂。在操dao作系統源程式中,資料結構的樹和森林被用來構造檔案系統。
我們看到的window和linux等檔案管理系統都是樹型結構。在編譯系統中,如c編譯器源**中,二叉樹的中序遍歷形式被用來存放c 語言中的表示式。在遊戲設計領域,許多棋類遊戲的步驟都是按樹型結構編寫。
在網路中如何選擇好的路由,就是資料結構中的圖的應用.
總之,如果你想寫些實用的程式,一定會用到資料結構。所以資料結構一定要學好。
資料結構中&的作用
3樓:匿名使用者
&是c++中的引用符號,用作
函式形參是表明傳遞的是實參
的一個引用(即實參的一版個別名),這樣在函式中對權形參操作會影響到實參,通常用&來通過函式改變實參的值。如果沒有&,則傳遞的只是實參的一個副本,在函式中對形參的操作不會影響到實參。正如例子中,對於l凡涉及到要通過函式修改的它時(如在表中插入元素listinsert或刪除元素listdelete )l前都有&,不涉及修改變數時(如獲取表中元素priorelem,getelem)l前沒有&。
回到例子:
第一個使用&是為了用pre_e來儲存順序表中元素的值(執行完函式後pre_e在函式中的值被儲存起來),以此方便後續操作對這個值的訪問。
第二個函式中&的作用於第一個相同
listinsert函式是在表裡面插入e這個元素,只需要插入它的副本就行了,所以不用加&,而listdelete函式作用是刪除表中元素,用&是為了得到被刪除的元素的值。如果沒有&,函式執行完後e的值還是原來未執行listdelete前的值,所以用&。
資料結構中&的作用是什麼?
4樓:匿名使用者
qstack &s是
一個引用的固定用法,而不是取地址,例如,int a; int &b = a; //這就表明了b是專a的「引用」,即屬a的別名。
&是c++中的引用符號,用作函式形參是表明傳遞的是實參的一個引用(即實參的一個別名),這樣在函式中對形參操作會影響到實參,通常用&來通過函式改變實參的值。如果沒有&,則傳遞的只是實參的一個副本,在函式中對形參的操作不會影響到實參。
第一個使用&是為了用pre_e來儲存順序表中元素的值(執行完函式後pre_e在函式中的值被儲存起來),以此方便後續操作對這個值的訪問。
第二個函式中&的作用於第一個相同
listinsert函式是在表裡面插入e這個元素,只需要插入它的副本就行了,所以不用加&,而listdelete函式作用是刪除表中元素,用&是為了得到被刪除的元素的值。如果沒有&,函式執行完後e的值還是原來未執行listdelete前的值,所以用&。
資料結構中*和&的區別是什麼
5樓:匿名使用者
應該是c++裡的吧?沒有在c語言版的資料結構中看見&吧?
在定義時,* 是一個識別符號,宣告該變數是一個指標,比如說int *p; 那p就是一個指向int型的指標;
在呼叫時,*p是指指標p指向的那個變數,比如說之前有int a=5;int *p=a;那麼p的值是a的地址,也就是指標p指向a,*p則等於a的值,即*p=5。
而&,則是引用,比如說有定義int a=5;再定義int b=&a;那麼這裡的b則引用a的值,即b=5
,而再給b賦值:b=10,a的值也會變為10。
我想樓主會問*和&的區別,應該是針對函式定義裡的引數而言吧,因為這裡的這兩者比較相似:
舉幾個簡單例子:
先定義有int x=0;和int *p=x;
1、若定義函式: void fun_1(int a) , 則呼叫:fun_1(x); 之後,x還等於0;因為fun_1函式只改變了形參a的值,a只是fun_1函式裡的區域性變數,呼叫fun_1(x)相當於是「a=x;a=5;」,x沒變;
2、若定義函式:void fun_2(int &a) , 則呼叫:fun_2(x); 之後,x等於5;因為這裡的a引用了x的值;
3、若定義函式:void fun_3(int *a) , 則呼叫:fun_3(p); 之後,x也等於5;因為fun_3函式的引數a是一個指標,相當於a=p;*a則與*p指向同一地址,改變*a即改變*p即x
6樓:9小王子非魚
資料結構中*是取地址內容,和c語言用法一樣。而&的用法有兩種,一種是取地址運算子,和c語言的一樣,另一種是引用,參考了c++的用法。
*有兩個意思,一是定義指標時使用:int* p=pa;另一個是解引用時使用:cout<<*p<&也有兩個意思,一是取地址時使用:
int* p=&a;另一個是定義引用時使用:int& a=b。
*&的意思是指標的引用,一般在函式的傳參時使用,表示將指標直接傳給函式,不是僅僅複製指標的地址作為副本進行傳遞。
資料結構中的&是什麼意思?
7樓:
sqstack &s是一個引用
的固定用法,而不是取地址,例如,int a; int &b = a; //這就表明了b是版a的「引用」,即a的別名。經過權這樣的宣告,使用a或b的作用相同,都代表同一變數。去掉&也不會怎麼樣,只是申明瞭一個sqstack s的變數而已
8樓:手機使用者
列印中的格式符,表示輸出一個縮排tab
希望能解決您的問題。
9樓:匿名使用者
它是順序棧的定義,在書本46頁最上面那段有說明
資料結構什麼時候用 *&p 什麼時候用&p,就仔細解釋原因, 50
10樓:匿名使用者
沒有這種引用方式吧。
node* &p, 表示指標p是一個對node*指標的引用,需要改變的是指標的內容。 p是一個指標。
node & p ,表示是對結點p的引用,p是一個結點。
c語言資料結構時間複雜度,C語言,資料結構中演算法的時間複雜度
1 因為抄f n 和g n 在n趨於 無窮大時襲為n 3階,h n 為n 1.5因此 1 f n o g n 2 g n o f n 3 h n o n 1.5 都正確bai,第 4 不對,du因為nlgn 的無窮zhi 大階次比n 1.5低,h n 趨於無窮大時dao被忽略了3 從優到劣也就是從階...
資料結構學了有什麼用,學資料結構有什麼用?
資料結構是在整個電腦科學與技術領域上廣泛被使用的術語。它用來反映一個資料的內部構成,即一個資料由那些成分資料構成,以什麼方式構成,呈什麼結構。資料結構有邏輯上的資料結構和物理上的資料結構之分。邏輯上的資料結構反映成分資料之間的邏輯關係,而物理上的資料結構反映成分資料在計算機內部的儲存安排。資料結構是...
資料結構試題求解,資料結構試題 求答案
1 b 刪第一個結點,時間複雜度分別為o 1 和o n 兩個連結串列用相同型別變數,佔相同大專小空間屬 2 c 第h層和第h 1層都有可能有葉子結點 第h 1層有可能存在度為1的結點 3 a 參照b樹的插入演算法 4 c q是p的前驅結點 5 b 6 c 7 d tail a d,e,f head ...