반응형
C언어 메모리 접근 방법
& (ampersand) 이 변수의 메모리 상의 주소
* (asterisk) 그 주소가 가리키고 있는 값(value)을 가져와라.
C언어 메모리 접근 예시
int answer = 42; // 정수가 들어갈 수 있는 answer 변수에 42 값을 대입
printf("%d\n", answer); // answer 변수를 "십진수\n" 형태로 출력. (%d의 d는 decimal)
printf("%d\n", &answer); // answer 변수가 저장되어있는 메모리 주소를 출력
- 저장된 값과 주소는 전혀 상관없음.
C언어 포인터 변수
C언어에서 주소를 저장할 수 있는 변수를 포인터 변수라고 부름.
포인터 변수는 변수 앞에 *(별표)를 붙여서 만들 수 있음.
기본적으로 주소만 먹는 친구라서 먹이도 주소로 줘야한다.
#include <stdio.h>
int main()
{
int n = 42;
int *p = &n;
printf("%d\n", &n); // 출력 100 (주소 100이라고 가정)
printf("%d\n", p); // 출력 100
}
위 코드는 p를 출력하게 될 때 메모리의 주소를 출력하게 된다.
실제 "값"(42)를 출력하고 싶으면 다시 *을 써서 출력해야 합니다.
printf("%d\n", *p);
포인터 변수는 태어날 때 쓰인 별과 사용할 때 별을 다르게 해석해야함.
출처- 인프런 주말코딩 정보처리기사
728x90
반응형
'잡다한 공부' 카테고리의 다른 글
ASCII CODE (2) | 2025.01.18 |
---|---|
커스텀 자료형 typedef (6) | 2025.01.18 |
C언어 구조체 struct, 구조체 포인터 (4) | 2025.01.17 |
재귀함수란 무엇일까? (5) | 2025.01.16 |
프로그래밍 관점 함수란? (3) | 2024.12.31 |