๐Ÿฅ‡ ์ •๋ณด์ฒ˜๋ฆฌ ๊ธฐ์‚ฌ ์‹ค๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ-ํฌ์ธํ„ฐ

C์–ธ์–ด๋กœ ๊ตฌํ˜„๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„์„ํ•˜๊ณ , ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

#include <stdio.h>

int len(char* p);
int main( ) { 
	char* p1 = "2022"; 
	char* p2 = "202207"; 
	int a = len(p1); 
	int b = len(p2); 
	printf("%d", a + b);
} 

int len(char* p) {
	int r = 0; 
	while (*p != '\0') { 
		p++;
		r++; 
	} 
	return r;
}
  1. int len(char* p); -> len() ํ•จ์ˆ˜์˜ ํ”„๋กœํ† ํƒ€์ž… ์„ ์–ธ์ด๋‹ค.
  2. p1๊ณผ p2๋Š” ๋ฌธ์žํ˜• ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋กœ ๊ฐ ๋ฌธ์ž๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ์˜ ์ฃผ์†Œ๋กœ ์ดˆ๊ธฐํ™” ๋œ๋‹ค. Pasted image 20250312144444.png ex) p1์—๋Š” '2'๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๋Š” 1000๋ฒˆ์งธ ์ฃผ์†Œ๊ฐ€ ์‚ฝ์ž…๋˜์–ด์žˆ์œผ๋ฉฐ, p1+1 ์€ '0' , p1+4 ๋Š” 1004๋ฒˆ์งธ ์ฃผ์†Œ๋กœ, '\0'์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.

์ฆ‰, 4 + 6

๋‹ต : 10


C์–ธ์–ด๋กœ ๊ตฌํ˜„๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„์„ํ•˜๊ณ , ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

#include <stdio.h> 
int main( ) { 
	int a[4] = { 0, 2, 4, 8 }; 
	int b[3]; 
	int* p; 
	int sum = 0; 
	for (int i = 1; i < 4; i++) { 
		p = a + i; 
		b[i - 1] = *p - a[i - 1]; 
		sum = sum + b[i - 1] + a[i];
	} 
	printf("%d", sum); 
}
  1. p -> ์ •์ˆ˜ํ˜• ํฌ์ธํ„ฐ ๋ณ€์ˆ˜
  2. i = 1,2,3 ๋ฐ˜๋ณต๋ฌธ
์ฒซ๋ฒˆ์งธ ๋ฐ˜๋ณต i = 1 
	`p = a + i` => a๋ฐฐ์—ด์˜ ๋‘๋ฒˆ์งธ ์š”์†Œ์˜ ์ฃผ์†Œ ์ €์žฅ
	`b[0]` = (*p => p์˜ ์ฃผ์†Œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š”๊ณณ์˜ ๊ฐ’)2 - 0 = 2
	sum = 0 + 2 + 2 = 4
๋‘๋ฒˆ์งธ ๋ฐ˜๋ณต i = 2
	a๋ฐฐ์—ด์˜ ์„ธ๋ฒˆ์งธ์š”์†Œ 4
	`b[1]` = 4 - 2 = 2
	sum = 4 + 2 + 4 = 10
์„ธ๋ฒˆ์งธ ๋ฐ˜๋ณต i = 3
	a๋ฐฐ์—ด์˜ ๋„ค๋ฒˆ์งธ์š”์†Œ 8์˜ ์ฃผ์†Œ
	'b[2]' = 8 - 4 = 4
	sum = 10 + 4 + 8 = 22

  1. ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋กœ ์„ ์–ธ๋œ p์— ๋ฐฐ์—ด์„ ์ง์ ‘๋Œ€์ž…ํ•˜๋Š”๊ฒƒ์€ ์ฃผ์†Œ๊ฐ’์„ ๋„ฃ๋Š”๊ฒƒ์ด๋‹ค.
  2. ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ• ๋•Œ p*์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋ฉด, ํ•ด๋‹น ์ฃผ์†Œ๊ฐ’ ๋‚ด์˜ ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค. p์— ์ง์ ‘ ๋Œ€์ž…ํ•  ๋•Œ ๋ง๊ณ ๋Š” ๋‹ค ๋ฐฐ์—ด๊ณผ ์‚ฌ์น™์—ฐ์‚ฐ์ด๋‹ค.

๋‹ต : 22


C์–ธ์–ด๋กœ ๊ตฌํ˜„๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„์„ํ•˜๊ณ , ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

