c語言結構體使用
㈠ c語言結構體的用法,
結構體的使用,首先要定義:
#include<stdio.h>
structstudent
{
charname[10];
intnum;
intage;
};//注意要分號
//然後就可以使用了:
voidmain()
{
structstudents;
structstudent*p=&s;//指針指向,可以不用指針
printf("inputname:");
gets(s.name);//若使用指針,則:gets(p->name);
printf("inputnum:");
scanf("%d",&s.num);//指針的寫法:scanf("%d",&p->num);
printf("inputage:");
scanf("%d",&s.age);
//輸出結果:
printf("name num age ");
printf("%s %d %d ");
}
結構體類似於數組,但結構體能定義不同的數據類型,這也是它的特別之處
㈡ C語言結構體Struct怎麼使用
在Turbo C中,結構也是一種數據類型, 可以使用結構變數,因此,像其它類型的變數一樣,在使用結構變數時要先對其定義。
如果需要定義多個具有相同形式的結構變數時用這種方法比較方便,它先作結構說明,再用結構名來定義變數。
(2)c語言結構體使用擴展閱讀
指向結構體的指針是一個一直都沒有掌握好的點,希望這里能記錄好一點,加強理解。
對於指針有幾個好處,
第一:就像指向數組的指針比數組本身更容易操作一樣,指向結構的指針通常也更容易操作;
第二:在早期的C中參數傳遞只能使用結構的指針;
第三:很多奇妙的數據表示都是用了包含指向其他結構的指針的結構。
和數組不同,結構的名字不是該結構的地址(即單獨的結構名並不是該結構地址的同義詞),必須使用 & 運算符。
參考資料c語言結構體struct相關使用說明
㈢ 請問下C語言中的結構體有什麼用
【結構體作用】
結構體和其他類型基礎數據類型一樣,例改局如int類型,char類型
只不過結構體可以做成你想要的數據類型。以方便日後的使用。
在實際項目中,結構體是大量存在的。研發人員常使用結構體來封裝一些屬性來組成新的類型。
結構體在函數中的作用不是簡便,其最主要掘殲遲的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什麼,只要根據定義使用就可以了。
====================================================
結構體可以定義一些復雜數據類型,比如我要定義一個員工信息的結構體,就可以在結構體里添加員工編號、姓名、工資、地址、出生日期、電話等信息,有了結構體給編程帶來很判李大的方便。
㈣ c語言結構體定義和使用是什麼
c語言結構體是類似於名片形式的數據集合體,可以把它理解為一種由用戶自定義的特殊的復合型的「數據類型」,在這個復合型的「數據類型」中可以包含多種基本數據類型,我們可以把它作為一個整體來操作。
c語言使用:結構體數組的引用與引用一個結構體變數在原理上是一樣的。只不過結構體數組中有多個結構體變數,我們只需利用 for 循 環一個一個地使用結構體數組中的元素。
結構體的意義
結構體描述了一段內存的解釋意義。
在內存中,數據的意義在於如何使用此段數據,如在內存中存有一個數據3,如果只把他當作正整數來使用,那麼其意義為正整數3,如果把內存中的3,當作2的3次方來使用,那麼3的意義則為指數3。而一個結構體則描述了一段內存中的數據的使用意義。
㈤ 請問下C語言中的結構體有什麼用
C語言中的結構體可以定義一些復雜數據類型,把一些有內在聯系的不同變數放在一起封裝成一個整體,這就是結構體。
例如:以學生為例,學生存在學號,姓名,性別,班級等。此時你可以頂一個結構體,將這些學生信息封裝到一個結構體中。
code如下:
struct student{
int iID //學生的學號
char sStuName[10] //學生姓名
char sSex[10] //學生性別
....
}
(5)c語言結構體使用擴展閱讀
C語言結構體在函數中的應用
typedefstructtagSTUDENT{
charname[20];
intage;
}STUDENT;
voidfun(STUDENTstu)
{
printf(「stu.name=%s,stu.age=%d/n」,stu.name,stu.age);
}
㈥ C語言結構體Struct怎麼使用
在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;
結構體成員變數的訪問除了可以藉助符號".",還可以用"->"訪問。
(6)c語言結構體使用擴展閱讀:
結構體數組與結構體指針:
一個結構體變數中可以存放一組數據;如一個學生的學號、姓名、成績等數據。如果有10個學生的數據需要參加運算顯然應該用數組,這就是結構體數組結構體數組與以前介紹過的數值型數組不同之處:每個數組元素都是一個結構體類型的數據,它們都分別包括各個成員(分量)項。
結構體指針和其他類型的指針都是一樣的理解,在32位平台不管啥類型的指針都佔4個位元組的空間。
結構體指針就是指向結構體變數的指針;如果一個指針變數中保存了結構體變數的首地址,那麼這個指針變數就指向該結構體變數.通過結構體指針即可訪問該結構體變數,這與數組指針和函數指針的情況是相同的結構指針變數說明的一般形式為:
struct 結構體名 *結構體指針變數名struct student *p = &Boy; //假設事先定義了 struct student Boy。
㈦ c語言結構體變數怎麼使用
結構體變數簡稱為結構變數,它由結構類型定義,有三種定義方法。下面以定義結構類型 book 和結構變數mybook 、 storybook 為例說明之。
1. 先定義結構類型,再定義結構變數。
struct book /* 定義結構體類型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} ;
struct book mybook, storybook;
用這種方法定義結構變數,是最常用的方法,但須注意不能省略關鍵字「 struct 」。還可以在定義結構變數的同時給它的成員賦初值。如:
struct book /* 定義結構體類型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} ;
struct book mybook = { 「maths」, 24.7, 「 電子社 」, 「zhao」 }, storybook;
則, mybook 變數的 price = 24.7 。
2. 定義結構類型的同時定義結構變數。
struct book /* 定義結構體類型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} struct book mybook, storybook;
3. 不定義結構類型,直接定義結構變數。
struct /* 不定義結構類型名 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} struct book mybook, storybook;
需要說明的是,當某結構類型的成員又是另外一個結構類型時,稱嵌套定義,其定義方法如下:
struct brith_date
{
int month ;
int day ;
int year ;
} ;
struct
{
char name[10] ;
char address[30];
char tel[12];
int age;
struct data birthday;
char sex[3];
} student_01 , employee ;
此例直接定義了 student_01 和 employee 兩個變數,但是沒有定義此結構體的名字,因此不能再定義與student_01 和 employee 同類的其它結構變數了!如下行定義是錯誤的:
truct boy, girl;
㈧ c語言中結構體的運用場景
結構體是構造性數據類型,能把多種相同或不同的數據類型聚合在遲陪一起,形成一個新的數據類型。
因此它的碼配蠢運用場景主要是 當我們需要將類型不同而又相關的數據組織在一起,統一加以管理 ,如一個學生的基本信息包括學號、姓名、性別、出生日期、家庭住址、各門功課的分數,這些信息各項的類型不同(學號是整形數據、姓名是文字……),不能用數組表示,這時候就需要通過結構體,將不同類型的相關數據聚合賣者在一起處理。
㈨ c語言結構體定義和使用是什麼
C語言結構體定義:
結構體是一種構造數據類型(也稱復雜數據類型),由若干不同類型的變數(數據)組成。每個變數都是結構體的成員(member),每個成員可以是基本數據類型,也可以是構造類型。
結構變數的使用:
結構是一個新的數據類型, 因此結構變數也可以象其它類型的變數一樣賦值、 運算,不同的是結構變數以成員作為基本變數。結構成員的表示方式為: 結構變數,成員名。
注意事項:
1、struct是聲明結構體類型時必須使用的關鍵字,不能省略。「結構體」這個詞是根據英文單詞structure譯出的。
2、structSTUDENT是定義的數據類型的名字,它向編譯系統聲明這是一個「結構體類型」,包括name、num、sex、age、score、addr等不同類型的項。
3、structSTUDENT與系統提供的int、char、float、double等標准類型名一樣,都是數據類型,具有同樣的作用,都是用來定義變數的。
㈩ C語言結構體Struct怎麼使用
Balance、Number、Value是結構體數據存儲的部分。struct tagS_AVLNode* Left和struct tagS_AVLNode* Right不是定義的前困轎結構體,而是指向這種結構體的指針(從*可以看出)。這種情況一般是用在雙向鏈表裡面的左右指針(或者二叉樹)。在鏈表中,這樣一個結構體就叫一個結點,Left指針指向他尺孝的前一個結點,而Right指針指向他的後一個結點(需要在程序中自己寫語句說明指針指向)。另外結構體裡面可以包含其他結構體,但是通常是不能再包含該結構體自己。希望對你有幫助,如有疑問請聯系慧肆我。謝謝。
結構體裡麵包含另外一個結構體舉例:
typedef struct tagS_AVLNode
{
struct student
{
char name[20];
int number;
float score;
}stu1;
TSHORT Balance;
TSHORT Number; /* 外部可用來存儲16位值 */
TUINT Value; /* 外部可用來存儲32位值 */
} S_AVLNode;