C++ struktura ko'rsatkichlari
pointer o'zgaruvchisi nafaqat o'rnatilgan types ( int , float , double va boshqalar) uchun yaratilishi mumkin, balki ular structure kabi foydalanuvchi tomonidan belgilangan turlar uchun ham yaratilishi mumkin.
Ko'rsatkichlar nima ekanligini bilmasangiz, C++ pointers ga tashrif buyuring.
#include <iostream>
using namespace std;
struct Distance {
int feet;
float inch;
};
int main() {
Distance d;
Distance* ptr = &d;
cout << "Enter feet: ";
cin >> (*ptr).feet;
cout << "Enter inch: ";
cin >> (*ptr).inch;
cout << "Displaying information." << endl;
cout << "Distance = " << (*ptr).feet << " feet " << (*ptr).inch << " inches";
return 0;
}
Chiqish
Enter feet: 4
Enter inch: 3.5
Displaying information.
Distance = 4 feet 3.5 inches
Bu erda d o'zgaruvchining manzili ptr ko'rsatkich o'zgaruvchisida saqlanadi, ya'ni ptr d o'zgaruvchiga ishora qiladi.
Distance* ptr = &d;
Keyin d o'zgaruvchining a'zo funksiyasiga ko'rsatkich yordamida murojaat qilinadi.
cin >> (*ptr).feet;
[!NOTE] Eslatmalar: Ushbu dasturda ptr ko'rsatkichi d o'zgaruvchisiga ishora qilgani uchun
(*ptr).inchvad.inchekvivalentdir. Xuddi shunday,(*ptr).feetvad.feetham ekvivalentdir..operatori*operatoridan yuqori precedence ga ega bo'lgani uchun(*ptr).inchdan foydalanilganda*ptrni qavs ichiga olamiz.
Strukturali oʻzgaruvchining aʼzo oʻzgaruvchilari va aʼzo funksiyalariga koʻrsatgich orqali kirish uchun arrow (->) operatoridan foydalanishimiz mumkin.
#include <iostream>
using namespace std;
struct Distance {
int feet;
float inch;
};
int main() {
Distance d;
Distance* ptr = &d;
cout << "Enter feet: ";
cin >> ptr->feet;
cout << "Enter inch: ";
cin >> ptr->inch;
cout << "Displaying information." << endl;
cout << "Distance = " << ptr->feet << " feet " << ptr->inch << " inches";
return 0;
}
Chiqish
Enter feet: 4
Enter inch: 3.5
Displaying information.
Distance = 4 feet 3.5 inches
Bu erda d o'zgaruvchining manzili ptr ko'rsatkich o'zgaruvchisida saqlanadi, ya'ni ptr d o'zgaruvchiga ishora qiladi.
Distance* ptr = &d;
Keyin d o'zgaruvchining a'zo o'zgaruvchisiga ko'rsatkich yordamida kirish mumkin.
cin >> ptr->feet;
[!NOTE]
(*ptr).inchvaptr->inchekvivalentdir.
#include <iostream>
using namespace std;
struct Distance {
int feet;
float inch;
void print_distance() {
cout << "Displaying Information." << endl;
cout << "Distance = " << feet << " feet " << inch << " inches";
}
};
int main() {
Distance d;
Distance* ptr = &d;
cout << "Enter feet: ";
cin >> ptr->feet;
cout << "Enter inch: ";
cin >> ptr->inch;
ptr->print_distance();
return 0;
}
Chiqish:
Enter feet: 4
Enter inch: 3.5
Displaying Information.
Distance = 4 feet 3.5 inches
Bu erda d o'zgaruvchining a'zo funksiyasiga ko'rsatkich yordamida murojaat qilinadi.
ptr->print_distance();