Cộng đồng Hỏi & Đáp của Inflearn
포인터 표현 질문
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; 이 맞습니다.





