C 中ElemType e和ElemType e意思嗎

時間 2021-09-02 07:16:47

1樓:山水阿銳

您好,這個要看函式要實現的功能而定,比如函式從名字上看其作用就是將整數 i 插入elemtype連結串列 e 中,函式呼叫中對e的值的改變必須在函式外生效,所以應該用第二種形式 。

如果要求函式中對實參值的改變不影響函式外的值,則用第一種形式void insert(int i,elemtype e)

void insert(int i,elemtype e)中引數e是值傳遞,呼叫insert函式返回後實參的值不會改變。

而中e傳遞的引用,如果insert函式中改變了e的值,相應的實參值也會改變。

比如下面的程式

#include

#include

typedef int elemtype;

void insert(int i ,elemtype& e)

main()

最後列印出來的是e=45,而將void insert(int i ,elemtype& e)改為void insert(int i ,elemtype e)最後列印出來的就是e的原始值e=3

2樓:幻夢·人生

elemtype &e; 其中e是引用。

elemtype* e; 其中e是指標。

引用(reference)是c++對c語言的重要擴充。引用就是某一變數(目標)的一個別名,對引用的操作與對變數直接操作完全一樣。

宣告方法:型別識別符號 &引用名=目標變數名。

使用方法:直接使用.操作符就可以進行物件操作。

特點:必須進行初始化,且不能通過修改而指向其他物件。

指標(pointer)是程式語言中的一個物件,利用地址,它的值直接指向(points to)存在電腦儲存器中另一個地方的值。由於通過地址能找到所需的變數單元,可以說,地址指向該變數單元。

宣告方法:型別識別符號 *引用名=&目標變數名。

使用方法:使用(*e).或者e->操作符進行物件操作。

特點:可以初始化為任意值,可以修改指向的物件。

在使用方面,引用可以使用指標進行代替。指標在某些情況下可以使用引用進行代替。

從型別安全的角度考慮,最好多用引用,少用指標。

(elemtype *)是啥意思?

3樓:匿名使用者

elemtype(也有的書上稱之為elemtp)是資料結構的書上為了說明問題而用的一個詞。它是element type(「元素的型別」)的簡化體。

因為資料結構是討論抽象的資料儲存和演算法的,一種結構中元素的型別不一定是整型、字元型、浮點型或者使用者自定義型別,為了不重複說明,使用過程中用「elemtype」代表所有可能的資料型別,簡單明瞭的概括了整體。

例子:elemtype *是定義指向這種型別的指標,p=(elemtype *)malloc(8*sizeof(elemtype)),開闢8個elemtype大小的記憶體空間,把地址分配給指向elemtype的指標p。

elem是單詞element(元素)的縮寫,在程式定義中代表某一不確定的型別,也就是抽象的資料型別。

為了使程式可讀性強,並且便於修改,讓elem代表多種的資料型別,也就是為int、char等等的資料型別,起了一個別名。

在標頭檔案中定義:typedef char elem;  表示:抽象元素型別為char型別,這樣定義之後,下面的程式中elem所定義的元素就是char型別的了。

如果需要修改其型別,直接修改char到其他型別,elem便又代表了所修改的型別資料,這也是方便性的體現。

(elemtype *)具體用法是:

template typedef structsqlist;

之後宣告變數時要賦予elemtype一個已知的型別,比如int。 struct sqlista; 對於a這裡面的elemtype就變成了int。 不過這是c++的內容,c裡面不能用。

如果不用模板,而必須在c語言裡用的話,有兩種方法:

1、之前宣告它 typedef int elemtype;

2、之前預編譯它 #define elemtype int

4樓:匿名使用者

在學資料結構?

elemtype是抽象資料型別的定義啊

你想定義什麼就定義什麼了

elemtype *是定義指向這種型別的指標p=(elemtype *)malloc(8*sizeof(elemtype))

開闢8個elemtype大小的記憶體空間,把地址分配給指向elemtype的指標p

5樓:0不知火舞

通俗的說,elemtype就是由之後資料決定的任意型別

6樓:匿名使用者

一個型別為elemtype的指標

在C中如何引用程式集和名稱空間,C 中名稱空間「System」中不存在型別或名稱空間名稱「Forms」(是缺少程式集引用嗎?)這句話怎麼改啊。

我來給你講講吧 什麼是程式集?程式集是一個 dll,你想使用其中的類,就必須要將該dll檔案新增到你的專案中。一個程式集包括一個或多個名稱空間。舉例來說,名稱空間 system.data 來自檔案system.data.dll,名稱空間system.data.sqlclient 同樣來自 syste...

c中new和override的區別

如果你用override,則無論呼叫的是a類還是b類中的test 系統都會找到它實質類的test 如果是用的new,則可以通過型別轉換呼叫到基類的test 下面是override的情況 a a new a b b new b a a1 new b a.test 呼叫a中test b.test 呼叫b...

C 中類的定義可以巢狀嗎,c 中函式的定義和呼叫都可以巢狀嗎

芃芃 1 類的定義是可以巢狀的 2 在函式中可以定義類,但是意義不大,因為在函式中定義類,你只能在這個函式中使用這個類,其他的函式是沒法用的,所以一般不會把類的定義放在函式中,但是這並沒有錯,能編譯過,也就是說作用域只在函式。 周德群 不行,在函式中不能定義類,類可以包含函式,但是函式不可能包含類,...