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