728x90

ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด์˜ ๊ด€๊ณ„

  • ๋ฐฐ์—ด์€ ์ž๋ฃŒํ˜•์ด ๊ฐ™์€ ๋ณ€์ˆ˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†์œผ๋กœ ํ• ๋‹นํ•œ ๊ฒƒ์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ ๊ฐ ๋ฐฐ์—ด ์š”์†Œ๋Š” ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ์ฃผ์†Œ๋ฅผ ๊ฐ–๋Š”๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, int arr[4];์˜ ๋ฐฐ์—ด์ด ๋ฉ”๋ชจ๋ฆฌ 100๋ฒˆ์ง€๋ถ€ํ„ฐ ํ• ๋‹น๋˜์–ด ์žˆ๋‹ค๋ฉด 
intํ˜• ๋ณ€์ˆ˜๋Š” 4๋ฐ”์ดํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ๋ฐฐ์—ด ์š”์†Œ์˜ ์ฃผ์†Œ๋Š” 100, 104, 108, 112๋ฒˆ์ง€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

  • โ–ถ ๊ฒฐ๊ตญ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์˜ ์ฃผ์†Œ๋ฅผ ์•Œ๋ฉด ๋‚˜๋จธ์ง€ ์š”์†Œ์˜ ์ฃผ์†Œ๋„ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์˜ ์ฃผ์†Œ๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๋„๋ก ๋ฐฐ์—ด๋ช…์„ ์ฒซ ๋ฒˆ์งธ ๋ฐฐ์—ด ์š”์†Œ์˜ ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • ์ฆ‰, ๋ฐฐ์—ด์˜ ์ด๋ฆ„์€ ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์ฃผ์†Œ ๊ฐ’์ด๋‹ค.

#include <Stdio.h>

int main(void)
{
	int arr[3] = {1,2,3};
    
    printf("๋ฐฐ์—ด์˜ ์ด๋ฆ„ : %p\n", arr);
    
    printf("๋ฐฐ์—ด์˜ ์ด๋ฆ„ : %p\n", &arr[0]);
    printf("๋ฐฐ์—ด์˜ ์ด๋ฆ„ : %p\n", &arr[1]);
    printf("๋ฐฐ์—ด์˜ ์ด๋ฆ„ : %p\n", &arr[2]);
    
    return 0;
}

์‹คํ–‰๊ฒฐ๊ณผ
๋ฐฐ์—ด์˜ ์ด๋ฆ„ : 005AFA14
์ฒซ ๋ฒˆ์งธ ์š”์†Œ : 005AFA14
๋‘ ๋ฒˆ์งธ ์š”์†Œ : 005AFA18
์„ธ ๋ฒˆ์งธ ์š”์†Œ : 005AFA1C
  • ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์žฌ ์ฃผ์†Œ๊ฐ’์ด 005AFA14์ธ๋ฐ, ๋ฐฐ์—ด์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•œ ๊ฒฐ๊ณผ๋„ 005AFA14๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋Š” ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฟ์ž…๋‹ˆ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ๋ฐฐ์—ด์˜ ์ด๋ฆ„์€ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์˜ ์ด๋ฆ„์€ ๊ฐ’์˜ ์ €์žฅ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ (๋Œ€์ž…์—ฐ์‚ฐ์ž์˜ ํ”ผ์—ฐ์‚ฌ์ž๊ฐ€ ๋  ์ˆ˜ ์—†๋‹ค).
  • ์ฃผ์†Œ ๊ฐ’์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. โ–ถ ๊ทธ๋ž˜์„œ ๋ฐฐ์—ด์˜ ์ด๋ฆ„์„ '์ƒ์ˆ˜ ํ˜•ํƒœ์˜ ํฌ์ธํ„ฐ'. 'ํฌ์ธํ„ฐ ์ƒ์ˆ˜'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค

ํฌ์ธํ„ฐ ์—ฐ์‚ฐ

  • ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์€ +, - , ++, -- ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ์ธํ„ฐ ๊ฐ’์„ ์ฆ๊ฐ€/๊ฐ์†Œ์‹œํ‚ค๋Š” ์—ฐ์‚ฐ์ด๋‹ค.
  • ํฌ์ธํ„ฐ๋กœ ๊ณฑ์…ˆ์ด๋‚˜ ๋‚˜๋ˆ—์…ˆ์€ ์•ˆ๋œ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ํฌ๊ธฐ๊ฐ€ 4๋ฐ”์ดํŠธ์ธ intํ˜• ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ 100๋ฒˆ์ง€์— 1์„ ๋”ํ•œ ๊ฒฐ๊ณผ๋Š” 101์ด ์•„๋‹Œ 104๊ฐ€ ๋œ๋‹ค.
    • ์—ฐ์‚ฐ ๊ฒฐ๊ณผ ๋˜ํ•œ ์ฃผ์†Œ์ด๋‹ค.

#include <stdio.h>

int main(void){
    char * ptr1 = 0;	// 0๋Œ€์‹  NULL์„ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.
    int * ptr2 = 0;
    double * ptr3 = 0;
    
    printf("%d๋ฒˆ์ง€, %d๋ฒˆ์ง€, %d๋ฒˆ์ง€\n",ptr1,ptr2,ptr3);
    
    ptr1++;
    ptr2++;
    ptr3++;
    
    printf("%d๋ฒˆ์ง€, %d๋ฒˆ์ง€, %d๋ฒˆ์ง€\n", ptr1,ptr2,ptr3);
    
    return 0;
}
์‹คํ–‰๊ฒฐ๊ณผ
0๋ฒˆ์ง€, 0๋ฒˆ์ง€, 0๋ฒˆ์ง€
1๋ฒˆ์ง€, 4๋ฒˆ์ง€, 8๋ฒˆ์ง€

 

  • ์ด๋Ÿฌํ•œ ํฌ์ธํ„ฐ์˜ ์—ฐ์‚ฐ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด์„œ ๋ฐฐ์—ด ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
