1樓:匿名使用者
insert是向這個連結串列中插入資料,也就是說對連結串列進行了修改,所以要用指標傳遞或者引用傳遞.如果不加*使用值傳遞的話,那麼被修改的只是形參,這個形參只是實參的一個值拷貝,函式執行完後,原連結串列實際上並未被修改.
isempty只是判斷連結串列是否為空,沒有對連結串列進行修改,所以值傳遞就可以了.
總之,如果要修改實參,那麼就要用指標傳遞或者引用傳遞.只是對實參進行讀操作的話,用值傳遞就可以了
2樓:
*號修飾的是左面的變數,即listnode*,這代表一個指標.所以總的意思是把指向listnode的指標(listnode*)起了個別名(typedef)叫listnodeptr.
如定義一個指標:
listnode* listnodeinstance;
等同於:
listnodeptr listnodeinstance.注意,這裡的listnodeinstance 是指標型別的.
不可能吧,你是不是看錯了,如果引數是listnodeptr的話,肯定不對的,你把**發我下吧?挺奇怪啊!
3樓:
定義一個指標,以後在結構體中比如需要使用連線next listnode之類的時候跳轉用的吧。
結構體struct前面加 typedef和不加typedef的區別
4樓:匿名使用者
用typedef後, 後面的bai語句的
語義就改du變了,
用typedef定義zhi型別別名
dao,這個別內名和型別一樣使用,
struct s a,b; 定義結構 s和 s的變數a,btypedef struct s a,b; 這裡除了定容義結構s, 又起了別名a和b,
a和b位置的識別符號就都是別名而不是變數
a和b也像型別一樣用來定義結構變數
因為起了別名 所以不起結構名也沒問題 typedef struct a;
一般用typedef同時定義結構型別,和結構指標型別typedef struct _s s,*ps;
s a;
ps p=&a;
5樓:匿名使用者
直接把結構名定義為am_win_menutext然後使用,這樣在使用時必須這樣:
struct am_win_menutext myval定義了別名之版後就可以:權
am_win_menutext myval這樣可以更清晰。
主要在c語言裡這樣使用 使得更方便。
c++就不用typedef 也可以直接使用結構體名。
c++中使用:
struct test
就可以定義一個名為test的結構體,但c中很可能編譯通不過。c語言並不支援在struct後使用標示符定義結構體的名字,test將會被忽略,這相當 於定義了一個沒有名字的結構體。若定義一個該結構體物件test mt 將會提示未定義的test錯誤資訊。
所以,在c語言中,一般使用typedef來定義結構體,上面的例子可以改為:
typedef struct _testtest_test要不要都可以。並且,第一個大括號不能像原來那樣隨便的換行寫(因為是typedef)。
6樓:匿名使用者
typdef就定義別名的,沒什麼區別
typdef sturct
a;和sturct a
;是一樣的
7樓:匿名使用者
typedef 能夠給你一個資料型別設定別名,如內typedef int integer;
#include
void main()
c語言中,關於用typedef 定義結構體的問題
8樓:匿名使用者
typedef struct a //這裡的來a可以自省略!形成一個匿名結構體 a是結構體名b; 因為前面有typedef命令,所以b不是變數,而是一個新的資料型別,相當於struct a
可以用b來定義變數,如:
b aa ;
與struct a aa ; 是一個意思
9樓:敬揚圭景天
實際c/專案中用typedef的作bai
用之一不du是為了少寫幾zhi行**。我用struct表明dao是一個"結構
內",用struct別名表明一個類,例如容student是一個物件很合理,struct
point則當一個"座標結構"看待,但是拋棄這種細節,抽象寫成二維"座標"point2d好像更好,再舉例,如果在c中定義一棧結構,那麼stack或stack看起來比struct
stack好,總之,我覺得這些都不是死的,在**可讀性(或其它的)基礎上,可以依據編碼命名規則規範或程式設計理念、或設計模式來決定"在一種語言上"的語法風格。
10樓:
儘管你已經採納了,但還是要說:那不是一個新的資料型別,只是一個已有型別的別名。概念問題請不要被忽悠。現在可能覺得沒什麼,到後來就會自討苦吃……
11樓:代悅聖代的
寫成下面的是簡單,但是定義一個結構體變數的時候呢就麻煩了。回要寫成struct mystruct ms;這樣定義。
而上面答
的有typedef的則不要,直接寫mystruct ms;這樣即typedef struct tagmystruct mystruct;後,原先定義結構體變數需要
struct tagmystruct ms;
現在只要寫成mystruct ms了。
12樓:匿名使用者
a是結構體名,b是struct a
如何用typedef 定義一個 包括指向該結構體指標的結構體?
13樓:匿名使用者
要有結構體名和別名,一起都要有。
不然定義next會出錯。
一般寫成內
typedef struct lnodelnode;
這裡lnode和struct lnode是兩個不同的名字容,但含義相同。 前者是後者的別名。
求解答c語言結構體定義中typedef的作用
14樓:仁昌居士
c語言結構體定義中typedef的作用是為一種資料結構體定義一個新名字。
在c語言中使用回typedef幫助定義結構體,對
15樓:逍遙足球子
加上typedef意為標籤式定義,在結構體定義之後,在定義型別時直接可以用結構體的名字去內定義物件。而不加上容typedef的話為型別名定義,也就要求之後再定義物件時需要加上 struct mystruct 才可以進行物件定義。
16樓:匿名使用者
定義baitypedef struct tagmystruct後 之後定du義zhi變數可以dao直接用 tagmystruct *p來定內義
但是struct mystruct,之
容後只能用struct mystruct *p來定義
17樓:匿名使用者
c裡面在定義結
bai構體型別的變數du
時要有struct關鍵字,如zhi果按照你下面的寫法dao就必須寫成:
struct mystruct a;
但是使用內typedef則是為結構體型別給容了一個新名字,按原先上面的寫法就直接寫成:
mystruct a;
18樓:匿名使用者
寫成來下面的是簡單,但是定義一個自結構體變數的時候呢就麻煩了。
要寫成struct mystruct ms;這樣定義。
而上面的有typedef的則不要,直接寫mystruct ms;這樣即typedef struct tagmystruct mystruct;後,原先定義結構體變數需要
struct tagmystruct ms;
現在只要寫成mystruct ms了。
19樓:蒼紫幽藍
typedef為c語言的關鍵字,作用是為一種資料型別定義一個新名字。
typedef struct tagmystruct
mystruct;
這種定義之後,之後定義struct tagmystruct結構體變數回時,可以直接使用答mystruct代替struct tagmystruct,例如mystruct a。
注意如果沒有使用typedef,下面這種模式:
struct mystruct
;那麼定義結構體變數必須 struct mystruct a這種方式定義。
所以typedef有簡化變數宣告的作用,還有就是在跨平臺方面有很大作用,定義機器無關型別。
c++標準庫使用的 typedef 來建立平臺無關型別例如size_t,ptrdiff 和 fpos_t 。
typedef定義結構體如何引用
20樓:匿名使用者
對比下面兩種定義:
struct a;
這種定義結構體在使用時應該是:
struct a b,c;
typedef struct a;
這種定義在使用時直接可以省略struct關鍵字,直接就是a b,c;
和int b,c;
類比一下,這時候
a對應型別,相當於int,b和c就是變數識別符號。
typedef顧名思義,就是type define,也就是型別定義。
21樓:匿名使用者
a就表示,是代表結構體型別
struct ;
類似 typedef int int
int與int等同
a b,c;就表示定義了兩個結構體變數b,c
c語言結構體中struct和typedef struct有什麼區別?
22樓:教育仁昌
c語言結構體中struct和typedef struct區別為:宣告不同、訪問不同、重新定義不同。
一、宣告不同
1、struct:struct可以直接使用結構體名字宣告結構體。
2、typedef struct:typedef struct的為。修飾結構體,結構體有了別名,通過結構體別名宣告結構體。
二、訪問不同
1、struct:struct定義的結構體變數,可直接訪問結構體成員。
2、typedef struct:typedef struct定義的結構體變數,不可直接訪問結構體成員,必須顯式的通過結構體變數來訪問成員。
三、重新定義不同
1、struct:想重新定義struct結構體的話,必須重寫整個結構體。
2、typedef struct:想重新定義typedef struct結構體的話,可以通過別名來繼承結構體進行重新定義。
23樓:妖刀
struct是結構體的關鍵字,用來宣告結構體變數如 struct student ; typedef是用來定義新的型別名來代替已有的型別名, 可將上面的結構體定義為 typedef struct student stud; 也就是說,將原來的struct student 重新定義為 stud; 舉個例子 如上面的方法定義了結構體student時,如果在主函式中宣告結構體變數時,應按如下方法 struct student stu[10];這樣就宣告瞭一個結構體陣列, 如果開始定義時用typedef,那麼就可以直接用 stud stu[10]來宣告, 這就他們的區別
24樓:汲玉羽菲
typedef可以定義一個新型別
以後定義struct變數就不用再加struct了
c語言結構體加型別定義typedef struct不懂,誰來幫幫我
25樓:戀戀土豆絲
typedef 是用來給已有的資料型別重新再起個名字。使用方法:
typedef 已有的型別名 新名字;
如 typedef int int; //給已有的型別int 再起個名字 int
在下面的語句中;即可以用int定義整形變數,也可以用int定義整形變數
int a; //定義整形變數a
int a;//也可以用新名字來定義整形變數a
typedef結構體指標變數再去定義變數什麼意思
driverextension是一個你自己命名的結構體的名字 看起來是驅動拓展?結構體裡的結構是自己定義的,不過這個結構體貌似是引用了另一個結構體。你說的pdriver extension driverextension就是這樣定義結構體的,沒有問題 typedef是自定義型別,相當於,用pdriv...
關於結構體指標問題,還有函式指標作為結構體成員的問題
雪豹出擊 int changevar int 你少些了個e這是一個函式指標,這個changevar指標指向一個這樣的函式 這個函式有一個int型引數,返回值也是int.所以if fb info.changevar 的意思就是判斷結構體fb info中的changevar是否為空,等同於if fb i...
結構體指標的問題,結構體指標和結構體中的指標的區別
楚劒蘭心 是呼叫操作符,是對指標的解引用然後再呼叫,只有指標呼叫別的變數或函式時使用,並且只要是用指標來呼叫的話,就必用它。比如 struct s int value s p 定義一個結構體指標 p value 呼叫結構體內的變數。也就是 p value 二者等價。 公珍碧魯哲 struct l 粗...