struct test {
float a;
int b;
};
定義了名為 test 的結構體類型,包含浮點成員 a 和整型成員 b。
test pn1; // 聲明結構體變量
pn1.a = 10; // 成員訪問用 .
注意:結構體定義本身不佔內存,聲明變量時才分配。
test pn1, pn2;
pn2.a = 10; pn2.b = 3;
pn1 = pn2; // 整體賦值複製,所有成員逐一拷貝
結構體變量支持整體賦值(異於數組),因結構體是真正的類型,而數組名是常量指針不可作左值。
test *point; // 聲明結構指針
point = &pn2; // 指向 pn2
point->a = 99; // 通過 -> 修改成員,等價於 (*point).a = 99
#include <iostream>
using namespace std;
struct test { int a; int b; };
int main() {
test pn1, pn2;
pn2.a = 10; pn2.b = 3;
pn1 = pn2;
cout << pn1.a << "|" << pn1.b << endl; // 10|3
cout << pn2.a << "|" << pn2.b << endl; // 10|3
test *point = &pn2;
cout << pn2.a << "|" << pn2.b << endl; // 10|3
point->a = 99;
cout << pn2.a << "|" << pn2.b << endl; // 99|3
cout << point->a << "|" << point->b << endl; // 99|3
cin.get();
return 0;
}