#include <stdio.h>

int main(void){
	int arr[5] = {1,2,3,4,5};
    
    int * ptr = arr;
    
    printf("%d %d %d %d %d\n",*ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4));
    printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], arr[4]);
    
    return 0;
}
์‹คํ–‰๊ฒฐ๊ณผ
1 2 3 4 5
1 2 3 4 5

โ–ถ *ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4)์˜ ์ถœ๋ ฅ๊ฒฐ๊ณผ๋Š” arr[0], arr[1], arr[2], arr[3], arr[4]์˜ ์ถœ๋ ฅ๊ฒฐ๊ณผ์™€ ๋ชจ๋‘ ๋™์ผํ•œ ์ถœ๋ ฅ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ž…๋‹ˆ๋‹ค.

 

  • ๋ฐฐ์—ด์˜ ์ด๋ฆ„๊ณผ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ์ƒ์ˆ˜, ๋ณ€์ˆ˜์˜ ์ฐจ์ด๋งŒ ์žˆ์„ ๋ฟ, ์‚ฌ์‹ค์€ ๋™์ผํ•˜๋‹ค.
#include <stdio.h>
 
int main(void)
{
    int arr[3] = {1, 2, 3};
 
    int * ptr = arr;
 
    printf("%d %d %d\n", *ptr, *(ptr+1), *(ptr+2));
    printf("%d %d %d\n", ptr[0], ptr[1], ptr[2]);
    printf("%d %d %d\n", *arr, *(arr + 1), *(arr + 2));
    printf("%d %d %d\n", arr[0], arr[1], arr[2]);
 
    return 0;
}
์‹คํ–‰๊ฒฐ๊ณผ
1 2 3
1 2 3
1 2 3
1 2 3

 

 

 

 

โ˜… ์ด๋ฅผ ํ†ตํ•ด arr[i] == *(arr+i)๋ผ๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ˜…

 

 

 

 

 


ํฌ์ธํ„ฐ ๋ฐฐ์—ด

  • ํฌ์ธํ„ฐ ๋ฐฐ์—ด์ด๋ž€ ๋ฐฐ์—ด ์š”์†Œ๋กœ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์ฆ‰, ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ '๋ฐฐ์—ด'์„ ์˜๋ฏธํ•œ๋‹ค.
  • ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ๋ฐฐ์—ด๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์ง€๋งŒ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์„ ์–ธ๋œ ๋ฐฐ์—ด์ผ ๋ฟ์ด๋‹ค.
  • โ˜…ํฌ์ธํ„ฐ ๋ฐฐ์—ด์„ ์„ ์–ธํ•  ๋•Œ๋Š” ๋ฐฐ์—ด ์š”์†Œ์˜ ์ž๋ฃŒํ˜•์ด ํฌ์ธํ„ฐํ˜•์ด๋ฏ€๋กœ ๋ฐฐ์—ด์ด๋ฆ„ ์•ž์— *์„ ๋ถ™์ด๋ฉด ๋œ๋‹ค.
#include <stdio.h>

int main(void)
{
	int num1 = 1, num2 = 2, num3 = 3;
    int * arr[3] = { &num1, &num2, &num3};	// ํฌ์ธํ„ฐ ๋ฐฐ์—ด ์„ ์–ธ ๋ฐ ์ดˆ๊ธฐํ™”
    
    printf("์ฃผ์†Œ๊ฐ’ : %p %p %p\n", arr[0], arr[1], arr[2]);
    printf("๊ฐ’ : %d %d %d\n", *arr[0], *arr[1], *arr[2]);
    
    return 0;
}
์‹คํ–‰๊ฒฐ๊ณผ
์ฃผ์†Œ๊ฐ’ : 00EFFB24 00EFFB18 00EFFB0C
๊ฐ’ : 1 2 3

โ–ถ ํฌ์ธํ„ฐ ๋ฐฐ์—ด์€ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†ํ•ด์„œ ์œ„์น˜ํ•˜์ง€๋งŒ ํฌ์ธํ„ฐ ๋ฐฐ์—ด์— ์ €์žฅ๋œ ์ฃผ์†Œ๊ฐ’์€ ์—ฐ์†์„ฑ์„ ์ง€๋‹ˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


  • ํฌ์ธํ„ฐ ๋ฐฐ์—ด์€ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฌธ์ž์—ด ๋ฐฐ์—ด์€ ๋ฌธ์ž์—ด์˜ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด๋กœ์„œ ์‚ฌ์‹ค charํ˜• ํฌ์ธํ„ฐ ๋ฐฐ์—ด์ด๋‹ค.
  • " "ํฐ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์ธ ๋ฌธ์ž์—ด์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅ๋œ ํ›„ ๊ทธ ์ฃผ์†Œ๊ฐ’์ด ๋ฐ˜ํ™˜๋œ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์•Œ๋ ค์ค€๋‹ค.
  • ๋ฐ˜ํ™˜๋œ ๋ฌธ์ž์—ด์˜ ์ฃผ์†Œ๊ฐ’์€ ๋ฌธ์ž์—ด ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์˜ ์ฃผ์†Œ์ด๋‹ค.
#include <stdio.h>

int main(void)
{
	// ๋ฌธ์ž์—ด ๋ฐฐ์—ด ์„ ์–ธ ๋ฐ ์ดˆ๊ธฐํ™”
    char * strarr[3] = {"sejong", "university", "computer"};
    
    printf("%s %s %s\n", strarr[0], strarr[1], strarr[2]);
    
    return 0;
}

โ–ถ ํฌ์ธํ„ฐ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋Š” ๋ฌธ์ž์—ด ์ƒ์ˆ˜๊ฐ€ ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด์˜ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๊ทธ ๋ฌธ์ž๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๊ฐ’์„ ๋ณ€ํ™˜๋ฌธ์ž %s๋กœ ์ถœ๋ ฅํ•˜๋ฉด null ๋ฌธ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ฐจ๋ก€๋กœ ์ถœ๋ ฅํ•˜๋ฏ€๋กœ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋œ๋‹ค.


