포인터는 어렵네요 ㅜㅜ
300
작성한 질문수 1
'''void swapaddr(int a, int b){
int temp = *a;
a = b;
b = &temp;
}''' 로 했을때는 왜 복사가 일어나지 않는지 설명해주실 수 있나요?
또 질문드릴 점은 포인터 변수a 에서 a 는 가지고 잇는 값이고, a는 주소값, &a는 a의 주소가 저장된 주소값인가요?
좋은 강의 너무나도 감사합니다 ㅎㅎ
답변 2
0
안녕하세요 나도코딩입니다. 질문글 중에서 코드 중에 별표가 빠졌나요? 인프런에서 글 입력시 누락되는 현상이 있어서, 의도하신 코드 그대로 적혔는지 모르겠네요 ^^;
두번째 질문 먼저 답변드리면, (이후 별표시는 한글로 "별"이라 적을게요)
int b = 10; // 주소 1001 에 저장된다고 가정
int 별a = &b; // 주소 2001 에 저장된다고 가정
이 상황에서
a 는 b 변수의 주소, 1001 입니다
별a 는 b 변수의 주소에 있는 값, 10 입니다.
&a 는 a 포인터 변수의 주소, 2001 입니다.
첫번째 질문은,
int a, int b 를 전달값으로 받는 경우 "값" 을 그대로 복사하여 a, b 라는 새로운 변수에 저장하게 됩니다. 즉 swapaddr 함수를 호출할때 던져주는 변수의 값을 바꾸는게 아니고, swapaddr 함수를 호출할때 새로 만들어지는 a, b 값을 바꾸게 됩니다. 그래서 함수 안에서는 바뀐것처럼 출력이 되어도 실제로 사용자가 원하는 변수의 값을 바꾼건 아니게 됩니다. 더불어 코드상에서 정수형 변수 b 에 temp 의 주소를 넣으려고 시도하는데, temp 의 주소는 정수형 변수가 아닌 포인터형 변수로 받아야 합니다.
감사합니다.
안녕하세요 7장 포인터에 관해 질문드립니다.
0
63
1
8-8 연장전 / 소스코드 공유해드려요. 참고하세요!
0
64
0
섹션6. 프로젝트 소스코드 올려드려요.
0
94
1
영상속에서 배운 코드들을 Git Repository에 올려두될까요?
0
79
1
경찰서 조서 프로젝트 문의
0
104
1
경찰관 조서 프로젝트
0
142
1
scanf
0
92
1
제대로 작성한것 같은데 빌드가 않됩니다.,
0
170
1
구문 오류 C2059
0
401
1
컴파일 시 fatal error C1010 발생
0
284
1
반환값이 없는 함수
0
215
1
반올림 되는건가요?
0
254
1
맥으로수강
0
193
1
10-2
0
257
1
질문이 있습니다
0
342
1
3-3 for 반복문 ++i 일때 질문입니다.
0
244
1
6-4(배열 파트 '문자 vs 문자열') sizeof 예제 다르게 출력되는 분들 참고하세요.
1
412
0
함수 선언과 정의를 동시에 해도 되나요?
0
1076
1
빌드오류가 있다고 나오고, 지정된 파일을 찾을 수 없다고 오류가 나옵니다..
0
404
1
안녕하세요 좋은 강의와 책 감사드립니다!! 다름이 아니라 명령어를 실행시켰을 때 저런식으로 나와서 질문드립니다
0
935
0
질문있습니다!
0
378
1
질문드립니다
0
387
1
scanf_s(" %d", &answer); 이후 바로 종료
0
312
0
질문 드립니다.
0
431
1





