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

C++ 數據結構基礎(二):結構體指針

     編輯:C++ 入門

結構體指針聲明與使用

定義結構體類型後,可聲明指向它的指針:

struct Movie { string title; int year; };
Movie amovie;
Movie* pmovie = &amovie; // 指向 amovie

成員訪問:箭頭運算符 ->

指針訪問成員用 ->(等價於 (*pmovie).member):

pmovie->title = "Inception";
pmovie->year = 2010;
cout << pmovie->title << " " << pmovie->year;

完整示例:動態輸入電影信息

#include 
#include 
#include 
using namespace std;

struct Movie { string title; int year; };

int main() {
    Movie amovie;
    Movie* pmovie = &amovie;
    string mystr;
    cout << "Enter title: "; getline(cin, pmovie->title);
    cout << "Enter year: "; getline(cin, mystr);
    stringstream(mystr) >> pmovie->year;
    cout << "\nYou entered:\n";
    cout << pmovie->title << " (" << pmovie->year << ")\n";
    return 0;
}

指針與對象的關係

  • pmovie 存儲 amovie 的地址。
  • *pmovie 解引用得到對象本身。
  • pmovie->member 是 (*pmovie).member 的語法糖,更直觀。

應用場景

  • 動態分配結構體:Movie* p = new Movie; 使用後 delete p;。
  • 鏈表、樹等動態數據結構的節點指針。
  • 函數參數傳遞大結構體避免拷貝:void func(Movie* p)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved