C언어 Pointer 먼데 ! !

양희·2025년 3월 27일

정처기 문제를 풀다보니 ,

C언어의 주소, 포인터 개념은 필수이기 때무네 한번 짚고 넘어가려고 합니다 !

주소

변수가 할당된 메모리 공간의 시작 주소 !
시작 주소를 알면 그 위치부터 변수의 크기만큼 메모리를 사용할 수 있다 !

  • 주소 연산자 : &

포인터

변수의 메모리 주소를 저장하는 변수 !
메모리의 주소, 즉 '어디'인지(=위치 정보)를 저장하는 변수

  • 포인터 연산자 : *
#include

int main() {
	char* p = "KOREA";
    printf("%s\n", p);
    printf("%s\n", p+1);
    printf("%c\n", *p);
    printf("%c\n", *(p+3));
    printf("%c\n", *p+4);
}

여기에서 정답은 무얼까 요 ! ! !

우선,
char : 하나의 문자를 나타내는 자료형 !
char* : 문자열을 가리키는 포인터 !

char* p = "KOREA";
p는 "KOREA" 라는 문자열을 가리키는 포인터 다 !
문자열은 'K', 'O', 'R', 'E', 'A', '\0' 이런 방식으로 메모리 상에 연속으로 저장이 됩니다 .

%c 는 하나의 문자만 출력합니다 .
%s 는 문자열을 출력합니다 .

  • printf("%s", p)에서 p는 KOREA 라는 문자열의 첫 번째 문자를 가리키고 있고 ! %s 는 그 포인터가 가리키는 메모리 주소부터 시작해서 null문자('\n') 가 나올 때까지 계속 출력한다 !

위 내용을 토대로 풀어보새요 ~
아마 다 풀 수 있으실 거애요 ~ !

profile
머쉿는 개발자가 꿈이애요

0개의 댓글