inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Lập trình C - Từ nhập môn đến phát triển game

Tráo đổi

포인터는 어렵네요 ㅜㅜ

332

ywseokon10679

1 câu hỏi đã được viết

0

'''void swapaddr(int a, int b){

int temp = *a;

a = b;

b = &temp;

}''' 로 했을때는 왜 복사가 일어나지 않는지 설명해주실 수 있나요?

또 질문드릴 점은 포인터 변수a 에서 a 는 가지고 잇는 값이고, a는 주소값, &a는 a의 주소가 저장된 주소값인가요?

좋은 강의 너무나도 감사합니다 ㅎㅎ

c

Câu trả lời 2

0

ywseokon10679

빠른 답변 감사드립니다. ㅎㅎ

0

nadocoding

안녕하세요 나도코딩입니다. 질문글 중에서 코드 중에 별표가 빠졌나요? 인프런에서 글 입력시 누락되는 현상이 있어서, 의도하신 코드 그대로 적혔는지 모르겠네요 ^^;

두번째 질문 먼저 답변드리면, (이후 별표시는 한글로 "별"이라 적을게요)

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

131

1

8-8 연장전 / 소스코드 공유해드려요. 참고하세요!

0

122

0

섹션6. 프로젝트 소스코드 올려드려요.

0

148

1

영상속에서 배운 코드들을 Git Repository에 올려두될까요?

0

124

1

경찰서 조서 프로젝트 문의

0

149

1

경찰관 조서 프로젝트

0

202

1

scanf

0

152

1

제대로 작성한것 같은데 빌드가 않됩니다.,

0

243

1

구문 오류 C2059

0

495

1

컴파일 시 fatal error C1010 발생

0

382

1

반환값이 없는 함수

0

276

1

반올림 되는건가요?

0

326

1

맥으로수강

0

239

1

10-2

0

297

1

질문이 있습니다

0

399

1

3-3 for 반복문 ++i 일때 질문입니다.

0

300

1

6-4(배열 파트 '문자 vs 문자열') sizeof 예제 다르게 출력되는 분들 참고하세요.

1

465

0

함수 선언과 정의를 동시에 해도 되나요?

0

1147

1

빌드오류가 있다고 나오고, 지정된 파일을 찾을 수 없다고 오류가 나옵니다..

0

465

1

안녕하세요 좋은 강의와 책 감사드립니다!! 다름이 아니라 명령어를 실행시켰을 때 저런식으로 나와서 질문드립니다

0

975

0

질문있습니다!

0

411

1

질문드립니다

0

435

1

scanf_s(" %d", &answer); 이후 바로 종료

0

354

0

질문 드립니다.

0

475

1