當前位置:首頁 » 編程語言 » c語言結構體代碼通俗理解
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言結構體代碼通俗理解

發布時間: 2023-06-16 04:55:41

A. c語言中struct是個什麼意思 怎麼用 能不能通俗點說

結構(struct)

結構是由基本數據類型構成的、並用一個標識符來命名的各種變數的組合。
結構中可以使用不同的數據類型。

結構說明和結構變數定義

在Turbo C中, 結構也是一種數據類型, 可以使用結構變數, 因此, 象其它 類型的變數一樣, 在使用結構變數時要先對其定義。定義結構變數的一般格式為:

struct 結構名

{

類型 變數名;

類型 變數名;

...
} 結構變數;

結構名是結構的標識符不是變數名。 類型為第二節中所講述的五種數據類型(整型、浮點型、字元型、指針型和 無值型)。

構成結構的每一個類型變數稱為結構成員, 它象數組的元素一樣, 但數組中 元素是以下標來訪問的, 而結構是按變數名字來訪問成員的。 下面舉一個例子來說明怎樣定義結構變數。

struct string

{

char name[8];

int age;

char sex[2];

char depart[20];

float wage1, wage2, wage3, wage4, wage5;

} person;

這個例子定義了一個結構名為string的結構變數person, 如果省略變數名 person, 則變成對結構的說明。用已說明的結構名也可定義結構變數。這樣定義 時上例變成:

struct string

{

char name[8];

int age;

char sex[2];

char depart[20];

float wage1, wage2, wage3, wage4, wage5;

}; struct string person;

如果需要定義多個具有相同形式的結構變數時用這種方法比較方便, 它先作 結構說明, 再用結構名來定義變數。

如果省略結構名, 則稱之為無名結構, 這種情況常常出現在函數內部, 用這 種結構時前面的例子變成:

struct

{

char name[8];

int age;

char sex[2];

char depart[20];

float wage1, wage2, wage3, wage4, wage5;

} Tianyr, Liuqi;

結構作為一種數據類型, 因此定義的結構變數或結構指針變數同樣有局 部變數和全程變數, 視定義的位置而定。

結構變數名不是指向該結構的地址, 這與數組名的含義不同, 因此若需要求結構中第一個成員的首地址應該是&[結構變數名]。

(1)c語言結構體代碼通俗理解擴展閱讀:

結構體變數可進行哪些運算

結構體變數不能相加、不能相減,也不能相互乘除,但結構體變數可以相互賦值。也就是說,可以將一個結構體變數賦給另一個結構體變數。但前提是這兩個結構體變數的結構體類型必須相同。

結構體變數的引用方式決定了:

「結構體變數名」可以與「結構體成員名」同名。

「結構體變數名」可以與「結構體名」同名。

「兩個結構體類型定義的結構體變數中的成員可以同名」。

就比如定義了一個結構體類型用於存放學生的信息,裡面有成員「char name[20];」,那麼如果又定義了一個結構體類型用於存放老師的信息,那麼裡面也可以有成員「char name[20];」

因為結構體成員在引用時,必須要使用「結構體變數名.成員名」的方式來引用,通過引用就可以區分它們,所以不會產生沖突,因此可以同名!

只要不沖突,都可以重名!但是兩個結構體變數名就不可以重名了,因為無法區分它們,就會產生沖突。當然這里說的是在同一個作用域內,如果在一個函數中定義一個局部變數a,那麼在另一個函數中當然也可以定義一個局部變數a。它們互不影響。

B. c語言裡面的結構體是什麼意思

結構體(struct)是由一系列具有相同類型或不同類型的數據構成的數據集合,叫做結構。

在C語言中,結構體(struct)指的是一種數據結構,是C語言中聚合數據類型(aggregate data type)的一類。結構體可以被聲明為變數、指針或數組等,用以實現較復雜的數據結構。

結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問。

(2)c語言結構體代碼通俗理解擴展閱讀

將一個結構體變數中的數據傳遞給另一個函數,有下列3種方法:

(1) 用結構體變數名作參數。一般較少用這種方法。

(2) 用指向結構體變數的指針作實參,將結構體變數的地址傳給形參。

(3) 用結構體變數的引用變數作函數參數。

在軟體開發過程中,常常需要動態地分配和撤銷內存空間,例如對動態鏈表中結點的插入與刪除。C語言中是利用庫函數malloc和free來分配和撤銷內存空間的。

C. c語言中結構體的作用到底是干什麼的,能通俗點講嗎

把有關系的變數放在一起,查看起來方便

D. C語言結構體定義

C語言結構體定義:struct為結構體關鍵字,tag為結構體的標志,member-list為結構體成員列表,其必須列出其所有成員;variable-list為此結構體聲明的變數。

結構體是C語言中聚合數據類型(aggregatedatatype)的一類。結構體可以被聲明為變數、指針或數組等,用以實現較復雜的數據結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問。

(4)c語言結構體代碼通俗理解擴展閱讀

1、struct是聲明結構體類型時必須使用的關鍵字,不能省略。「結構體」這個詞是根據英文單詞structure譯出的。

2、structSTUDENT是定義的數據類型的名字,它向編譯系統聲明這是一個「結構體類型」,包括name、num、sex、age、score、addr等不同類型的項。

