-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
선생님, 코드 한번 봐주세요.
19.08.12 23:53 작성 조회수 115
0
#include <iostream>
using namespace std;
void swap(int& a, int& b);
void swap(int* (&a), int* (&b));
int main()
{
int a, b;
int* pa = &a, * pb = &b;
cout << "정수를 입력해보자.";
cin >> a;
cin >> b;
cout << "정수 : " << a << " " << "정수 b : " << b << endl;
swap(a, b);
cout << "swap후의 값." << endl;
cout << "정수 a : " << a << " " << "정수 b : " << b << endl;
cout << "포인터 a : " << pa << " " << "포인터 b : " << pb << endl;
cout << endl;
swap(pa, pb);
cout << "swapp후의 값." << endl;
cout << "정수 a : " << a << " " << "정수 b : " << b << endl;
cout << "포인터 a : " << pa << " " << "포인터 b : " << pb << endl;
}
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
void swap(int* (&a), int* (&b)) {
int *temp = a;
a = b;
b = temp;
}
이렇게 작성했는데요, 1과 2를 출력하면
"2 1" 로밖에 출력이 안됩니다.
함수로 바뀐 값들은 출력이 안됨은 당연하고, 문자열도 전부 출력이 안됩니다.
왜이런거죵?? ㅠㅜ
답변을 작성해보세요.
0
유영재
2019.08.25
#include <iostream>
using namespace std;
void swap(int& a, int& b);
void swapp(int *a, int *b);
int main()
{
int a, b;
int* pa = &a, *pb = &b;
cout << "정수를 입력해보자.";
cin >> a;
cin >> b;
cout << "정수 : " << a << " " << "정수 b : " << b << endl;
swap(a, b);
cout << "swap후의 값." << endl;
cout << "정수 a : " << a << " " << "정수 b : " << b << endl;
cout << "포인터 a : " << pa << " " << "포인터 b : " << pb << endl;
cout << endl;
swapp(pa, pb);
cout << "swapp후의 값." << endl;
cout << "정수 a : " << a << " " << "정수 b : " << b << endl;
cout << "포인터 a : " << pa << " " << "포인터 b : " << pb << endl;
}
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
void swapp(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
답변 1