๋ฐฐ์—ด ํฌ์ธํ„ฐ

  • ๋ฐฐ์—ด ํฌ์ธํ„ฐ๋ž€ ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์˜๋ฏธ
  • 1์ฐจ์› ๋ฐฐ์—ด์€ ์ด๋ฆ„ ์ž์ฒด๊ฐ€ ํฌ์ธํ„ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด ํฌ์ธํ„ฐ๊ฐ€ ํ•„์š” ์—†๋‹ค.
  • ํ•˜์ง€๋งŒ 2์ฐจ์› ๋ฐฐ์—ด์€ ์ด๋ฆ„ ์ž์ฒด๋กœ ํฌ์ธํ„ฐ์˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์—†๋‹ค.
  • ๋ฐฐ์—ด ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” 2์ฐจ์› ์ด์ƒ์˜ ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ฌ ๋•Œ ํฌ์ธํ„ฐ๋ฅผ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ 
  • ๋”ฐ๋ผ์„œ ๋ฐฐ์—ด ํฌ์ธํ„ฐ๋Š” 2์ฐจ์› ์ด์ƒ์˜ ๋ฐฐ์—ด์—์„œ๋งŒ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.
#include <stdio.h>

int main(void)
{
	int arr2d[2][3] = {
    {10, 20, 30},
    {40, 50, 60},
    };
    
    printf("%d %d\n", *arr2d[0], *arr2d[1]);
    
    return 0;
}
์‹คํ–‰๊ฒฐ๊ณผ
10 40

 

 

  • arr2d[0]๊ณผ arr2d[1]์€ ๊ฐ ๋ถ€๋ถ„ ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  • arr2d[0]์€ 2์ฐจ์› ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰์„ ์˜๋ฏธํ•˜๊ณ , arr2d[1]์€ ๋‘ ๋ฒˆ์งธ ํ–‰์„ ์˜๋ฏธํ•œ๋‹ค.

 

 

 


<๋ฐฐ์—ด ํฌ์ธํ„ฐ ์ •์˜>
์ž๋ฃŒํ˜•
(*ํฌ์ธํ„ฐ์ด๋ฆ„)[๊ฐ€๋กœ(ํ–‰)๊ธธ์ด]

! ํฌ์ธํ„ฐ๊ฐ€ ์ž๋ฃŒํ˜• ์ชฝ์— ๋ถ™๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ํฌ์ธํ„ฐ๋ณ€์ˆ˜์ด๋ฆ„ ์ชฝ์— ์†Œ๊ด„ํ˜ธ ์•ˆ์— ๋ถ™๊ฒŒ ๋œ๋‹ค.

 

 

 

 

  • int: ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ •๋ณด(์ฆ‰, intํ˜• ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ)๋ฅผ ์˜๋ฏธ
  • (*ptr): ptr์€ ํฌ์ธํ„ฐ์ž„์„ ์˜๋ฏธ
  • [3]: ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์— ๋”ฐ๋ฅธ ์ฆ๊ฐ€/๊ฐ์†Œ์˜ ํญ์ด๋‹ค. (๊ฐ’์„ 1 ์ฆ๊ฐ€ ์‹œ intํ˜•์ด๋ฏ€๋กœ 4๋ฐ”์ดํŠธ*3 = 12๋ฐ”์ดํŠธ ์ด๋™)

 

#include <stdio.h>

int main(void)
{
	int arr2d[2][3] = {
    {10, 20, 30},
    {40, 50, 60},
    };
    
    int i, j;
    
    int (*ptr)[3] = arr2d;	// ๋ฐฐ์—ด ํฌ์ธํ„ฐ ์„ ์–ธ
    
    for (i = 0; i < 2; i++)
    {
    	for (j = 0; j < 3; j++)
        	printf("%d ", ptr[i][j]);	// ๋ฐฐ์—ด ํฌ์ธํ„ฐ๋กœ ์ฐธ์กฐ
        printf("\n");
   	}
    
    return 0;
}
    
์‹คํ–‰๊ฒฐ๊ณผ
10 20 30
40 50 60

 


  • 1์ฐจ์› ๋ฐฐ์—ด์—์„œ arr[i] == *(arr+i)๋ผ๋Š” ๋ฌธ์žฅ์ด ์„ฑ๋ฆฝํ•œ๋‹ค.
  • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 2์ฐจ์›๋ฐฐ์—ด์—์„œ๋„ arr[i] == *(arr+i)์ด๋‹ค.

๋ชจ๋‘ ๊ฐ™์€ ํ‘œํ˜„

#include <stdio.h>

int main(void)
{
	int arr2d[2][3] = {
    {10, 20, 30},
    {40, 40, 50},
    };
    
    int i, j;
    
    for (i = 0; i < 2 ; i++)
    {
    	for (j = 0; j < 3; j++)
        {
        	printf("%d ", arr2d[i][j]);
            printf("%d ", (*(arr2d + i))[j]);
            printf("%d ", *(arr2d[i] + j));
            printf("%d\n", *(*(arr2d + i) + j));
         }
     }
     
     return 0;
}
์‹คํ–‰๊ฒฐ๊ณผ
10 10 10 10
20 20 20 20
30 30 30 30
40 40 40 40
50 50 50 50
60 60 60 60

ํฌ์ธํ„ฐ ๋ฐฐ์—ด / ๋ฐฐ์—ด ํฌ์ธํ„ฐ ์ฐจ์ด

  • ํฌ์ธํ„ฐ ๋ฐฐ์—ด: ์ฃผ์†Œ๊ฐ’๋“ค์„ ์ €์žฅํ•˜๋Š” '๋ฐฐ์—ด'
  • ๋ฐฐ์—ด ํฌ์ธํ„ฐ: ๋ฐฐ์—ด์˜ ์‹œ์ž‘์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” 'ํฌ์ธํ„ฐ'

 

  • ์™ผ์ชฝ์€ intํ˜• ๋ณ€์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ intํ˜• ํฌ์ธํ„ฐ ๋ฐฐ์—ด
  • ์˜ค๋ฅธ์ชฝ์€ ๊ฐ€๋กœ๊ธธ์ด๊ธฐ 3์ธ intํ˜• 2์ฐจ์› ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ ๋ณ€์ˆ˜

