16-結構體
結構體可以讓C語言建立出新的型別。
/* 建立一個學生型別 */
struct Stu
{
char name[20]; //名字
int age; //年齡
double score; //成績
};
/* 建立一個書的型別 */
struct Book
{
char name[20]; //名字
float price; //價格
char id[30]; //書號
};
一、結構體變數的建立
struct Stu s; //結構體變數的建立(未初始化)
二、. 運算子
用來表示結構體的成員變數。
結構體成員表達形式:結構體變數 . 結構體成員變數。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
/* 建立一個學生型別 */
struct Stu
{
char name[20]; //名字
int age; //年齡
double score; //成績
};
int main()
{
struct Stu s = { "張三", 20, 85.5 }; //結構體變數的建立和初始化
/*
* 結構體成員表達形式:結構體變數.結構體成員變數
*/
printf("名字:%s\t 年齡:%d\t 成績:%lf\n", s.name, s.age, s.score); //%lf 列印雙精度浮點型的格式
return 0;
}
三、-> 運算子
指標指向物件中的變數。
結構體成員表示形式:結構體指標 -> 成員變數名。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
/* 建立一個學生型別 */
struct Stu
{
char name[20]; //名字
int age; //年齡
double score; //成績
};
int main()
{
struct Stu s = { "張三", 20, 85.5 }; //結構體變數的建立和初始化
/*
* 結構體成員表達形式:結構體變數.結構體成員變數
*/
printf("方法1(.):名字:%s\t 年齡:%d\t 成績:%lf\n\n", s.name, s.age, s.score); //%lf 列印雙精度浮點型的格式
struct Stu * pa = &s; //獲取 s 變數的地址
/*
* 結構體成員表達形式:指標變數的取值.結構體成員變數
*/
printf("方法2(.):名字:%s\t 年齡:%d\t 成績:%lf\n\n", (*pa).name, (*pa).age, (*pa).score); //%lf 列印雙精度浮點型的格式
/*
* 結構體成員表達形式:結構體指標 -> 成員變數名
*/
printf("方法3(->):名字:%s\t 年齡:%d\t 成績:%lf\n", pa->name, pa->age, pa->score); //%lf 列印雙精度浮點型的格式
return 0;
}