c語言elemtype
1. c語言elemtype
你是說的數據結構吧,elemtype只是一個別名,你要把自己要用的類型定義為elemtype才行。比如我的數據本身的類型是整型的,就這樣寫
typedefintelemtype;
//下面就可以統一寫
elemtypea,b;
//相當於inta,b;
//這樣的好處是可以適用於任何類型,只要在用的時候,再定義一次就行了
2. 關於c語言數據結構的頭文件和Elemtype類的一些問題
1.
<stdio.h>一般寫C語言程序都要加這個頭文件,因為它包含scanf()、printf()等控制輸入和輸出的函數
<time.h>包含的主要是和時間相關的函數
<string.h>主要包含用來拷貝或比較字元串的函數
<stdlib.h>主要包含這幾個函數:malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()
這是比較常用到的頭文件
2.
typedef struct{
SElemtype *base;
SElemtype *top
int stacksize;
}SqStack;
以上為聲明一個結構體,並用SqStack作為這個結構體名,結構體即為我們自己定義的數據類型。
其中selemtype也是一個自定義的結構體名,具體代表什麼還要看具體的代碼。
for(p=str;*p;p++)估計是寫錯了
如果前面沒有定義 char p;
那麼這個循環語句應該寫成
for(char p=str;*p;p++);
p可以在for語句中定義,但是定義的p只能作用於這條for語句之內。
3. C語言elemtype
我理解你說的意思是不是想讓elemtype可以替換任意一種類型?
如果是的話,這種東西叫做模板,它是C++的內容,不在C語言的范疇內。
具體用法是:
template <typename elemtype>
typedef struct{
elemtype *elem;
int length;
int listsize;
}sqlist;
之後聲明變數時要賦予elemtype一個已知的類型,比如int。
struct sqlist<int> a;
對於a這裡面的elemtype就變成了int。
不過這是C++的內容,C裡面不能用。
如果不用模板,而必須在C語言里用的話,有兩種方法。
1. 之前聲明它
typedef int elemtype;
2. 之前預編譯它
#define elemtype int
4. C++中ElemType &e和ElemType* e 一個意思嗎
您好,這個要看函數要實現的功能而定,比如void insert(int i,ElemType &e)函數從名字上看其作用就是將整數 i 插入ElemType鏈表 e 中,函數調用中對e的值的改變必須在函數外生效,所以應該用第二種形式 void insert(int i,ElemType &e)。
如果要求函數中對實參值的改變不影響函數外的值,則用第一種形式void insert(int i,ElemType e)
void insert(int i,ElemType e)中參數e是值傳遞,調用insert函數返回後實參的值不會改變。
而void insert(int i,ElemType &e)中e傳遞的引用,如果insert函數中改變了e的值,相應的實參值也會改變。
比如下面的程序
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
void insert(int i ,ElemType& e)
{
e=45;
}
main()
{
int e=3;
insert(0,e);
printf("after call insert e=%d",e);
//system("pause");
}
最後列印出來的是e=45,而將void insert(int i ,ElemType& e)改為void insert(int i ,ElemType e)最後列印出來的就是e的原始值e=3
5. c語言問題 typedef int elemtype和#define elemtype int的區別
前面一種會識別elemeype為一種數據類型,可以定義elemtype a;
而後面的只是對int 定義了一個宏,在編譯時會將使用elemtype的地方替換成int,
這樣使用沒什麼區別,
不過不推薦,如果是想作為類型的話,還是推薦是用typedef;
6. C語言中方法參數列表ElemType &e和ElemType*e一樣嗎
一樣,都是指e的地址
7. c語言typedef struct {ElemType *elem}Sqlist; Sqlist
應該是La.elem[0],或La.*elem
8. C語言中,ElemType 是什麼數據類型
在C語言數據結構中,關於數據元素的類型定義均用「 ElemType e;」來表示,其中e是表示數據元素的變數,而ElemType則是它的類型,ElemType的含義就是「數據元素的類型」,是一個抽象的概念,是表示我們所要使用的數據元素應有的類型。
ElemType是數據結構上為了說明問題而用的一個詞。它是element type(「元素的類型」)的簡化體。
因為數據結構是討論抽象的數據結構和演算法,一種結構中元素的類型不一定是整型、字元型、浮點型或者用戶自定義類型,為了不重復說明,使用過程用 「elemtype」 代表所有可能的數據類型,簡單明了的概括整體。
在演算法中,除特別說明外,規定ElemType的默認是int型。
拓展資料:
Elem Type的使用方法:
在定義結構體array的時候有這樣一段:
typedef struct
{
ElemType data[maxsize];
int length;
}array;
使用:typedef int ElemType;//定義ElemType為int類型
你想讓它是什麼類型自己用typedef重定義就行。
也可以用模板表示,類似template<class T>裡面的T。
9. C語言elemtype,其中elemtype不是關鍵字,那麼如果我要讓這個語句在C程序中能執行,應該怎麼寫
我理解你說的意思是不是想讓elemtype可以替換任意一種類型? 如果是的話,這種東西叫做模板,它是C++的內容,不在C語言的范疇內。 具體用法是: template <typename elemtype> typedef struct{ elemtype *elem; int length; int listsize; }sqlist; 之後聲明變數時要賦予elemtype一個已知的類型,比如int。 struct sqlist<int> a; 對於a這裡面的elemtype就變成了int。 不過這是C++的內容,C裡面不能用。 如果不用模板,而必須在C語言里用的話,有兩種方法。 1. 之前聲明它 typedef int elemtype; 2. 之前預編譯它 #define elemtype int