- *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 |