c語言中的結構體

2021-08-13 22:18:56 字數 4082 閱讀 2073

定義結構體變數

/* 結構體

自定義的一種型別稱為構造型別,在c語言中稱為結構體

定義結構體:

struct [結構體名]

; 定義結構體變數

1.struct 結構體名 變數名;

引用結構體成員 (運算子.)

結構體變數.成員

定義結構體變數並初始化

struct 結構體名 變數名=;

結構體與陣列類似,定義之後不能直接整體賦值,不能直接整體引用

*/#include

#include

intmain(

void);

//結構體型別定義結束

//定義結構體變數

struct

student tom;

// strcpy(tom.name,"tom");

// printf("姓名: %s\n",tom.name);

//定義結構體變數並初始化

//struct student jack=};

printf

("輸入姓名:\n"

);

gets(tom.name);

printf

("輸入性別:\n");

gets(tom.***);

printf

("輸入年齡:\n");

scanf

("%d"

,&tom.age);

printf

("輸入分數:\n");

for(

inti=

0; i<

4; i++)

printf

("姓名: %s\n"

,tom.name);

printf

("性別: %s\n"

,tom.***);

printf

("年齡: %d\n"

,tom.age);

//遍歷輸出

for(

inti=

0; i<

4; i++)

return0;

} /*

1.定義結構體的同時定義結構體變數

struct [結構體名]

變數名[=];

2.定義省略結構體

省略結構體名定義型別時必須在定義時指定所需的所有變數

struct

name1,name2,name3[4];

*/#include

intmain(

void)

bri=;

printf

("出生日期為: %d %d %d \n"

,bri.year,bri.month,bri.day);

return0;

}/*

在結構體型別中使用其他的結構體型別定義結構體變數,需要先定義內部結構體變數的型別方可使用

*/#include

struct

birthday ;

struct

student ;

intmain(

void

),};

printf

("%s: %d-%d-%d\n"

,alice.name,alice.bir.year,alice.bir.month,alice.bir.day);

intlen =

sizeof

(alice.score)/

sizeof

(alice.score[

0]);

for(

inti=

0; i

printf

("%f "

,alice.score[i]);

}printf

("\n"

);return0;

} 結構體陣列

/* 結構體陣列

*/#include

struct birthday ;

struct student ;

intmain(void)

printf

("輸出結果為:\n"

);for

(inti=0

; iprintf

("%s "

,arr[i].name);

printf

("%d-%d-%d "

,arr[i].bir.year, arr[i].bir.month, arr[i].bir.day);

printf

("%f

%f%f

%f "

,arr[i].score[

0], arr[i].score[

1], arr[i].score[

2], arr[i].score[

3]);

printf

("\n");

} printf

("\n");

return0;

} /*

結構體變數之間可以直接賦值 */

/* #include

struct student;

intmain(void);

struct student b;

b=a;

printf

("b.name=%s b.i=%d\n"

,b.name,b.i);

return0;

} */

//交換結構體內容並輸出

#include

struct student;

intmain(void);

struct student b=;

temp=a;

a=b;

b=temp;

printf

("b.name=%s b.age=%d\n"

,b.name,b.age);

printf

("a.name=%s a.age=%d\n"

,a.name,a.age); //

結構體陣列排序原理

/* for

(inti=0

; i1

; i++) }

t=arr[min];

arr[min]=arr[i];

arr[i]=t; }

*/return0;

}結構體做函式引數,值是單項傳遞的

/* 結構體做函式引數,值是單項傳遞的 */

#include

#include

struct

student;

void

output(

struct

student);

intmain(

void

);

output(a);

printf

("a:%s %d\n"

,a.name,a.age);

return0;

}void

output(

struct

student m)

指向結構體變數的指標變數

//指向結構體變數的指標變數 struct type *

//指標變數引用結構體成員運算子 ->

//引用成員的三種方法

1.a.i

2. p->i

3.(*p).i

#include

struct type ;

void input(struct type *);

void output(struct type *arr,int len);

int main(void)

,,,,,69,47,83,79,40};

output(arr,10);

return 0; }

void

input(struct

type *p) //p=&a

void

output(struct

type *arr,int

len)

//struct type arr

}

C語言中結構體

struct oursvoid main struct ours o2 01 結構體整體直接賦值的時候,即使字串也可以直接賦值 o1.str o2.str 錯誤,字串不能直接賦值 字串拷貝的方式 sprintf o1.str,02.str strcpy o1.str,o2.str 3.1 第一種情況...

C語言中的結構體

在 c語言中,結構體 struct 指的是一種資料結構,是c語言中聚合資料型別 aggregate data type 的一類。結構體可以被宣告為 變數 指標或 陣列等,用以實現較複雜的 資料結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員 member 且這些成員可以為不同的型別,成員...

C語言中的結構體。

這篇部落格我想將一下c語言中的結構體。對於結構體的概念性問題這裡博主不再過多闡述,我們還是用 說話。結構體的語法 這是c語言中的規則 struct 結構體名 我們可以寫乙個簡單的結構體 struct student 在這裡我們要明白乙個事情,c語言中結構體成員變數一般來說應該從定義的由大至小存放,比...