① (1)結構體的作用是什麼如何進行初始化(2)如何訪問結構體中的成員(3)鏈表有什麼優點
在c語言中,可以使用結構體(Struct)來存放一組不同類型的數據。結構體的定義形式為:
struct 結構體名{
結構體所包含的變數或數組
};
結構體是一種集合,它裡麵包含了多個變數或數組,它們的類型可以相同,也可以不同,每個這樣的變數或數組都稱為結構體的成員(Member)。
結構體定義:
第一種:只有結構體定義
struct stuff{
char job[20];
int age;
float height;
};
第二種:附加該結構體類型的「結構體變數」的初始化的結構體定義
//直接帶變數名Huqinwei
struct stuff{
char job[20];
int age;
float height;
}Huqinwei;
也許初期看不習慣容易困惑,其實這就相當於:
struct stuff{
char job[20];
int age;
float height;
};
struct stuff Huqinwei;
第三種:如果該結構體只用一個變數Huqinwei,而不再需要用struct stuff yourname;去定義第二個變數。
那麼,附加變數初始化的結構體定義還可進一步簡化出第三種:
struct{
char job[20];
int age;
float height;
}Huqinwei;
把結構體名稱去掉,這樣更簡潔,不過也不能定義其他同結構體變數了——至少我現在沒掌握這種方法。
結構體變數及其內部成員變數的定義及訪問。
要分清結構體變數和結構體內部成員變數的概念。
就像剛才的第二種提到的,結構體變數的聲明可以用:
struct stuff yourname;
其成員變數的定義可以隨聲明進行: struct stuff Huqinwei = {"manager",30,185};
也可以考慮結構體之間的賦值:
struct stuff faker = Huqinwei;
//或 struct stuff faker2;
// faker2 = faker;
列印,可見結構體的每一個成員變數一模一樣
如果不使用上邊兩種方法,那麼成員數組的操作會稍微麻煩(用for循環可能好點)
Huqinwei.job[0] = 'M';
Huqinwei.job[1] = 'a';
Huqinwei.age = 27;
Huqinwei.height = 185;
結構體成員變數的訪問除了可以藉助符號".",還可以用"->"訪問。
② c語言的優點
c語言的優點:
1.簡潔緊湊、靈活方便 C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小...
2.運算符豐富 C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制...
3.數據類型豐富 C語言的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型...
4.表達方式靈活實用 C語言提供多種運算符和表達式值的方法,對問題的表達可通過多種途徑獲得...
5.允許直接訪問物理地址,對硬體進行操作 由於C語言允許直接訪問物理地址,可以直接對硬體進行訪問。
③ C語言有什麼優點什麼缺點有什麼特別之處
c語言的優點就是它的性能極佳,其它編程語言幾乎沒有它的性能,因此它被用為linux操作系統設計語言。
c語言的缺點是太靈活,沒有垃圾回收,代碼不好編寫。
c語言特別之處就是它的指針和結構體,這兩個東西的存在讓c語言變得異常強大,很多復雜的業務設計,都可以通過它們兩個來實現,也可以說,只有掌握了指針和結構體,你才算入門c語言。
④ 結構體c語言是什麼
結構體c語言也就是C語言結構體,C語言結構體(Struct)從本質上講是一種自定義的數據類型,只不過這種數據類型比較復雜,是由 int、char、float 等基本類型組成的,可以認為結構體是一種聚合類型。
C語言中,結構體類型屬於一種構造類型(其他的構造類型還有數組類型,聯合類型)。在實際開發中可以將一組類型不同的、但是用來描述同一件事物的變數放到結構體中。
C語言結構體的特點
結構體和數組在處理多個對象的集合方面具有諸多相同點,因而它們在 C 語言中被統稱為聚合類型。但兩者也有明顯的不同點,數組被用於高效處理「相同類型」的數據的集合,而結構體通常被用於高效處理「不同類型」的數據的集合(偶爾也會有成員類型全部相同的情況)。
⑤ 請問下C語言中的結構體有什麼用
【結構體作用】結構體和其他類型基礎數據類型一樣,例如int類型,char類型只不過結構體可以做成你想要的數據類型。以方便日後的使用。在實際項目中,結構體是大量存在的。研發人員常使用結構體來封裝一些屬性來組成新的類型。結構體在函數中的作用不是簡便,其最主要的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什麼,只要根據定義使用就可以了。====================================================結構體可以定義一些復雜數據類型,比如我要定義一個員工信息的結構體,就可以在結構體里添加員工編號、姓名、工資、地址、出生日期、電話等信息,有了結構體給編程帶來很大的方便。⑥ C語言剛學的鏈表覺得各種不方便 總覺得結構體比這個好用太多 有沒有大神能告訴我鏈表到底有什麼優點或
鏈表是用來代替數組的。在需要靈活地向隊列中插入數據或刪除數據時,鏈表的優勢就能體現出來了。因為數組就不能方便靈活地插入或刪除數據。
鏈表的節點也可以是結構體。所以你不應該把鏈表跟結構體比較。
鏈表也有缺點,那就是不能象數組那樣通過下標直接找到某個元素,而必需從頭一個一個地「查」。
將來你學了「二叉樹」時,就會發現「二叉樹」是介於「鏈表」和「數組」之間的一種數據結構,即可以靈活地向隊列中插入數據或刪除數據,又可以按下標快速獲取某個元素。但「二叉樹」也有缺點,那就是太復雜了!
⑦ 一道c語言解答函數返回多個值,用全局變數,傳址參數,和返回結構體變數,他們之間的優缺點在哪,求解答
全局變數:
優點:變數在各個函數間自由調用和賦值,不需要考慮各個函數直接的傳值問題,程序簡單。
缺點:①資源佔用多;②函數的移植性差;③全局變數用的多容易混,程序員記憶量大,有時需要列一個變數表。
結構體變數:
優點:方便。
缺點:使用范圍受限,如果幾個返回值正好是某個已有結構體變數的內容,那才是不二的選擇。如果單獨為了返回幾個值而定義一個結構體變數,則得不償失,增加編程的工作量。所以這個方法用的少。
傳值參數(指針):
優點:用傳值參數(指針)回傳返回值是最常用的方法,需要哪一個值回傳,就定義哪一個變數的指針,用完就把內存收回來了,執行速度快,程序直觀,函數的移植性好。
缺點:要熟悉指針的使用,別搞亂套。定義指針,增加了一些工作量。