iT邦幫忙

2021 iThome 鐵人賽

DAY 15
0
Software Development

0基礎也看得懂的程式設計-30天學會C語言系列 第 15

30天學會C語言: Day 14-全部包軌!

struct()

用於建立自定義資料結構的命令,其中可以包含多個不同型別的成員,就像是把多個不同型別的資料捆在一起,類似物件導向中的類別(Class),語法是:

struct <名稱>{
	<成員型別> <成員名稱>;
		⋮
};

下面範例中,定義一個叫做 STUDENT 的資料類型,裡面有 name, numberage 三個成員

struct STUDENT{
    int number;
    int age;
};

宣告 STUDENT 的變數,需要在 STUDENT 前加上 struct,下面範例宣告一個叫做 student_1 的變數

#include<stdio.h>
#include<stdlib.h>

struct STUDENT{
    int number;
    int age;
};

int main(){
	struct STUDENT student_1;
}

用大括號初始化變數值
現在變數 student_1number123, age19

#include<stdio.h>
#include<stdlib.h>

struct STUDENT{
    int number;
    int age;
};

int main(){
	struct STUDENT student_1={, 123, 19};
}

.<成員名稱> 存取成員,可以像一般的變數一樣使用

#include<stdio.h>
#include<stdlib.h>

struct STUDENT{
    int number;
    int age;
};

int main(){
	struct STUDENT student_1={123, 19};
	printf("%d %d", student_1.number, student_1.age);
}

修改成員的值

#include<stdio.h>
#include<stdlib.h>

struct STUDENT{
    int number;
    int age;
};

int main(){
	struct STUDENT student_1={123, 19};
	student_1.number = 456;
	student_1.age = 18;
	printf("%d %d\n", student_1.number, student_1.age);
}

成員可以是另一個資料結構

#include<stdio.h>
#include<stdlib.h>

struct ENGINE{
    float totalDisplacement;
    int cylinderCount;
};

struct MOTORCYCLE{
	struct ENGINE engine;
	int price;
};

int main(){
	struct MOTORCYCLE T100;
	myBike.engine.totalDisplacement=900;
	myBike.engine.cylinderCount=2;
	
	printf("Displacement of T100 is %f cc.\n", myBike.engine.totalDisplacement)
}

上一篇
30天學會C語言: Day 13-遞迴體驗鎮魂曲
下一篇
30天學會C語言: Day 15-奇怪的資料型態
系列文
0基礎也看得懂的程式設計-30天學會C語言30

尚未有邦友留言

立即登入留言