在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ C語(yǔ)言結(jié)構(gòu)體
C語(yǔ)言printf()和scanf()函數(shù)
C語(yǔ)言strlen()函數(shù)
C語(yǔ)言指針
C語(yǔ)言ftell()函數(shù)
C語(yǔ)言#ifdef指令
C語(yǔ)言程序執(zhí)行流程
C語(yǔ)言歷史
C語(yǔ)言fprintf()和fscanf()函數(shù)
C語(yǔ)言#define指令
C語(yǔ)言#if指令
C語(yǔ)言將數(shù)組傳遞給函數(shù)
C語(yǔ)言指針的指針
C語(yǔ)言rewind()函數(shù)
C語(yǔ)言常量
C語(yǔ)言strcat()函數(shù)
C語(yǔ)言#ifndef指令
C語(yǔ)言continue語(yǔ)句
C語(yǔ)言注釋
C語(yǔ)言#include指令
C語(yǔ)言類(lèi)型轉(zhuǎn)換
C語(yǔ)言strcpy()函數(shù)
C語(yǔ)言strlwr()函數(shù)
C語(yǔ)言while循環(huán)
C語(yǔ)言字符串
C語(yǔ)言strrev()函數(shù)
C語(yǔ)言gets()和puts()函數(shù)
C語(yǔ)言文件處理
C語(yǔ)言存儲(chǔ)分類(lèi)
C語(yǔ)言運(yùn)算符
C語(yǔ)言數(shù)據(jù)類(lèi)型
C語(yǔ)言strcmp()函數(shù)
C語(yǔ)言VS開(kāi)發(fā)環(huán)境安裝
C語(yǔ)言轉(zhuǎn)義序列
C語(yǔ)言第一個(gè)程序
C語(yǔ)言變量
C語(yǔ)言goto語(yǔ)句
C語(yǔ)言預(yù)處理器指令
C語(yǔ)言指針?biāo)阈g(shù)運(yùn)算
C語(yǔ)言數(shù)學(xué)函數(shù)
C語(yǔ)言二維數(shù)組
C語(yǔ)言for循環(huán)
C語(yǔ)言命令行參數(shù)
C語(yǔ)言通過(guò)值和引用函數(shù)
C語(yǔ)言fputs()和fgets()函數(shù)
C語(yǔ)言do-while循環(huán)
C語(yǔ)言結(jié)構(gòu)體數(shù)組
C語(yǔ)言循環(huán)
C語(yǔ)言#pragma指令
C語(yǔ)言關(guān)鍵字
C語(yǔ)言#error指令
C語(yǔ)言聯(lián)合體
C語(yǔ)言特點(diǎn)
C語(yǔ)言break語(yǔ)句
C語(yǔ)言遞歸
C語(yǔ)言函數(shù)
C語(yǔ)言結(jié)構(gòu)體
C語(yǔ)言switch語(yǔ)句
C語(yǔ)言結(jié)構(gòu)體嵌套
C語(yǔ)言fputc()和fgetc()函數(shù)
C語(yǔ)言fseek()函數(shù)
C語(yǔ)言字符串函數(shù)
C語(yǔ)言if-else語(yǔ)句
C語(yǔ)言教程
C語(yǔ)言宏
C語(yǔ)言數(shù)組
C語(yǔ)言strupr()函數(shù)
C語(yǔ)言#undef指令

C語(yǔ)言結(jié)構(gòu)體

C語(yǔ)言中的結(jié)構(gòu)體是一種用戶(hù)定義的數(shù)據(jù)類(lèi)型,可以保存不同類(lèi)型的數(shù)據(jù)元素。

結(jié)構(gòu)體的每個(gè)元素都稱(chēng)為成員。

它像C++中的模板和Java中的類(lèi)一樣工作。可以有不同類(lèi)型的元素。

例如,結(jié)構(gòu)體可廣泛用于存儲(chǔ)學(xué)生信息,員工信息,產(chǎn)品信息,圖書(shū)信息等。

定義結(jié)構(gòu)體

struct關(guān)鍵字用于定義結(jié)構(gòu)體。下面我們來(lái)看看在C語(yǔ)言中定義結(jié)構(gòu)體的語(yǔ)法。

struct structure_name   
{  
    data_type member1;  
    data_type member2;  
    .  
    .  
    data_type memeberN;  
};

下面來(lái)看看如何在C語(yǔ)言中定義員工結(jié)構(gòu)體的例子。

