① c語言結構體
通俗地說,C語言的結構體是一種復合數據類型。舉一個應用C語言結構體編程的例子,例如:編制一個人員通訊錄程序。一般來說,通常通訊錄信息包含如下內容:姓名、性別、地址、座機電話、手機號碼、郵政編碼。那麼像這種情況下,如果使用 C 語言提供的結構體定義數據類型就很方便了。
#define NAMELEN 20 /* 姓名長度,可自行修改 */
#define SEXLEN 4 /* 性別 */
#define ADDRESSLEN 40 /* 通訊地址長度,可自行修改 */
#define ZUOJI_LEN 20 /* 座機電話長度,可自行修改 */
#define SHOUJI_LEN 11 /* 手機長度為 11 位 */
#define YOU_BIAN_LEN 6 /* 郵編長度,一般為 6 */
struct tong_xun_lu /* 定義一個名為 tong_xun_lu 的結構體 */
{
unsigned char name[NAMELEN] ;
unsigned char sex[SEXLEN] ;
unsigned char address[ADDRESSLEN] ;
unsigned char zuoji_phone_number[ZUOJI_LEN] ;
unsigned char shouji_phone_number[SHOUJI_LEN] ;
unsigned char you_bian[YOU_BIAN_LEN] ;
} ;
struct tong_xun_lu my_address[200] ; /* 定義一個最多可以存放 200 個人的通訊錄的結構數組 */
② C語言結構體定義問題
typedef struct Lnode {
elemtype data;
struct Lnode * next;
} LNode,* LinkList;
這是一個鏈表結構體的定義,
typedef struct Lnode 是定義了一個Lnode結構體。
struct Lnode *next; 是定義了Lnode結構體的一個指針。這樣它可以指向Lnode類型的結構體,作為鏈表的下一個元素
}LNode,*LinkList; 此處的LNode表示它是一個LNode結構體變數。
③ C語言結構體Struct怎麼使用
在Turbo C中,結構也是一種數據類型, 可以使用結構變數,因此,像其它類型的變數一樣,在使用結構變數時要先對其定義。
如果需要定義多個具有相同形式的結構變數時用這種方法比較方便,它先作結構說明,再用結構名來定義變數。
(3)c語言結構體語法擴展閱讀
指向結構體的指針是一個一直都沒有掌握好的點,希望這里能記錄好一點,加強理解。
對於指針有幾個好處,
第一:就像指向數組的指針比數組本身更容易操作一樣,指向結構的指針通常也更容易操作;
第二:在早期的C中參數傳遞只能使用結構的指針;
第三:很多奇妙的數據表示都是用了包含指向其他結構的指針的結構。
和數組不同,結構的名字不是該結構的地址(即單獨的結構名並不是該結構地址的同義詞),必須使用 & 運算符。
參考資料c語言結構體struct相關使用說明
④ C語言結構體的定義
第二個struct
student是定義了一個student結構體,這個明白吧。
第一個是用typedef把struct
student這個結構體類型名字重新定義為student,也就是說struct
student和student表示同一個事物,都是一個類型的標識符,比如
typedef
int
zhengshu;
就是你把整型int重命名為zhengshu,下面定義:int
i;
和
zhengshu
i;
兩句就是等價的了
打字不易,如滿意,望採納。
⑤ c語言結構體是什麼
C語言結構體(Struct)從本質上講是一種自定義的數據類型,只不過這種數據類型比較復雜,是由 int、char、float 等基本類型組成的。你可以認為結構體是一種聚合類型。
在實際開發中,我們可以將一組類型不同的、但是用來描述同一件事物的變數放到結構體中。例如,在校學生有姓名、年齡、身高、成績等屬性,學了結構體後,我們就不需要再定義多個變數了,將它們都放到結構體中即可。
簡介
關鍵字struct和結構體名組合成一種類型標識符,其地位如同通常的int、char等類型標識符,其用途就像 int 類型標識符標識整型變數一樣可以用來定義結構體變數。
定義變數以後,該變數就可以像定義的其他變數一樣使用了;成員又稱為成員變數,它是結構體所包含的若干個基本的結構類型,必須用「{}」括起來,並且要以分號結束,每個成員應表明具體的數據類型。
⑥ C語言結構體定義
C語言結構體定義:struct為結構體關鍵字,tag為結構體的標志,member-list為結構體成員列表,其必須列出其所有成員;variable-list為此結構體聲明的變數。
結構體是C語言中聚合數據類型(aggregatedatatype)的一類。結構體可以被聲明為變數、指針或數組等,用以實現較復雜的數據結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問。
(6)c語言結構體語法擴展閱讀
1、struct是聲明結構體類型時必須使用的關鍵字,不能省略。「結構體」這個詞是根據英文單詞structure譯出的。
2、structSTUDENT是定義的數據類型的名字,它向編譯系統聲明這是一個「結構體類型」,包括name、num、sex、age、score、addr等不同類型的項。
3、structSTUDENT與系統提供的int、char、float、double等標准類型名一樣,都是數據類型,具有同樣的作用,都是用來定義變數的。
⑦ c語言結構體語法問題
你對指針不太了解吧
我說說我的理解
首先是typedef的使用:
舉例
typedef int ABC;
那麼 int a=3和 ABC a=3;就完全一樣了
也就是說 給int取了個小名叫ABC,
同理,在
typedef struct node
{
int data;
struct node *next;
}linknode;
typedef linknode *linklist;
中,比如你想定義一個結構體變數你可以用以下2種方式
1 struct node aaaa;
2 linknode aaaa;
效果完全一樣。
而沒有typedef的結構體:
struct node
{
int data;
struct node *next;
}linknode;
那麼這里的linknode 就相當於int a 中的a,而不
是 int ,
不知道你理解我所說的關於是否存在typedef
的差別沒有
⑧ c語言結構體
B是正確的,C是不符合語法定義(不要問為什麼,就是人為定義的)。D錯得更離譜。
A的定義是正確的,但不是題目的要求。
他等於把s 定義成 struct { }; 的這么一個類型。
⑨ C語言 結構體
在C語言中,只有在定義字元數組的時候才能用「=」來初始化變數,其它情況是不能直接使用「=」來對字元數組賦值,要為字元數組賦值建議採用string.h頭文件中的strcpy函數來完成。
可以再定義結構體數組時初始化,代碼如下
STUstu[2]={{2001,"雙方的","高數",100,100,100,100,"不及格"},{2002,"雙方","C語言",100,100,100,100,"及格"}};
注意,不要在聲明結構體的時候初始化變數,雖然在語法上沒有問題,但是會影響後面的賦值。應該改為
typedefstructstudent{
intid;//學號
charname[80];//姓名
charsubject[80];//學科
floatper;//平時成績
floatmid;//期中成績
floatfinal;//期末成績
floattotal;//總評成績
charlevel[10];//等級
}STU;
⑩ C語言 結構體定義
第一種是定義一個結構體並取個student結構體名,下次定義結構體是:
只要:student
<標識符>;
乳student
stu;
而第二種:必須這樣定義:struct
student
stu;