c語言typedefstruct用法
1. typedef struct 用法是什麼
typedef是類型定義的意思。typedef struct是為了使用這個結構體方便。具體區別在於:
若struct node {}這樣來定義結構體的話。在申請node的變數時,需要這樣寫,struct node n;若用typedef,可以這樣寫,typedef struct node{}NODE;。在申請變數時就可以這樣寫,NODE n;區別就在於使用時,是否可以省去struct這個關鍵字。
(1)c語言typedefstruct用法擴展閱讀:
typedef可以聲明新的類型名來代替已有的類型名,但卻不能增加新的類型。typedef為C語言的關鍵字,作用是為一種數據類型定義一個新名字。這里的數據類型包括內部數據類型(int,char等)和自定義的數據類型(struct等)。
在編程中使用typedef目的一般有兩個,一個是給變數提供一個易記且意義明確的新名字(類型有新別名,方便變數的定義),另一個是簡化一些比較復雜的類型聲明。
2. C語言中的「typedef struct」是什麼意思
struct是結構體的關鍵字,是用來定義結構體的,而typedef是定義自定義類型的關鍵字。可以定義自定義類型。
typedef enum表示定義了一個枚舉型的數據結構,typedef struct也是定義了一種數據結構,這個數據結構包含多個數據項。
3. C語言typedef struct的用法
C現在變成了像int, char 一樣的一種數據類型,可以用它來聲明變數,比如
C struct1, struct2;
int SumOfFloat;
float SumOfInt;
SumOfFloat = struct1.a + struct2.a;
SumOfInt = struct1.b + struct2.b;
4. typedef struct 用法是怎麼樣的
typedef為C語言的關鍵字,作用是為一種數據類型定義一個新名字。這里的數據類型包括內部數據類型(int,char等)和自定義的數據類型(struct等)。編程中使用typedef目的一般有兩個,一個是給變數一個易記且意義明確的新名字,另一個是簡化一些比較復雜的類型聲明。
typedef是類型定義的意思。typedef struct是為了使用這個結構體方便。
具體區別在於:
若struct node{}這樣來定義結構體的話。在定義node的結構體變數時,需要這樣寫;struct node n;若用typedef,可以這樣寫:typedef struct node{}NODE;在申請變數時就可以這樣寫:NODE n。
其實就相當於NODE是node的別名。區別就在於使用時,是否可以省去struct這個關鍵字。有些時候,typedef struct NODE{}NODE;還是可以直接NODE n;定義一個NODE類型的結構體。
5. C語言中typedef struct什麼意思
類型定義。
它就和define相對應,define是把一個自己起的名字的常量定義為代替它的另一個常量來同。
typedef是把一個自己起的名字的類型用已經有的類型代替使用,如:typedef int Type1;之後如果有Type1 i ;系統則理解為int i;。
在編程中使用typedef目的一般有兩個,一個是給變數一個易記且意義明確的新名字,另一個是簡化一些比較復雜的類型聲明。
輸出為:token 9 = 10
詳見網路typedef(相似)。
6. 關於C語言中的typedef struct 的用法問題,編譯器是VC 6.0
有三個問題:
一、語句不要寫在結構體的定義及main函數之間,請寫到main裡面
二、如果用字元數組存儲字元串,則賦值時不能直接用字元串賦值,要改用strcpy進行,為簡化操作,請把字元數組,改成字元指針
三、輸出字元串要用%s,不是%c
修改後的代碼如下:
#include
typedef struct student
{
int age;
float score;
char * name;
}stu;
int main(void)
{
stu stu1;
stu1.age=27;
stu1.score=79.00;
stu1.name="zheng shuai";
printf("name:%s,age:%d,ang score:%f",stu1.name,stu1.age,stu1.score);
return 0;
}
7. 數據結構中 typedef 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;
結構體成員變數的訪問除了可以藉助符號".",還可以用"->"訪問。
(7)c語言typedefstruct用法擴展閱讀:
結構體數組與結構體指針:
一個結構體變數中可以存放一組數據;如一個學生的學號、姓名、成績等數據。如果有10個學生的數據需要參加運算顯然應該用數組,這就是結構體數組結構體數組與以前介紹過的數值型數組不同之處:每個數組元素都是一個結構體類型的數據,它們都分別包括各個成員(分量)項。
結構體指針和其他類型的指針都是一樣的理解,在32位平台不管啥類型的指針都佔4個位元組的空間。
結構體指針就是指向結構體變數的指針;如果一個指針變數中保存了結構體變數的首地址,那麼這個指針變數就指向該結構體變數.通過結構體指針即可訪問該結構體變數,這與數組指針和函數指針的情況是相同的結構指針變數說明的一般形式為:
struct 結構體名 *結構體指針變數名struct student *p = &Boy; //假設事先定義了 struct student Boy。
8. typedef struct 的用法是什麼
typedef是類型定義的意思。typedef struct是為了使用這個結構體方便。具體區別在於:
若struct node {}這樣來定義結構體的話。在申請node的變數時,需要這樣寫,struct node n;若用typedef,可以這樣寫,typedef struct node{}NODE;。在申請變數時就可以這樣寫,NODE n;區別就在於使用時,是否可以省去struct這個關鍵字。
聲明新的類型名
typedef可以聲明新的類型名來代替已有的類型名,但卻不能增加新的類型。typedef為C語言的關鍵字,作用是為一種數據類型定義一個新名字。這里的數據類型包括內部數據類型(int,char等)和自定義的數據類型(struct等)。
在編程中使用typedef目的一般有兩個,一個是給變數提供一個易記且意義明確的新名字(類型有新別名,方便變數的定義),另一個是簡化一些比較復雜的類型聲明。
9. typedefstruct在c語言中是什麼意思
typedef為C語言的關鍵字,作用是為一種數據類型定義一個新名字。這里的數據類型包括內部數據類型(int,char等)和自定義的數據類型(struct等)。
在編程中使用typedef目的一般有兩個,一個是給變數一個易記且意義明確的新名字,另一個是簡化一些比較復雜的類型聲明。
typedef本身是一種存儲類的關鍵字,與auto、extern、mutable、static、register等關鍵字不能出現在同一個表達式中。
(9)c語言typedefstruct用法擴展閱讀:
typedef的用法:
1、常規變數類型定義
例如:typedef unsigned char uchar
描述:uchar等價於unsigned char類型定義 uchar c聲明等於unsigned char c聲明。
2、數組類型定義
例如: typedef int array[2];
描述: array等價於 int [2]定義; array a聲明等價於int a[2]聲明。
擴展: typedef int array[M][N];
描述: array等價於 int [M][N]定義; array a聲明等價於int a[M][N]聲明。
3、指針類型定義
例如: typedef int *pointer;
描述: pointer等價於 int *定義;pointer p聲明等價於int *a聲明。
例如: typedef int *pointer[M];
描述: pointer等價於 int *[M]定義 pointer p聲明等價於int *a[M]聲明明。
4、函數地址說明
描述:C把函數名字當做函數的首地址來對待,我們可以使用最簡單的方法得到函數地址 。
例如: 函數:int func(void); unsigned long funcAddr=(unsigned long)func, funcAddr的值是func函數的首地址。