struct employee
{   int id;
    char name[50];
    float salary;
};

這里,struct是關(guān)鍵字,employee是結(jié)構(gòu)體的標(biāo)簽名稱(chēng); id,namesalary是結(jié)構(gòu)體的成員或者字段。讓我們通過(guò)下面給出的圖來(lái)理解它:

聲明結(jié)構(gòu)體變量

我們可以為結(jié)構(gòu)體聲明變量,以便訪問(wèn)結(jié)構(gòu)體的成員。聲明結(jié)構(gòu)體變量有兩種方法:

  1. 通過(guò)main()函數(shù)中的struct關(guān)鍵字
  2. 通過(guò)在定義結(jié)構(gòu)時(shí)聲明變量。

第一種方式:

下面來(lái)看看一下struct struct來(lái)聲明結(jié)構(gòu)變量的例子。它應(yīng)該在主函數(shù)中聲明。

struct employee  
{   int id;  
    char name[50];  
    float salary;  
};

現(xiàn)在在main()函數(shù)中寫(xiě)入給定的代碼,如下 -

struct employee e1, e2;

第二種方式:

下面來(lái)看看在定義結(jié)構(gòu)體時(shí)聲明變量的另一種方法。

struct employee  
{   int id;  
    char name[50];  
    float salary;  
}e1,e2;

哪種方法好?

但如果變量個(gè)數(shù)不固定,使用第一種方法。它為您提供了多次聲明結(jié)構(gòu)體變量的靈活性。

如果變量變量個(gè)數(shù)是固定的,使用第二種方法。它在main()函數(shù)代碼中保存聲明的變量。

訪問(wèn)結(jié)構(gòu)成員

訪問(wèn)結(jié)構(gòu)成員有兩種方式:

  • 通過(guò)符號(hào). (成員或點(diǎn)運(yùn)算符)
  • 通過(guò)符號(hào) ->(結(jié)構(gòu)指針運(yùn)算符)

下面下面來(lái)看看看代碼訪問(wèn)p1變量的id成員的.操作符。

p1.id

結(jié)構(gòu)體示例

我們來(lái)看看一個(gè)簡(jiǎn)單的C語(yǔ)言結(jié)構(gòu)示例。創(chuàng)建一個(gè)工程:structure,并在此工程下創(chuàng)建一個(gè)源文件:structure-example.c,其代碼如下所示 -

#include <stdio.h>  
#include <string.h>  
struct employee
{
    int id;
    char name[50];
}e1;  //declaring e1 variable for structure  

int main()
{
    //store first employee information  
    e1.id = 1010;
    strcpy(e1.name, "Max Su");//copying string into char array  
    //printing first employee information  
    printf("employee 1 id : %d\n", e1.id);
    printf("employee 1 name : %s\n", e1.name);
    return 0;
}

執(zhí)行上面示例代碼,得到以下結(jié)果 -

employee 1 id : 1010
employee 1 name : Max Su

下面我們來(lái)看看如何使用C語(yǔ)言結(jié)構(gòu)體來(lái)存儲(chǔ)多個(gè)員工信息的示例。

創(chuàng)建一個(gè)源文件:structure-more-employee.c,其代碼如下所示 -

#include <stdio.h>  
#include <string.h>  
struct employee
{
    int id;
    char name[50];
    float salary;
}e1, e2;  //declaring e1 and e2 variables for structure  

int main()
{
    //store first employee information  
    e1.id = 1001;
    strcpy(e1.name, "Max Su");//copying string into char array  
    e1.salary = 18000;

    //store second employee information  
    e2.id = 1002;
    strcpy(e2.name, "Julian Lee");
    e2.salary = 15600;

    //printing first employee information  
    printf("employee 1 id : %d\n", e1.id);
    printf("employee 1 name : %s\n", e1.name);
    printf("employee 1 salary : %f\n", e1.salary);

    //printing second employee information  
    printf("employee 2 id : %d\n", e2.id);
    printf("employee 2 name : %s\n", e2.name);
    printf("employee 2 salary : %f\n", e2.salary);

    return 0;
}

執(zhí)行上面示例代碼,得到以下結(jié)果 -

employee 1 id : 1001
employee 1 name : Max Su
employee 1 salary : 18000.000000
employee 2 id : 1002
employee 2 name : Julian Lee
employee 2 salary : 15600.000000