定義結構體變量及初始化
阿新 • • 發佈:2017-10-13
style 不想 占用空間 clas 個學生 truct 學生 釋放 ring
雖然已經了解結構體類型,但是結構體類型變量的定義只有一種方法麽,這個當然不是的,所以我把我所知道的幾種方法列出來供給大家參考一下;
首先是第一種,也是我們經常用的一種:
1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 typedef struct Student1 6 { 7 char name[32]; 8 int age; 9 }Student1;//定義一個結構體類型//可以通過類型來定義變量 10 void main() 11{ 12 Student1 S1; 13 14 system("pause"); 15 }
這裏我們可以看見可以直接定義一個結構體類型,然後通過類型來定義變量,這是一種比較常用的方法,然後下面的幾種定義變量的方法我平時用的比較少:
1 struct Student2 2 { 3 char name[32]; 4 int age; 5 }t1,t12;//第一結構體類型的同時,定義結構體變量 6 7 struct 8 { 9 char name[32]; 10 int age; 11 }T1;//直接定義結構體變量,這裏只能使用已定義的變量,無法在定義其他結構體變量
這兩種都可以直接定義變量,特別是最後面直接定義一個結構體變量,由於是匿名定義的所的,所以除了已定義的變量,是無法在通過它定義其他變量了;
然後我們可以再來看看初始化的幾種方法:先說說第一種也是比較常用的一種:
#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct Student1 { char name[32]; int age; }Student1;//定義一個結構體類型//可以通過類型來定義變量 void main() { Student1 S1= {"aaa",2};//定義變量時直接初始化 system("pause"); }
這種是比較常用一點的;至於下面的用的就比較少了,反正我是很少用的;(至於工作中用的多不多我就不知道了,畢竟我還只是個學生而已);
struct Student3 { char name[32]; int age; }s1 = {"aaa",2},s2 = {"bbb",3};//直接定義結構體類型並初始化 struct { char name[32]; int age; }t2 = {"ccc",4};//直接定義結構體變量並初始化
這兩種初始化和和上面的2,3的變量定義是一樣的,都是直接定義了,然後可以直接用了,平時我用的一般都是第一種定義變量和初始化個人覺得比較好吧!想用的時候就定義,不想用的時候就釋放掉;不像直接定義即使不用也會一直占用空間的,已經定義為全局變量了;
定義結構體變量及初始化