3、structSTUDENT與系統提供的int、char、float、double等標准類型名一樣,都是數據類型,具有同樣的作用,都是用來定義變數的。

E. c語言結構體是什麼

在C語言中,結構體(struct)指的是一種數據結構,是C語言中聚合數據類型(aggregate data type)的一類。

結構體可以被聲明為變數、指針或數組等,用以實現較復雜的數據結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問。

結構體作用:

結構體和其他類型基礎數據類型一樣,例如int類型、char類型,只不過結構體可以做成你想要的數據類型。以方便日後的使用。

在實際項目中,結構體是大量存在的。研發人員常使用結構體來封裝一些屬性來組成新的類型。由於C語言內部程序比較簡單,研發人員通常使用結構體創造新的「屬性」,其目的是簡化運算。

結構體在函數中的作用不是簡便,其最主要的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什麼,只要根據定義使用就可以了。

F. 誰能簡單明了 地告訴 我C語言中 結構體的用法 什麼意思

結構體就是一個可以包含不同數據類型的一個結構,它是一種可以自己定義的數據類型

比如
人類是一個類型

但是C中沒有人類這個類型

你可以自定義個類型

人類擁有名字,年齡,身高

#include
"stdio.h"
#include
"conio.h"

typedef
struct
people
{

char
*
name;

int
age;

float
stature;
}
PEOPLE;

main()
{

PEOPLE
a;

a.name="abc";

a.age=20;

a.stature
=170.0;

printf("name=%s,age=%d,stature=%f",a.name,a.age,a.stature);

getch();
}

上面的例子定義了一個新的類型
PEOPLE

包含有
名字,年齡,身高
3個數據

main
中定義了一個人類實例a
並對他的3個屬性進行賦值

最後列印出a的3個屬性

G. 結構體c語言是什麼

在C語言中,結構體(struct)指的是一種數據結構,是C語言中復合數據類型(aggregate data type)的一類。

結構體可以被聲明為變數、指針或數組等,用以實現較復雜的數據結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問。

一、成員訪問

結構體成員依據結構體變數類型的不同,一般有2種訪問方式,一種為直接訪問,一種為間接訪問。直接訪問應用於普通的結構體變數,間接訪問應用於指向結構體變數的指針。

直接訪問使用結構體變數名.成員名,間接訪問使用(*結構體指針名).成員名或者使用結構體指針名->成員名。相同的成員名稱依靠不同的變數前綴區分。

二、變數存儲

在內存中,編譯器按照成員列表順序分別為每個結構體變數成員分配內存,當存儲過程中需要滿足邊界對齊的要求時,編譯器會在成員之間留下額外的內存空間。

如果想確認結構體佔多少存儲空間,則使用關鍵字sizeof,如果想得知結構體的某個特定成員在結構體的位置,則使用offsetof宏(定義於stddef.h)。

匿名struct

匿名struct、匿名union以及C++的匿名class,是指既沒有類型名,也沒有直接用這種類型定義了對象;如果緊隨類型定義之後,又定義了該類型的對象,就不算是匿名類型,與普通情形的使用是一樣的。

匿名類型作為嵌套定義,即在一個外部類(這里的類是指struct、union、class)的內部定義,則編譯器就在匿名類型定義之後定義一個無名變數,並把該匿名類型的數據成員的名字提升到匿名類的外部類的作用域內。

如果匿名類型是連續嵌套,則最內部的匿名類型的成員名字被提升到最外部的可用變數名字訪問的類的作用域內。

H. c語言結構體定義和使用是什麼

c語言結構體是類似於名片形式的數據集合體,可以把它理解為一種由用戶自定義的特殊的復合型的「數據類型」,在這個復合型的「數據類型」中可以包含多種基本數據類型,我們可以把它作為一個整體來操作。

c語言使用:結構體數組的引用與引用一個結構體變數在原理上是一樣的。只不過結構體數組中有多個結構體變數,我們只需利用 for 循 環一個一個地使用結構體數組中的元素。

結構體的意義

結構體描述了一段內存的解釋意義。

在內存中,數據的意義在於如何使用此段數據,如在內存中存有一個數據3,如果只把他當作正整數來使用,那麼其意義為正整數3,如果把內存中的3,當作2的3次方來使用,那麼3的意義則為指數3。而一個結構體則描述了一段內存中的數據的使用意義。

I. c語言結構體是什麼

C語言結構體(Struct)從本質上講是一種自定義的數據類型,只不過這種數據類型比較復雜,是由 int、char、float 等基本類型組成的。你可以認為結構體是一種聚合類型。

在實際開發中,我們可以將一組類型不同的、但是用來描述同一件事物的變數放到結構體中。例如,在校學生有姓名、年齡、身高、成績等屬性,學了結構體後,我們就不需要再定義多個變數了,將它們都放到結構體中即可。

簡介

關鍵字struct和結構體名組合成一種類型標識符,其地位如同通常的int、char等類型標識符,其用途就像 int 類型標識符標識整型變數一樣可以用來定義結構體變數。

定義變數以後,該變數就可以像定義的其他變數一樣使用了;成員又稱為成員變數,它是結構體所包含的若干個基本的結構類型,必須用「{}」括起來,並且要以分號結束,每個成員應表明具體的數據類型。