• *p 
    나는 p를 포인터 변수로 사용을 할꺼야.
  • 포인터 변수란?
    주소값을 가진 변수, 1차원 배열이랑 똑같다

 

int A = 10, B;
int *C = &B; *C 위치를 가리킨다, &B 위치를 가져온다

B = A--;
B+= 20;
printf("%d",*C); //C 위치의 값을 출력해라
printf("%d",&C); //C 위치를 출력해라

 

답:30

답: C의 위치

 

int code = 65;
int *P = &code; // code의 위치를 가리킴
printf("%C", (*p)++); //p의 위치의 값을 문자로 출력하고 +1을 해라

 

답: A (65를 아스키코드로 변환하면 대문자 A)

 

int n = 4; //주소값을 100이라고 가정
int* pt = NULL; //주소값을 300이라고 가정
pt = &n; //값에 n의 주소값인 100을 넣는다

printf("%d", &n + *pt - *&pt + n); 
// &n: n의 주소값인 100
// *pt: pt의 값은 100인데 pt*은 pt가 가리키는 주소의 값이라는 뜻이니까 4, 
// *(pt)로 생각하는 게 편할 듯
// *&pt: &pt부터 생각해보면 300임, *(300)이 되서 300의 값을 출력 100
// 100 + 4 - 100 + 4 = 8
return 0;

 

답: 8

 

char *p = "KOREA"; // 주소값을 100이라고 가정하겠다.
printf("%s\n", p); // %s는 주소값을 받는다. null이 나올때까지 출력함, 답: KOREA
printf("%s\n", p+3); // 103번째부터 출력한다, 답: EA
printf("%c\n", *p); // %c는 한글자만 출력한다, p의 위치의 값을 출력한다, 답: K
printf("%c\n", *(p+3)); // *(103)이 되서 103의 위치의 값이다, 답: E
printf("%c\n", *p+3); // *p는 100의 값은 K이다, %c는 아스키코드로 변환하게 된다 
// 그래서 KLM 으로 순서대로 하나씩 밀려나서 M이 된다. 답: M

 

%s

주소값을 받아서 쭉 찍는다.

 

%c

값을 한 글자 찍는다

 

 

char a[] = "Art"; // a라는 배열을 만들고 a는 100이라는 주소를 가지는 거로 가정한다.
char* p = NULL; // p라는 포인터 변수 만듦
p = a; // p라는 포인터 변수에 a의 주소 100을 넣겠다.

printf("%s\n", a); // 답: Art
printf("%c\n", *p); // 답: A
printf("%c\n", *a); // 답: A
printf("%s\n", p); // 답: Art

for (int i = 0; a[i] = '\0', i++)
	printf("%c\n", a[i]); // 답: Art
return 0;

'정보처리기사' 카테고리의 다른 글

UML(Unified Modeling Language)  (0) 2025.02.14
GoF 디자인 패턴  (1) 2025.02.10
C언어  (1) 2024.03.16
6주 학습 플랜  (0) 2024.03.12
제 1강. 소프트웨어 공학  (0) 2024.03.11

+ Recent posts