首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C 語言結構體詳解:定義、變量聲明、指針操作與賦值複製語義

     編輯:C 語言基礎

結構體定義

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

完整可運行示例(C++ 風格,C 同理)

#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;
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved