c語言struct
㈠ c語言struct函數
定義一個SqList類型的變數,變數名為L。
類似int i;
只不過SqList是自定義的結構體類型,L就是該類型的一個結構體變數。
㈡ 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;
結構作為一種數據類型, 因此定義的結構變數或結構指針變數同樣有局 部變數和全程變數, 視定義的位置而定。
結構變數名不是指向該結構的地址, 這與數組名的含義不同, 因此若需要求結構中第一個成員的首地址應該是&[結構變數名]。
(2)c語言struct擴展閱讀:
結構體變數可進行哪些運算
結構體變數不能相加、不能相減,也不能相互乘除,但結構體變數可以相互賦值。也就是說,可以將一個結構體變數賦給另一個結構體變數。但前提是這兩個結構體變數的結構體類型必須相同。
結構體變數的引用方式決定了:
「結構體變數名」可以與「結構體成員名」同名。
「結構體變數名」可以與「結構體名」同名。
「兩個結構體類型定義的結構體變數中的成員可以同名」。
就比如定義了一個結構體類型用於存放學生的信息,裡面有成員「char name[20];」,那麼如果又定義了一個結構體類型用於存放老師的信息,那麼裡面也可以有成員「char name[20];」
因為結構體成員在引用時,必須要使用「結構體變數名.成員名」的方式來引用,通過引用就可以區分它們,所以不會產生沖突,因此可以同名!
只要不沖突,都可以重名!但是兩個結構體變數名就不可以重名了,因為無法區分它們,就會產生沖突。當然這里說的是在同一個作用域內,如果在一個函數中定義一個局部變數a,那麼在另一個函數中當然也可以定義一個局部變數a。它們互不影響。
㈢ C語言 struct
很好理解啊,a是一個函數,它的參數是complex_struct結構體類型,z是這種類型的形參。
㈣ c語言中struct的應用
在c中,struct是關鍵字--結構體的標識符,而node是用戶自己定義的結構體名稱,方便自己使用,而struct node name;便是定義一個node類型的結構體
㈤ c語言中,struct怎麼用,什麼意思
struct是定義一個結構體的關鍵字。例如
struct student
{
char name[20];//姓名
int num;//學號
};
void main()
{
struct student zhangsan;//定義一個zhangsan結構體變數。
zhangsan.num = 100;//給學號賦值
strcpy(zhangsan.name,"張三");//注意,千萬不能直接:zhangsan.name="張三"
printf("%s\n%d\n",zhangsan.name,zhangsan.num);
}
㈥ C語言結構體
info_p沒有初始化,它指向一個未知的地址
#include <stdio.h>
#include <string.h>
#include <conio.h>
struct student_info
{
char name[20];
unsigned int age;
unsigned int gender;
unsigned int classes;
float grade;
};
main()
{
struct student_info info[2];
struct student_info *info_p; /*your error*/
int i;
for(info_p=info;info_p<info+2;info_p++)
{
scanf("%s",info_p->name);
scanf("%d",&info_p->age);
scanf("%d",&info_p->gender);
scanf("%d",&info_p->classes);
scanf("%f",&info_p->grade);
}
for (i=0;i<2;++i)
{
printf("%s\t%d\t%d\t%d\t%f\n",info[i].name,info[i].age,info[i].gender,info[i].classes,info[i].grade);
}
}
㈦ 關於C語言的struct
struct 是定義一個結構體,結構體里有你需要的變數名和函數,然後可以聲明這個結構體的變數,然後這個變數就包含你定義的變數和函數。注意聲明結構體後要初始化
㈧ C語言結構體Struct怎麼使用
在Turbo C中,結構也是一種數據類型, 可以使用結構變數,因此,像其它類型的變數一樣,在使用結構變數時要先對其定義。
如果需要定義多個具有相同形式的結構變數時用這種方法比較方便,它先作結構說明,再用結構名來定義變數。
(8)c語言struct擴展閱讀
指向結構體的指針是一個一直都沒有掌握好的點,希望這里能記錄好一點,加強理解。
對於指針有幾個好處,
第一:就像指向數組的指針比數組本身更容易操作一樣,指向結構的指針通常也更容易操作;
第二:在早期的C中參數傳遞只能使用結構的指針;
第三:很多奇妙的數據表示都是用了包含指向其他結構的指針的結構。
和數組不同,結構的名字不是該結構的地址(即單獨的結構名並不是該結構地址的同義詞),必須使用 & 運算符。
參考資料c語言結構體struct相關使用說明
㈨ C語言結構體定義
C語言結構體定義:struct為結構體關鍵字,tag為結構體的標志,member-list為結構體成員列表,其必須列出其所有成員;variable-list為此結構體聲明的變數。
結構體是C語言中聚合數據類型(aggregatedatatype)的一類。結構體可以被聲明為變數、指針或數組等,用以實現較復雜的數據結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問。
(9)c語言struct擴展閱讀
1、struct是聲明結構體類型時必須使用的關鍵字,不能省略。「結構體」這個詞是根據英文單詞structure譯出的。
2、structSTUDENT是定義的數據類型的名字,它向編譯系統聲明這是一個「結構體類型」,包括name、num、sex、age、score、addr等不同類型的項。
3、structSTUDENT與系統提供的int、char、float、double等標准類型名一樣,都是數據類型,具有同樣的作用,都是用來定義變數的。
㈩ c語言結構體
data是你定義的一個結構類型(類似於int),DT是一個data的變數(類似於int i)。p是一個指針,用於指向一個data變數。
data的定義常見於單鏈表的節點結構,包含數據和指針兩部分內容。數據當然是用來保存數據的,而指針用於把一個一個的節點串起來,在邏輯上形成一個鏈表