강의

멘토링

로드맵

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của mele04041063
mele04041063

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

Học lập trình C cùng Hong Jeong-mo

9.12 Con trỏ hoạt động như thế nào

포인터 표현 질문

Viết

·

245

0

int b = 0;

int *a = &b;

에서 &b는 변수 b의 메모리 주소이고, 이 주소가 예를들어 99999라면 int *a = 99999가 되는것이 아닌가요??

왜 int *a = &b 를 통해 *a가 0이 되는지 이해가 잘 가지 않습니다.

위의 상황에서 a를 출력하면 b의 메모리주소 (예: 99999)가 출력되고 *a를 출력하면 0이 출력됩니다.

이러면 *a = 0이 아닌건가요??

int *a  = &b = 0 = 99999와 같은 상황이 만들어지는 것 같아 혼란스럽습니다.

+추가

스스로 이해해본 결과 scanf에서 &를 쓰는것과 비슷한 상황이며, int *a = &b 에서의 *와 *a = (정수) 에서의 *이 서로 다른 역할을 한다고 이해했습니다.

c

Quiz

46% người trả lời sai. Hãy thử ngay!

프로그램에서 함수를 사용하는 주된 이유 중 하나는 무엇일까요?

프로그램 실행 속도를 항상 빠르게 만들기 위해

반복되는 코드를 줄이고 재사용성을 높이기 위해

변수를 전역적으로 선언하여 어디서든 접근하기 위해

프로그램의 메모리 사용량을 최소화하기 위해

Câu trả lời 1

6

int b = 0;

int *a = &b; 에서

*a는 포인터변수 a가 참조하는 변수(b)의 값입니다. (*a = b)

a는 포인터 변수(=b의 주소)입니다. (a = &b)

a = 99999;

*a = 0; 이 맞습니다.

Hình ảnh hồ sơ của mele04041063
mele04041063

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

Đặt câu hỏi