c語言定義結構體
① c語言 結構體的定義及使用
額·你的初始化有錯誤~~
yinkailin.Name[] = "yinkailin";這樣初始化是不行滴~
加頭文件#include <string.h>
然後這樣初始化~
strcpy(yinkailin.name, "yinkailin");
② c語言中關於結構體類型的定義
struct在C語言中是一個關鍵字,用於定義結構數據類型。
問題中的兩種定義的區別在於第一種是給student數據類型,重新定義了一個類型別名,而第二種則單純的表示一種叫做student的數據結構類型。兩者的主要區別在於後面直接定義變數時。如下代碼,則可以直接在結構體後面定義一個zhang_san的結構體變數。
struct student
{
int num;
struct student *next;
}zhang_san;
而第一種的定義,則會出現錯誤。
typedef struct student
{
int num;
struct student *next;
}student zhang_san;
擴展:
「結構」是一種構造數據類型,現在一般叫做用戶自定義數據類型,它是由若干「成員」組成的。 每一個成員可以是一個基本數據類型或者又是一個構造類型。 結構即是一種「構造」而成的數據類型, 那麼在說明和使用之前必須先定義它,也就是構造它。如同在說明和調用函數之前要先定義一樣。
定義一個結構的一般形式為:
struct結構名
{
//成員表列
};
成員表由若干個成員組成, 每個成員都是該結構的一個組成部分。對每個成員也必須作類型說明,其形式為:「類型說明符 成員名;」。成員名的命名應符合標識符的書寫規定。例如:
struct stu
{
int num;
char name[20];
char sex;
float score;
};
在這個結構定義中,結構名為stu,該結構由4個成員組成。 第一個成員為num,整型變數;第二個成員為name,字元型數組;第三個成員為sex,字元型變數;第四個成員為score,浮點型變數。 應注意在括弧後的分號是必不可少的。
③ C語言結構體的定義
C++把結構體視作 類,可以直接用類名定義變數,而C不可以!
struct Link{
struct Food f;
struct Link *next; //這兩個加上Struct就可以在C中通過了
};
④ c語言如何動態的定義結構體
這是不可能的。C語言的結構體是一種類型,在使用之前一定要定義或一個「假」聲明。你的需求不合理。