1. 程式人生 > >定義結構體變量及初始化

定義結構體變量及初始化

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的變量定義是一樣的,都是直接定義了,然後可以直接用了,平時我用的一般都是第一種定義變量和初始化個人覺得比較好吧!想用的時候就定義,不想用的時候就釋放掉;不像直接定義即使不用也會一直占用空間的,已經定義為全局變量了;

定義結構體變量及初始化