#include <stdio.h> 
int main() { 
	int* array[3]; 
	int a = 12, b = 24, c = 36; 
	array[0] = &a; 
	array[1] = &b; 
	array[2] = &c; 
	printf("%d", *array[1] + **array + 1);
}
  1. ์ •์ˆ˜ํ˜• ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด array [ , , ]
  2. array[0] = &a;๋Š” a์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  3. array[1] ์€ &b(b์˜ ์ฃผ์†Œ๊ฐ’)์ด๊ณ , *array[1] ์€ ๊ทธ ์ฃผ์†Œ๊ฐ€ ์ง€๋‹ˆ๊ณ  ์žˆ๋Š” ์‹ค์ œ ๊ฐ’ 24์ด๋‹ค.
  4. **array + 1 =>
    • array : ๋ฐฐ์—ด์˜ ์ด๋ฆ„๋งŒ ์ง€์ •ํ•˜๋ฉด ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์˜ ์ฃผ์†Œ์ธ &array[0], ์ฆ‰ array์˜ ์ฒซ์ฃผ์†Œ๊ฐ’
    • *array : array์˜ ์ฒซ์ฃผ์†Œ๊ฐ’(array)์ด ๊ฐ€์ง€๋Š” ์‹ค์ œ ๊ฐ’ &a ์ฆ‰ int a์˜ ์ฃผ์†Œ๊ฐ’.
    • **array : int a์˜ ์ฃผ์†Œ๊ฐ’์˜ ์‹ค์ œ ์ง€๋‹ˆ๊ณ  ์žˆ๋Š”๊ฐ’ 12์ด๋‹ค.

์ฆ‰, 24 + 12 + 1

๋‹ต : 37


C์–ธ์–ด๋กœ ๊ตฌํ˜„๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„์„ํ•˜๊ณ , ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

#include <stdio.h> 
int main() { 
	int ary[3]; 
	int s = 0; 
	*(ary + 0) = 1; 
	ary[1] = *(ary + 0) + 2; 
	ary[2] = *ary + 3; 
	for (int i = 0; i < 3; i++) 
		s = s + ary[i]; 
	printf("%d", s); 
}
  1. *(ary + 0) = 1; -> arr์˜ ์ฒซ ์ฃผ์†Œ๊ฐ’์˜ ์‹ค์ œ๊ฐ’์— 1 ๋Œ€์ž… / arr[1 , , ]
  2. ary[1] = *(ary + 0) + 2; -> arr[1]์— 1+2 ๋Œ€์ž… / arr[1 , 3 , ]
  3. ary[2] = *ary + 3; -> arr[2]์— 1+3 ๋Œ€์ž… / arr[1 , 3 , 4]

1+3+4 = 8

๋‹ต : 8


C์–ธ์–ด๋กœ ๊ตฌํ˜„๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„์„ํ•˜๊ณ , ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

#include <stdio.h> 
main() { 
	char* p = "KOREA"; 
	printf("%s\n", p); 
	printf("%s\n", p + 3); 
	printf("%c\n", *p); 
	printf("%c\n", *(p + 3)); 
	printf("%c\n", *p + 2); 
}
  1. ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ž์—ด์˜ ๋์„ ์˜๋ฏธํ•˜๋Š” ๋„ ๋ฌธ์ž\0 ๊ฐ€ ์ถ”๊ฐ€๋กœ ์ €์žฅ๋˜๋ฉฐ, ์ถœ๋ ฅ์‹œ ๋„ ๋ฌธ์ž๋Š” ํ‘œ์‹œ๋˜ ์ง€ ์•Š๋Š”๋‹ค.
  2. printf("%s", P) ์˜ %s๋Š” ๋„(\0) ๋ฌธ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.

[K , O , R , E , A , \0]

  1. P : ๋ฌธ์žํ˜• ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ p ์˜ ์‹œ์ž‘์ฃผ์†Œ๊ฐ’ -> KOREA
  2. P + 3 : p์˜ ์‹œ์ž‘์ฃผ์†Œ๊ฐ’์˜ 3๋ฒˆ์งธ ๋’ค์˜ ์ฃผ์†Œ -> E์˜ ์‹œ์ž‘ ์ฃผ์†Œ๊ฐ’ -> EA
  3. *P : p ์˜ ์‹œ์ž‘์ฃผ์†Œ๊ฐ’์˜ ์‹ค์ œ ๊ฐ’ -> K
  4. *(P + 3) : P์˜ ์‹œ์ž‘์ฃผ์†Œ๊ฐ’์˜ 3๋ฒˆ์งธ ๋’ค์˜ ์ฃผ์†Œ์˜ ์‹ค์ œ ๊ฐ’ -> E
  5. *P + 2 : P์˜ ์‹œ์ž‘ ์ฃผ์†Œ์˜ ์‹ค์ œ๊ฐ’ K(ASCII ์ฝ”๋“œ 75) + 2 => 77 => M

๋‹ต :

KOREA
EA
K
E
M