โ–ถ ( ) ๊ด„ํ˜ธ์˜ ์œ ๋ฌด๊ฐ€ ์ค‘์š”

 

 

์ถœ์ฒ˜: https://sejong-kr.libguides.com/c.php?g=942235&p=6822367

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ > C์–ธ์–ด' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๊ตฌ์กฐ์ฒด  (0) 2024.08.21
ํฌ์ธํ„ฐ & ํ•จ์ˆ˜  (0) 2024.08.16
ํฌ์ธํ„ฐ  (0) 2024.08.15
๋ฐฐ์—ด  (0) 2024.08.14
ํ•จ์ˆ˜  (0) 2024.08.14
728x90

# 10171๋ฒˆ - ๊ณ ์–‘์ด

๋ฌธ์ œ

์•„๋ž˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด ๊ณ ์–‘์ด๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์—†์Œ.

์ถœ๋ ฅ

๊ณ ์–‘์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ถœ๋ ฅ 1 

\    /\
 )  ( ')
(  /  )
 \(__)|

 

๋ฌธ์ œํ’€์ด

#include <stdio.h>

int main(){
    printf("\\    /\\\n");
    printf(" )  ( ')\n");
    printf("(  /  )\n");
    printf(" \\(__)|\n");      
}

# 10172๋ฒˆ - ๊ฐœ

๋ฌธ์ œ

์•„๋ž˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด ๊ฐœ๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์—†์Œ.

์ถœ๋ ฅ

๊ฐœ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ถœ๋ ฅ 1 

|\_/|
|q p|   /}
( 0 )"""\
|"^"`    |
||_/=\\__|

๋ฌธ์ œํ’€์ด

#include <stdio.h>

int main(){
    printf("|\\_/|\n");
    printf("|q p|   /}\n");
    printf("( 0 )\"\"\"\\\n");
    printf("|\"^\"`    |\n");
    printf("||_/=\\\\__|\n");
        
}

 

์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž์ธ \, ", ' ์„ ์ถœ๋ ฅํ•˜๋ ค๋ฉด ์•ž์— ์—ญ์Šฌ๋ž˜์‹œ\ ๋ฅผ ๋ถ™์—ฌ์•ผ ๋œ๋‹ค.
728x90

#11382๋ฒˆ - ๊ผฌ๋งˆ ์ •๋ฏผ

๋ฌธ์ œ

๊ผฌ๋งˆ ์ •๋ฏผ์ด๋Š” ์ด์ œ A + B ์ •๋„๋Š” ์‰ฝ๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ œ A + B + C๋ฅผ ๊ณ„์‚ฐํ•  ์ฐจ๋ก€์ด๋‹ค!

 

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— A, B, C (1 ≤ A, B, C ≤ 10^12)์ด ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ

A+B+C์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1 

77 77 7777

์˜ˆ์ œ ์ถœ๋ ฅ 1 

7931

 


๋ฌธ์ œํ’€์ด

#include <stdio.h>

int main(){
    long int A,B,C;
    
    scanf("%ld %ld %ld",&A,&B,&C);
    printf("%ld",A+B+C);
    return 0;
}

 

10^12 ์€ intํ˜•์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— intํ˜•๋ณด๋‹ค ๋ฒ”์œ„๊ฐ€ ํฐ ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ–ˆ์–ด์•ผ ํ–ˆ๋‹ค.
728x90

# 2588๋ฒˆ - ๊ณฑ์…ˆ

๋ฌธ์ œ

(์„ธ ์ž๋ฆฌ ์ˆ˜) × (์„ธ ์ž๋ฆฌ ์ˆ˜)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ํ†ตํ•˜์—ฌ ์ด๋ฃจ์–ด์ง„๋‹ค.

(1)๊ณผ (2)์œ„์น˜์— ๋“ค์–ด๊ฐˆ ์„ธ ์ž๋ฆฌ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ (3), (4), (5), (6)์œ„์น˜์— ๋“ค์–ด๊ฐˆ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— (1)์˜ ์œ„์น˜์— ๋“ค์–ด๊ฐˆ ์„ธ ์ž๋ฆฌ ์ž์—ฐ์ˆ˜๊ฐ€, ๋‘˜์งธ ์ค„์— (2)์˜ ์œ„์น˜์— ๋“ค์–ด๊ฐˆ ์„ธ์ž๋ฆฌ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ ๋„ท์งธ ์ค„๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ (3), (4), (5), (6)์— ๋“ค์–ด๊ฐˆ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.


๋ฌธ์ œํ’€์ด

#include <stdio.h>
int main(void)
{
    int num1,num2;
    
    scanf("%d %d", &num1,&num2);
    printf("%d\n", num1*((num2%100)%10) );
    printf("%d\n", num1*((num2%100)/10) );
    printf("%d\n", num1*(num2/100) );
    printf("%d", num1*num2 );
}

 

num2%100 → 85%10 → 5
num2%100 → 85/10 → 8
num2/100 → 3

 

728x90
๋ฌธ์ œ

(A+B)%C๋Š” ((A%C) + (B%C))%C ์™€ ๊ฐ™์„๊นŒ?

(A×B)%C๋Š” ((A%C) × (B%C))%C ์™€ ๊ฐ™์„๊นŒ?

์„ธ ์ˆ˜ A, B, C๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์œ„์˜ ๋„ค ๊ฐ€์ง€ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— A, B, C๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. (2 ≤ A, B, C ≤ 10000)

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— (A+B)%C,

๋‘˜์งธ ์ค„์— ((A%C) + (B%C))%C,

์…‹์งธ ์ค„์— (A×B)%C,

๋„ท์งธ ์ค„์— ((A%C) × (B%C))%C๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

#include <stdio.h>

int main(){
    int A,B,C;
    
    scanf("%d %d %d",&A,&B,&C);
    printf("%d\n",(A+B)%C);
    printf("%d\n",((A%C) + (B%C))%C);
    printf("%d\n",(A*B)%C);
    printf("%d\n",((A%C) * (B%C))%C);
    
    
}
728x90

#18108๋ฒˆ - 1998๋…„์ƒ์ธ ๋‚ด๊ฐ€ ํƒœ๊ตญ์—์„œ๋Š” 2541๋…„์ƒ?!

๋ฌธ์ œ

ICPC Bangkok Regional์— ์ฐธ๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜์™„๋‚˜ํ’ˆ ๊ตญ์ œ๊ณตํ•ญ์— ๋ง‰ ๋„์ฐฉํ•œ ํŒ€ ๋ ˆ๋“œ์‹œํ”„ํŠธ ์ผํ–‰์€ ๋ˆˆ์„ ๋ฏฟ์„ ์ˆ˜ ์—†์—ˆ๋‹ค.

๊ณตํ•ญ์˜ ๋Œ€ํ˜• ์Šคํฌ๋ฆฐ์— ์˜ฌํ•ด๊ฐ€ 2562๋…„์ด๋ผ๊ณ  ์ ํ˜€ ์žˆ๋˜ ๊ฒƒ์ด์—ˆ๋‹ค.

๋ถˆ๊ต ๊ตญ๊ฐ€์ธ ํƒœ๊ตญ์€ ๋ถˆ๋ฉธ๊ธฐ์›(ไฝ›ๆป…็ด€ๅ…ƒ), ์ฆ‰ ์„๊ฐ€๋ชจ๋‹ˆ๊ฐ€ ์—ด๋ฐ˜ํ•œ ํ•ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์—ฐ๋„๋ฅผ ์„ธ๋Š” ๋ถˆ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ˜๋ฉด, ์šฐ๋ฆฌ๋‚˜๋ผ๋Š” ์„œ๊ธฐ ์—ฐ๋„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๋ถˆ๊ธฐ ์—ฐ๋„๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์ด๋ฅผ ์„œ๊ธฐ ์—ฐ๋„๋กœ ๋ฐ”๊ฟ” ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์„œ๊ธฐ ์—ฐ๋„๋ฅผ ์•Œ์•„๋ณด๊ณ  ์‹ถ์€ ๋ถˆ๊ธฐ ์—ฐ๋„ y๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1000 ≤ y ≤ 3000)

 

์ถœ๋ ฅ

๋ถˆ๊ธฐ ์—ฐ๋„๋ฅผ ์„œ๊ธฐ ์—ฐ๋„๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 


๋ฌธ์ œํ’€์ด

#include <stdio.h>

int main(){
    int y;
    
    scanf("%d",&y);
    printf("%d",y-543);
}

 

728x90

# 10926๋ฒˆ - ??!

๋ฌธ์ œ

์ค€ํ•˜๋Š” ์‚ฌ์ดํŠธ์— ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋‹ค๊ฐ€ joonas๋ผ๋Š” ์•„์ด๋””๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ๋†€๋ž๋‹ค. ์ค€ํ•˜๋Š” ๋†€๋žŒ์„ ??!๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์ค€ํ•˜๊ฐ€ ๊ฐ€์ž…ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์‚ฌ์ดํŠธ์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์•„์ด๋””๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋†€๋žŒ์„ ํ‘œํ˜„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ค€ํ•˜๊ฐ€ ๊ฐ€์ž…ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์‚ฌ์ดํŠธ์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์•„์ด๋””๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์•„์ด๋””๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 50์ž๋ฅผ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ค€ํ•˜์˜ ๋†€๋žŒ์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋†€๋žŒ์€ ์•„์ด๋”” ๋’ค์— ??!๋ฅผ ๋ถ™์—ฌ์„œ ๋‚˜ํƒ€๋‚ธ๋‹ค.


๋ฌธ์ œํ’€์ด

#include <stdio.h>

int main(){
    char id[50];
    
    scanf("%s",&id);
    printf("%s??!",id);
    
    return 0;   
}
728x90

# 2557๋ฒˆ - Hello World

โ–ถ Hello World!๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

#include <stdio.h>

int main(){
    printf("Hello World!");
}

 

# 1000๋ฒˆ - A+B

โ–ถ ๋‘ ์ •์ˆ˜ A์™€ B๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋‹ค์Œ, A+B๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

#include <stdio.h>

int main(){
    int A,B;
    
    scanf("%d %d",&A,&B);
    printf("%d",A+B);
}

 

# 1001๋ฒˆ - A - B

โ–ถ ๋‘ ์ •์ˆ˜ A์™€ B๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋‹ค์Œ, A-B๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

#include <stdio.h>

int main(){
    int A,B;
    
    scanf("%d %d",&A,&B);
    printf("%d",A-B);
}

 

# 10998๋ฒˆ - A X B

โ–ถ ๋‘ ์ •์ˆ˜ A์™€ B๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋‹ค์Œ, A×B๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

#include <stdio.h>

int main(){
    int A,B;
    
    scanf("%d %d",&A,&B);
    printf("%d",A*B);
}

 

# 10998๋ฒˆ - A / B

โ–ถ ๋‘ ์ •์ˆ˜ A์™€ B๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋‹ค์Œ, A/B๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ฒซ์งธ ์ค„์— A/B๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์‹ค์ œ ์ •๋‹ต๊ณผ ์ถœ๋ ฅ๊ฐ’์˜ ์ ˆ๋Œ€์˜ค์ฐจ ๋˜๋Š” ์ƒ๋Œ€์˜ค์ฐจ๊ฐ€ 10-9 ์ดํ•˜์ด๋ฉด ์ •๋‹ต์ด๋‹ค.

#include <stdio.h>

int main(){
    int A,B;
    double div;
    
    scanf("%d %d",&A,&B);
    div = (double)A/B;
    printf("%.9lf",div);
}

 

# 10998๋ฒˆ - ์‚ฌ์น™์—ฐ์‚ฐ

โ–ถ ๋‘ ์ž์—ฐ์ˆ˜ A์™€ B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ, A+B, A-B, A*B, A/B(๋ชซ), A%B(๋‚˜๋จธ์ง€)๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

#include <stdio.h>

int main(){
    int A,B;
    
    scanf("%d %d",&A,&B);
    printf("%d\n",A+B);
    printf("%d\n",A-B);
    printf("%d\n",A*B);
    printf("%d\n",A/B);
    printf("%d\n",A%B);
}
728x90

๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ

- ๋ณ€์ˆ˜๋Š” ์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ๋œ๋‹ค.
- C์–ธ์–ด์—์„œ ๋ชจ๋“  ๋ณ€์ˆ˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์ƒ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
- ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์œผ๋กœ, ๊ทธ ์œ„์น˜๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ณ€์ˆ˜ ์•ž์— &(์ฃผ์†Œ ์—ฐ์‚ฐ์ž)๋ฅผ ๋ถ™์ธ๋‹ค.
  • ์ฃผ์†Œ๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ '์‹œ์ž‘ ์ฃผ์†Œ'๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
#include <stdio.h>

int main(void)
{
	int num = 10;
    printf("%p\n", &num);
    
    return 0;
}

์‹คํ–‰ ๊ฒฐ๊ณผ: 00AFF9F4

โ–ถ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” 00AFF9F4์™€ ๊ฐ™์ด 16์ง„์ˆ˜ ํ˜•ํƒœ์ด๋ฉฐ, printf์—์„œ ์„œ์‹ ์ง€์ •์ž %p๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.

8์ง„์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” %o, 16์ง„์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” %x๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋Š” ๊ณ ์ •๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ปดํ“จํ„ฐ๋งˆ๋‹ค, ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ฌ๋ผ์ง„๋‹ค.

 

 

  • intํ˜• ๋ณ€์ˆ˜๋Š” 4๋ฐ”์ดํŠธ์ด๋ฏ€๋กœ intํ˜• ๋ณ€์ˆ˜ num์€ 00AFF9F4๋ฒˆ์ง€์—์„œ๋ถ€ํ„ฐ 00AFF9F7๋ฒˆ์ง€๊นŒ์ง€ ๊ฑธ์ณ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณ€์ˆ˜ num์ด ์ €์žฅ๋˜๊ธฐ ์‹œ์ž‘ํ•œ ์ฃผ์†Œ 00AFF9F4๊ฐ€ ๋ณ€์ˆ˜ num์˜ ์ฃผ์†Œ๊ฐ’์ด๋‹ค.
  • ์ฃผ์†Œ๊ฐ’ 00AFF9F4 ๋˜ํ•œ 16์ง„์ˆ˜๋กœ ์ •์ˆ˜์ด๋‹ค. 
  • ๋”ฐ๋ผ์„œ ์ฃผ์†Œ๊ฐ’๋„ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ์ด ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜๊ฐ€ ๋ฐ”๋กœ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์ด๋‹ค.

ํฌ์ธํ„ฐ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

  • ํฌ์ธํ„ฐ(pointer)๋ž€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜
  • *(์ฐธ์กฐ์—ฐ์‚ฐ์ž)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ
  • ์ž๋ฃŒํ˜•์€ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ ์ž ํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์„ ๋ช…์‹œํ•œ๋‹ค.
์ž๋ฃŒํ˜• * ํฌ์ธํ„ฐ์ด๋ฆ„;

 

  • ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์€ ์ฑ„๋กœ ์ฐธ์กฐ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ์žฅ์†Œ์— ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋œ๋‹ค.
  • ์ด๋Ÿฐ ๊ฒฝ์šฐ๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํฌ์ธํ„ฐ์˜ ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”๋ฅผ ํ•จ๊ป˜ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค,
์ž๋ฃŒํ˜• * ํฌ์ธํ„ฐ์ด๋ฆ„ = &๋ณ€์ˆ˜์ด๋ฆ„;
์ž๋ฃŒํ˜• * ํฌ์ธํ„ฐ์ด๋ฆ„ = ์ฃผ์†Œ๊ฐ’;
#include <stdio.h>
 
int main(void) {
 
    int num;    // ์ผ๋ฐ˜ ๋ณ€์ˆ˜ ์„ ์–ธ
    int * pnum;    // ํฌ์ธํ„ฐ ์„ ์–ธ
    
    pnum = &num;    // ํฌ์ธํ„ฐ์— num ์ฃผ์†Œ ๋Œ€์ž…
    *pnum = 10;    // ํฌ์ธํ„ฐ๋กœ ๋ณ€์ˆ˜ num์— 10 
 
    printf("๋ณ€์ˆ˜๋ช…์œผ๋กœ num ๊ฐ’ ์ถœ๋ ฅ : %d\n", num);
    printf("ํฌ์ธํ„ฐ๋กœ num ๊ฐ’ ์ถœ๋ ฅ : %d\n", *pnum);
 
    return 0;
}

์‹คํ–‰๊ฒฐ๊ณผ
๋ณ€์ˆ˜๋ช…์œผ๋กœ num ๊ฐ’ ์ถœ๋ ฅ : 10
ํฌ์ธํ„ฐ๋กœ num ๊ฐ’ ์ถœ๋ ฅ : 10

ํฌ์ธํ„ฐ์— num์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋ฉด ํฌ์ธํ„ฐ pnum์€ ๋ณ€์ˆ˜ num์˜ ์œ„์น˜๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค.

โ–ถ ํฌ์ธํ„ฐ๊ฐ€ ์–ด๋–ค ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•œ ๊ฒฝ์šฐ '๊ฐ€๋ฆฌํ‚จ๋‹ค'๋ผ๊ณ  ํ•˜๊ณ , pnum์ด num์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.

โ–ถ ํฌ์ธํ„ฐ pnum์ด num์„ ๊ฐ€๋ฅดํ‚ค๋ฏ€๋กœ *pnum์— 10์„ ๋Œ€์ž…ํ•˜๋ฉด ๊ฒฐ๊ตญ num์— 10์„ ๋Œ€์ž…ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

 

์ด์ค‘ ํฌ์ธํ„ฐ

  • ์ด์ค‘ ํฌ์ธํ„ฐ(ํฌ์ธํ„ฐ์˜ ํฌ์ธํ„ฐ) = ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋˜ ๋‹ค๋ฅธ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜
  • ํฌ์ธํ„ฐ๋ฅผ ์„ ์–ธํ•  ๋•Œ ** ์‚ฌ์šฉํ•˜์—ฌ ์ด์ค‘ ํฌ์ธํ„ฐ๋ฅผ ์„ ์–ธ
  • ํฌ์ธํ„ฐ๋ฅผ ์„ ์–ธํ•  ๋•Œ *์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ์„œ ์‚ผ์ค‘ ํฌ์ธํ„ฐ, ์‚ฌ์ค‘ ํฌ์ธํ„ฐ ๊ทธ ์ด์ƒ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค
์ž๋ฃŒํ˜• ** ํฌ์ธํ„ฐ์ด๋ฆ„;
#include <stdio.h>

int main(void)
{
	int * ptr;	// ํฌ์ธํ„ฐ ์„ ์–ธ
    int ** dptr;	// ์ด์ค‘ ํฌ์ธํ„ฐ ์„ ์–ธ
    int num = 10;
    
    ptr = &num;			// ํฌ์ธํ„ฐ์— num ์ฃผ์†Œ ๋Œ€์ž…
    
    dptr = &ptr;		// ์ด์ค‘ ํฌ์ธํ„ฐ์— ptr ์ฃผ์†Œ ๋Œ€์ž…
    
    printf("%d\n". **dptr);	// ํฌ์ธํ„ฐ๋ฅผ ๋‘ ๋ฒˆ ์—ญ์ฐธ์กฐํ•˜์—ฌ num์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์ ‘๊ทผ
    
    return 0;
}

์‹คํ–‰๊ฒฐ๊ณผ
10

โ–ถ dptr์€ ptr์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๊ณ , ptr์€ num์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ์— *dptr์€ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ptr์„, **dptr์€ ๋ณ€์ˆ˜ num์„ ์˜๋ฏธํ•˜๊ฒŒ ๋œ๋‹ค.


ํฌ์ธํ„ฐ์™€ const

  • ๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•˜๋Š” const์™€๋Š” ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋ฉฐ ํฌ์ธํ„ฐ์— ์‚ฌ์šฉํ•˜๋Š” const๋Š” ์ƒ์ˆ˜๋กœ ๋งŒ๋“œ๋Š” ์„ ์–ธ์ด ์•„๋‹Œ, ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•œ ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์„ ์–ธ
  • const๋Š” ๋ณ€์ˆ˜๋ฅผ ์ƒ์ˆ˜ํ™”์‹œํ‚ค๋Š” ์—ญํ• , ํฌ์ธํ„ฐ๊ฐ€ ์ƒ์ˆ˜ํ™” ๋˜๋Š” ๊ฒƒ์ด์ง€ ๋ณ€์ˆ˜๊ฐ€ ์ƒ์ˆ˜ํ™” ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.
  • ์ฆ‰, ๋ณ€์ˆ˜ num์€ ์–ธ์ œ๋“ ์ง€ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‚˜. ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ๋ณ€์ˆ˜ num ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๋งŒ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.
#include <stdio.h>

int main(void)
{
	int num = 10;
    const int * p = &num;
    
    *p = 20;	โ–ถ ์ปดํŒŒ์ผ ์—๋Ÿฌ
    
    printf("๋ณ€์ˆ˜ num : %d\n", *p);
    
    return 0;
}
#include <stdio.h>

int main(void)
{
	int num = 10;
    const int * p = &num;
    
    num = 20;	โ–ถ ์ปดํŒŒ์ผ ์„ฑ๊ณต
    
    printf("๋ณ€์ˆ˜ num : %d\n",*p);
    
    return 0;
}

์‹คํ–‰๊ฒฐ๊ณผ
20

 

 

์ถœ์ฒ˜: https://sejong-kr.libguides.com/c.php?g=942235&p=6822366

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ > C์–ธ์–ด' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํฌ์ธํ„ฐ & ํ•จ์ˆ˜  (0) 2024.08.16
ํฌ์ธํ„ฐ & ๋ฐฐ์—ด  (0) 2024.08.16
๋ฐฐ์—ด  (0) 2024.08.14
ํ•จ์ˆ˜  (0) 2024.08.14
๋ฐ˜๋ณต๋ฌธ  (0) 2024.07.31
728x90

๋ฐฐ์—ด

  • ๋ฐฐ์—ด: ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ
  • ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ a๋Š” 4๋ฐ”์ดํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉ, ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ 4์ธ ์ •์ˆ˜ํ˜• ๋ฐฐ์—ด arr[4]๋Š” ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜๋ฅผ 4๊ฐœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹น๋œ๋‹ค.

๋ฐฐ์—ด ์„ ์–ธ

  • ๋ณ€์ˆ˜ ์ด๋ฆ„ ๋’ค์— ๋Œ€๊ด„ํ˜ธ []๋ฅผ ๋ถ™์ธ ๋’ค ํฌ๊ธฐ๋ฅผ ์„ค์ •
  • ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๋ฉด์„œ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ๋Š” ์ค‘๊ด„ํ˜ธ {} ์‚ฌ์šฉ
์ž๋ฃŒํ˜• ๋ฐฐ์—ด์ด๋ฆ„ [ํฌ๊ธฐ];
์ž๋ฃŒํ˜• ๋ฐฐ์—ด์ด๋ฆ„[ํฌ๊ธฐ] = {๊ฐ’, ๊ฐ’, ๊ฐ’};


๋ฐฐ์—ด ์ ‘๊ทผ

  • ๋ฐฐ์—ด์„ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฐ์—ด ๋’ค์— ๋Œ€๊ด„ํ˜ธ []์„ ์‚ฌ์šฉํ•˜๋ฉฐ [ ] ์•ˆ์— ๊ฐ ์š”์†Œ์˜ ์ธ๋ฑ์Šค(์œ„์น˜์ •๋ณด)๋ฅผ ์ง€์ •
  • ์ค‘์š”ํ•œ ์ ์€ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋Š” ํ•ญ์ƒ 0๋ถ€ํ„ฐ ์‹œ์ž‘
int arr[4] = { 10, 20, 30, 40 }


charํ˜• ๋ฐฐ์—ด

  • charํ˜• ๋ฐฐ์—ด์€ ๋ฌธ์ž๋“ค์„ ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฐ์†๋œ ๊ณต๊ฐ„์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ๋กœ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š” ์šฉ๋„
  • charํ˜• ๋ฐฐ์—ด์„ ์„ ์–ธํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์ €์žฅํ•  ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ์ตœ์†Œํ•œ ํ•˜๋‚˜ ์ด์ƒ ํฌ๊ฒŒ ๋ฐฐ์—ด์„ ์„ ์–ธ
  • ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ์ž์—ด "sejong"์„ ์ €์žฅํ•  ๋ฐฐ์—ด์€ ๋ฐฐ์—ด ์š”์†Œ ๊ฐœ์ˆ˜๊ฐ€ ์ตœ์†Œํ•œ 7๊ฐœ ์ด์ƒ ์ด์–ด์•ผ ํ•œ๋‹ค.

โ–ถ ๋ฌธ์ž์—ด์˜ ๋์— ์ด๋ ‡๊ฒŒ ๋‚จ๋Š” ๋ฐฐ์—ด ์š”์†Œ์—๋Š” \0์ด๋ผ๋Š” ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์‚ฝ์ž…๋œ๋‹ค.

\0์„ '๋„(null) ๋ฌธ์ž'๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๋‚จ๋Š” ๊ณต๊ฐ„์€ ๋ฌธ์ž์—ด์˜ ๋์„ ์˜๋ฏธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.


strcpy ํ•จ์ˆ˜

  • charํ˜• ๋ฐฐ์—ด์ด ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์—ญํ• ์„ ํ•œ๋‹ค.
  • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ charํ˜• ๋ฐฐ์—ด์„ ์ผ๋ฐ˜ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ
  • strcpy ํ•จ์ˆ˜๋Š” charํ˜• ๋ฐฐ์—ด์— ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜
  • strcpy๋Š” string copy์˜ ๋œป์œผ๋กœ ๋ฌธ์ž์—ด ๋ณต์‚ฌ๋ฅผ ์˜๋ฏธ
  • strcpy ํ•จ์ˆ˜๋Š” string.h ํ—ค๋”ํŒŒ์ผ์„ include ์‹œ์ผœ์ค˜์•ผ ํ•œ๋‹ค.
  • #include <string.h>
strcpy(๋ฐฐ์—ด์ด๋ฆ„, "๋ฌธ์ž์—ด");
#include <stdio.h>
#include <string.h>

int main(void)
{
	char str1[20];
    char str2[20];
    
    strcpy(str1, "Hello");
    strcpy(str2, "World");
    
    printf("%s %s\n", str1, str2);
    
    return 0;
}

โ–ถ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฐฐ์—ด์˜ ์ด๋ฆ„ ์•ž์—๋Š” &์—ฐ์‚ฐ์ž๋ฅผ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค.

๋ฌธ์ž์—ด ๋ฐฐ์—ด ์ด๋ฆ„์ž์ฒด๊ฐ€ ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๊ฐ’์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


2์ฐจ์› ๋ฐฐ์—ด

  • ํ–‰๋ ฌ์˜ ๊ตฌ์กฐ์ฒ˜๋Ÿผ ์„ธ๋กœ์™€ ๊ฐ€๋กœ๋ฅผ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ณ€์ˆ˜ ์ด๋ฆ„ ๋’ค์— ๋Œ€๊ด„ํ˜ธ [ ]๋ฅผ ๋ถ™์ธ ๋’ค ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค.
  • ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๋ฉด์„œ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ๋Š” ์ค‘๊ด„ํ˜ธ  { }๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
์ž๋ฃŒํ˜• ๋ฐฐ์—ด์ด๋ฆ„ [์„ธ๋กœ(์—ด)๊ธธ์ด][๊ฐ€๋กœ(ํ–‰)๊ธธ์ด];

์ž๋ฃŒํ˜• ๋ฐฐ์—ด์ด๋ฆ„ [์„ธ๋กœ(์—ด)๊ธธ์ด][๊ฐ€๋กœ(ํ–‰)๊ธธ์ด] = {
                                                                                {๊ฐ’, ๊ฐ’, .... },
                                                                                {๊ฐ’, ๊ฐ’, .... },
                                                                                {๊ฐ’, ๊ฐ’, .... },
                                                                             }

 

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ > C์–ธ์–ด' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํฌ์ธํ„ฐ & ๋ฐฐ์—ด  (0) 2024.08.16
ํฌ์ธํ„ฐ  (0) 2024.08.15
ํ•จ์ˆ˜  (0) 2024.08.14
๋ฐ˜๋ณต๋ฌธ  (0) 2024.07.31
์กฐ๊ฑด๋ฌธ  (0) 2024.07.31

+ Recent posts