在本文中,您將找到相關(guān)的示例,這些示例將幫助您使用指針來訪問結(jié)構(gòu)中的數(shù)據(jù)。
指針變量不僅可以為本機(jī)類型(int、float、double等)創(chuàng)建,還可以為用戶定義的類型(如結(jié)構(gòu)體)創(chuàng)建。
如果您不知道什么是指針,請?jiān)L問C ++指針。
這是創(chuàng)建結(jié)構(gòu)體指針的方法:
#include <iostream> using namespace std; struct temp { int i; float f; }; int main() { temp *ptr; return 0; }
這個程序創(chuàng)建一個結(jié)構(gòu)類型為temp的指針ptr。
#include <iostream> using namespace std; struct Distance { int feet; float inch; }; int main() { Distance *ptr, d; ptr = &d; cout << "輸入英尺: "; cin >> (*ptr).feet; cout << "輸入英寸: "; cin >> (*ptr).inch; cout << "顯示信息" << endl; cout << "距離 = " << (*ptr).feet << " 英尺 " << (*ptr).inch << " 英寸"; return 0; }
輸出結(jié)果
輸入英尺: 4 輸入英寸: 3.5 顯示信息 距離 = 4 英尺 3.5 英寸
該程序定義了結(jié)構(gòu)體類型的Distance,擁有指針變量*ptr和普通變量d。
變量d的地址存儲在指針變量中,即ptr指向變量d,然后使用指針訪問變量d的成員函數(shù)。
注意:由于指針ptr在此程序中指向變量d,因此(* ptr).inch和d.inch是完全相同的單元。 同樣,(* ptr).feet和d.feet是完全相同的單元。
使用指針訪問成員函數(shù)的語法很丑陋,但是還有一種更常見的代替符號->。
ptr->feet 等同于 (*ptr).feet ptr->inch 等同于 (*ptr).inch