Technote/Data Structure C++ [C++] 부담스러운 Call-By-Value Pooh0216 2009. 9. 16. 23:29 #include using std::cout; using std::endl; using std::cin; struct _Person { int age; char name[20]; char personalID[20]; }; typedef struct _Person Person; void ShowData(Person p) { cout <<"****** 개인정보 출력 ***********"<<endl; cout <<"이름 :"<<p.name<<endl; cout <<"주민번호 : " << p.personalID<<endl; cout <<"나이 : "<<p.age<<endl; } int main(void) { Person man; cout <<"이름 : "; cin >> man.name; cout << "나이 : "; cin >> man.age; cout << "주민번호 : "; cin >> man.personalID; ShowData(man); return 0; } void ShowData(Person &p) { cout <<"****** 개인정보 출력 ***********"< 레퍼런스의 형태로 받게 되면, 이름만 하나 더 추가하는 것이므로 44파이트나 되는 크기의 복사는 발생하지 않는다. void ShowData(const Person &p) { cout <<"****** 개인정보 출력 ***********"< 레퍼런스 p를 통한 데이터의 조작을 허용하지 않겠다.는 뜻이다. 만약 p를 이용해서 데이터를 조작하는 코드가 삽입되면 에러메세지를 보여준다. 저작자표시