c語言入門自學零基礎,c語言高級代碼

1、C語言中結構體

結構體簡介

-在實際的處理對象中,有許多信息是由多個不同類型數組合一起進行描述,而且這些不同類型
的數據是互相聯繫組成了一個有機的整體。此時,就要用到一種新的構造類型數據--結構體
(srtucture),
簡稱結構

-結構體的使用為處理複雜的數據結構(如動態數據結構等),提供了有效的手段,且他們為函數
間傳遞不同類型的數據提供了方便。
嵌入式開發-C語言高級編程-結構體的基本使用

結構體概念

-結構體是用戶自定義的新數據類型,有點像高級語言里的對像一樣

-例如:定義一個人的結構體,那麼這個結構體就有 身高、年齡、性別等

定義一個結構體類型的一般形式為

struct 結構名
{
    
    數據類型  成員名1;
    
    ...
    
    數據類型  成員名n;
}
例如:一個人的結構體
#include <stdio.h>
#include <string.h>
#define N 10
struct person{
    int age;
    int sex;
    char name[N];
} p ;
int main(){
    struct person p1,p2;
    p1.age =25;
    p1.sex =1;
    strcpy(p1.name,"copy");
    printf("%d %d,%sn",p1.age,p1.sex,p1.name);
    return 0;
}

結構體大小

大小:一個結構體變數佔用內存的實際大小,也能用sizeof求出

sizeof(運算量)

例如:

sizeof(person p1) sizeof(p2)

2、C語言結構體數組

結構體數組:是指數組中的每個元bai素都是一個結構體
嵌入式開發-C語言高級編程-結構體的基本使用

三種方式

一、先定義結構體類型,再定義結構體數組

struct 結構體名
{
    成員表表;
};
struct 結構體名

例如:
struct person
{
    int age;
    ing sex;
    char name[10];
};

sturct person p[3];

二、在定義結構體同時定義數組

  struct 結構體名
{
    成員表表;
} 數組名[元素個數];

例如:
 {
    int age;
    ing sex;
    char name[10];
}p[3];

三、直接定義結構體數組

 struct 
{
    成員表表;
};

例如:
 {
    int age;
    ing sex;
    char name[10];
 }p[3];

#include <stdio.h>
#include <string.h>
#define N 10
struct person{
    int age;
    int sex;
    char name[N];
} p[2] ;
int main(){

    p[1].age =10;
    p[1].sex =1;
    strcpy(p[1].name,"copy");
    printf("%d %d,%sn",p[1].age,p[1].sex,p[1].name);
    return 0;
}

3、結構體指針

可以設定一個指針變數用來指向一個結構體變數。些時該指針變數的值是結構體變數的起始地址
,該指針稱為結構體指針

一般形式:
    struct 結構體名 *結構體指針名
    
註:其中的結構體名必須是已經定義的

#include <stdio.h>
#include <string.h>
#define N 10
struct person{
    int age;
    int sex;
    char name[N];
} p[2] ;
int main(){
    p[1].age =10;
    p[1].sex =1;
    strcpy(p[1].name,"copy");

    struct person * p1;
    p1 =&p[1];
    
    printf("%d %d,%sn",p[1].age,p[1].sex,p[1].name);
    printf("%d %d,%sn",p1->age,(*p1).sex,p1->name);
    return 0;
}

使用 指針->屬性  或  (*<指針名>).屬性  取值

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233166.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-11 13:25
下一篇 2024-12-11 13:25

相關推薦

發表回復

登錄後才能評論