포인터에 대한 기초적인 개념은
https://accompani-i.tistory.com/204
[정보처리기사] C언어 - 포인터의 이해(feat. 포인터변수, 주소, 주소값)
포인터란? 메모리의 위치를 표현한 기호 메모리의 주소값을 표현한 변수 포인터의 핵심은 그림을 그리는 것 메모리를 우리 생활에 비유하자면, 메모리 주소는 우리가 현재 살고 있는 집의 번지
accompani-i.tistory.com
여기를 거쳤다가 오시고
오늘은 포인터 변수로 활용되는 scanf를 알아보도록 하겠습니다.
scanf란?
사용자의 키보드로 입력받을 때 사용하는 함수
scanf의 형식
scanf("%d", 변수의 주소의 값);
"%d" -> 어떤 값을 입력 받겠다.
변수의 주소의 값 -> ex. int b; 로 선언 했다면, &b;(메모리 주소 X, 그 주소의 값 O)
메모리의 주소, 주소의 값 차이가 있으니, 위 링크 다녀오세요
scanf 사용법
int a;
scanf("%d", &a); %d: 정수를 입력 받을 건데, &a: a의 주소의 값에 입력을 받을 것이다
printf("%d", a);
ex.
scanf()함수의 입력으로 90을 입력했다고 가정했을 때
실행한 결과는???
int main() {
int i = 10;
int j = 20;
int *k = &i;
scanf("%d", k);
printf("%d, %d, %d₩n", i, j, *k);
return 0;
}
해설
포인터 변수 k = &i(i의 주소) | 변수 | 메모리 주소 | 메모리 주소의 값 | |
101 | 100 | |||
i | 101 | 10 | 90 | |
j | 102 | 20 | ||
103 |
i,j는 임의로 메모리 주소를 준다.(101,102 내가 맘대로 준거임)
scanf("%d", k); -> 정수를 입력 받을 건데, k는 메모리 주소의 값을 90으로 넣겠다. (
printf("%d","%d","%d₩n", i, j, *k);
i = 90
j = 20
*k: k의 주소의 값인 90
답 90,20,90
'iOS > 정보처리기사' 카테고리의 다른 글
[정보처리기사] C언어 - 2차원 배열과 포인터 (0) | 2022.06.13 |
---|---|
[정보처리기사] C언어 - 배열과 포인터(배열에도 주소값이 있다) (0) | 2022.06.10 |
[정보처리기사] C언어 - 포인터의 이해(feat. 포인터변수, 주소, 주소값) (0) | 2022.06.09 |
[정보처리기사] C언어 - 배열의 이해와 배열 문제풀이 (0) | 2022.06.03 |
[정보처리기사] C언어 - continue, break 개념과 for 반복문이 섞인 문제 박살내기 (feat. 다중for문) (0) | 2022.06.01 |