#include <iostream>
#include <string>
using namespace std;
struct ant
{
int year;
};
int main()
{
ant s1, s2, s3;
s1.year = 1;
s2.year = 2;
s3.year = 3;
ant *ps[3] = { &s1, &s2, &s3 };
ant **pss = ps; //포인터와 배열이라서 **
cout << pss[0]->year << "\n";
pss[0]->year = 2;
cout << "\npss[0]->year = 2;\n";
cout << "pss[0]->year : " << pss[0]->year << "\n";
cout << "ps[0]->year : " << ps[0]->year << "\n";
cout << "s1.year : " << s1.year << "\n";
s1.year = 1;
cout << "\ns1.year = 1;\n";
cout << "ps[0]->year : " << ps[0]->year << "\n";
cout << "pss[0]->year : " << pss[0]->year << "\n";
}
ps는 배열의 이름이므로, 그 첫번째 원소의 주소이다. 배열의 첫번째 원소는 포인터이므로 pss에 대한 포인터의 포인터가되어 **가 된다.
'C++ > Basic' 카테고리의 다른 글
안 될 것 같은데 되는 문법 (2) | 2021.03.22 |
---|---|
연결리스트와 배열의 특징 (0) | 2021.03.12 |
메모리 활용 예시 delete 2 (0) | 2021.03.11 |
메모리 활용 예시 delete (0) | 2021.03.11 |
구조체(struct) (0) | 2021.02.22 |