¸®´ª½º ȯ°æ¿¡¼­ÀÇ C ÇÁ·Î±×·¡¹Ö : 9Àå ¹è¿­°ú ¹®ÀÚ¿­
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

¹®Á¦ Ç®ÀÌ

8ÀåÀÇ 1¹ø ¹®Á¦¸¦ Ç®¾îº¸µµ·Ï ÇÏÀÚ. hello world¸¦ Âï´Â ¹®Á¦¿´´Ù. char Çϳª¿¡´Â ÇϳªÀÇ ¹®ÀÚ¸¸ µé¾î°¥ ¼ö ÀÖÀ¸¹Ç·Î °ø¹é¹®ÀÚ±îÁö Æ÷ÇÔ 11°³ÀÇ char¸¦ ¼±¾ðÇØ¼­ »ç¿ëÇØ¾ß ÇÑ´Ù.

#include <stdio.h> 
 
int main(int argc, char **argv) 
{ 
  char h='h'; 
  char e='e'; 
  char l='l'; 
  char o='o'; 
  char w='w'; 
  char d='d'; 
  char r='r'; 
  char space=' '; 
 
  printf("%c%c%c%c%c%c%c%c%c%c%c\n", 
          h,e,l,l,o,space,w,o,r,l,d); 
  return 0; 
} 
 

¹è¿­

±×·°Àú·° hello world¸¦ Ãâ·ÂÇϱä ÇßÁö¸¸, Áö³ªÄ¡°Ô º¹ÀâÇÏ°í ºñÈ¿À²ÀûÀ̶ó´Â ´À³¦ÀÌ µé °ÍÀÌ´Ù. C ¿¡¼­ Á¦°øÇÏ´Â ¿ø½Ã µ¥ÀÌÅÍ Å¸ÀÔÀ̶õ °ÍÀº ¸»±×´ë·Î ÃÖ¼ÒÇÑÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÏ »ÓÀ¸·Î, Á» º¹ÀâÇÑ ÇÁ·Î±×·¥À» ¸¸µé±â À§Çؼ­´Â À̰ÍÀ» ±¸Á¶È­ ÇÒ Çʿ䰡 ÀÖ´Ù.

À̰ÍÀº ¼­·ùöÀ» ¸¸µå´Â °Í°ú ºñ½ÁÇÑ °úÁ¤À̶ó°í º¸¸é µÉ°ÍÀÌ´Ù. ¼­·ù ÇϳªÇϳª¸¦ ÀÏÀÏÀÌ °ü¸®ÇÏ´Â°Ç »ó´çÈ÷ Â¥Áõ³ª´Â ÀÏÀÏ °ÍÀÌ´Ù. ±×·¡¼­ ¿ì¸®´Â (À̸§ µîÀ¸·Î Á¤¸®µÈ) ¼­·ùöÀ» ¸¸µé°í ´Ù½Ã ¼­·ùöÀ» º¸°üÇϱâ À§ÇÑ Ä³ºñ³ÝÀ» »ç¿ëÇÑ´Ù. ÀڷḦ ±¸Á¶È­ ÇÏ´Â °ÍÀÌ´Ù.

ÇÁ·Î±×·¥¿¡¼­ »ç¿ëµÇ´Â µ¥ÀÌÅÍ(ÀÚ·á)µéµµ ÀÌ·¸°Ô ±¸Á¶È­ÇÒ Çʿ䰡 ÀÖ´Ù. À̰ÍÀ» ÀڷᱸÁ¶¶ó°í ÇÑ´Ù. ÀÌ·¯ÇÑ ÀڷᱸÁ¶µé Áß¿¡¼­ °¡Àå ±âº»ÀÌ µÇ´Â°Ô, ¹è¿­ÀÌ´Ù.

¹è¿­Àº ¼­·ùö·Î º¼ ¼ö ÀÖ´Ù. ¼­·ù´Â ÃÖ¼Ò´ÜÀ§°¡ µÇ°í, À̰ÍÀ» ³ª¶õÈ÷ Âß Á¤¸®Çؼ­ Çϳª·Î ¹­Àº°Ô ¼­·ùöÀÌ´Ù. ¹è¿­Àº ÃÖ¼Ò´ÜÀ§ÀÇ µ¥ÀÌÅ͸¦ ÀÏ·Ä·Î ³ª¿­ÇÑ ÀڷᱸÁ¶´Ù. ¼­·ùö °°Àº °ÍÀ» º¸¸é ¼­·ù¸¦ ½±°Ô ã±â À§Çؼ­ À妽º¸¦ ÇÑ´Ù. º¸ÅëÀº À̸§À¸·Î À妽º¸¦ Çϴµ¥, ¹è¿­¿ª½Ã µ¥ÀÌÅ͸¦ ½±°Ô ã±â À§Çؼ­ À妽º¸¦ °¡Áö°í ÀÖ´Ù. ¼­·ùö°ú ´Ù¸¥Á¡Àº À妽º°¡ ¼ýÀÚ·Î µÇ¾î ÀÖ´Ù´Â °Í Á¤µµ°¡ µÉ °ÍÀÌ´Ù. ÀÌ ¼ýÀÚ´Â 0 ºÎÅÍ ½ÃÀÛÇÑ´Ù.

´Ù½Ã ¹®Á¦·Î µÇµ¹¾Æ°¡º¸ÀÚ. ¹®ÀÚ¿­ hello worldÀ» ±¸Á¶ÀûÀ¸·Î ½±°Ô Ç¥ÇöÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¹Ù·Î ¹è¿­À» ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ ¹è¿­ÀÇ ÃÖ¼Ò´ÜÀ§´Â ¹®ÀÚ Áï char µ¥ÀÌÅͰ¡ µÉ °ÍÀÌ´Ù. À̰ÍÀ» À§Çؼ­ ¾Æ·¡¿Í °°ÀÌ 12 °³ÀÇ char Çü µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¼ö ÀÖ´Â °ø°£À» ¸¸µé¾î¼­ °¢°¢ÀÇ ¹®ÀÚµéÀ» Áý¾î ³ÖÀ¸¸é µÈ´Ù. ÀÌ·¸°Ô ÀڷḦ À妽º¸¦ key·Î ÇØ¼­ ±¸Á¶È­ ½ÃŲ°ÍÀ» ¹è¿­À̶ó°í ÇÑ´Ù. À妽º¸¦ ÅëÇØ¼­ ¼­·ùö¿¡¼­ ¼­·ù¸¦ ²¨³¾ ¼ö ÀÖµíÀÌ, ÀÌ À妽º¸¦ ÀÌ¿ëÇØ¼­ °ª(value)¸¦ °¡Á®¿Ã ¼ö ÀÖ´Ù.

array.png

C »Ó¸¸ ¾Æ´Ï¶ó, °ÅÀÇ ¸ðµç ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ¹è¿­À» Áö¿øÇϰí ÀÖ´Ù. ±×¸®°í ¹è¿­ÀÇ Ã¹¹øÂ° À妽º´Â 1ÀÌ ¾Æ´Ñ 0ºÎÅÍ ½ÃÀÛÇÑ´Ù. À妽º°¡ 0ºÎÅÍ ½ÃÀÛÇÏ´Â °ÍÀº ¿ì¸®ÀÇ ÀϹÝÀûÀÎ Á÷°ü°ú´Â °Å¸®°¡ À־, Ãʱ⿡ È¥µ¿Çϱ⠽¬¿ì´Ï ÁÖÀÇÇϱ⠹ٶõ´Ù. ¹è¿­ÀÇ À妽º »Ó¸¸ ¾Æ´Ï¶ó, ÄÄÇ»ÅÍ´Â ¸ðµç °ÍÀÇ Ã¹¹øÂ°´Â 0ºÎÅÍ ½ÃÀÛÇÑ´Ù. ¿¹¸¦ µé¾î ¸Þ¸ð¸®ÀÇ Ã¹¹øÂ° ÁÖ¼Ò´Â 0ÀÌ´Ù.

C¿¡¼­ ¹è¿­

¹è¿­Àº ÀڷᱸÁ¶À̹ǷΠ±¸Á¶È­°¡ °¡´ÉÇÑ ¸ðµç µ¥ÀÌÅ͵éÀº ¹è¿­·Î ¸¸µé¾î¼­ ¼±¾ðÇÒ ¼ö ÀÖ´Ù. ¼±¾ð¹æ¹ýÀº °£´ÜÇÏ´Ù.
µ¥ÀÌÅÍŸÀÔ  º¯¼ö¸í [Å©±â]; 
 

¿¹¸¦µé¾î Á¤¼ö µ¥ÀÌÅÍ 10°³¸¦ ÀúÀåÇϱâ À§ÇÑ ¹è¿­Àº ¾Æ·¡¿Í °°ÀÌ ¼±¾ðÇÒ ¼ö ÀÖ´Ù.
int  mydata[10]; 
 
¸Å¿ì °£´ÜÇÏ´Ù. ÀÌÁ¦ ¿ì¸®°¡ ¸ñÀûÀ¸·Î ÇÏ´Â hello world¸¦ ÀúÀåÇϱâ À§ÇÑ ¹è¿­Àº ´ÙÀ½°ú °°ÀÌ ¸¸µé¸é µÉ °ÍÀÌ´Ù. º¯¼ö¸íÀº hello ·Î Çϵµ·Ï ÇϰڴÙ.
char hello[12]; 
 
¿©±â¿¡¼­ ¾à°£ Àǹ®½Ã µÇ´Â Á¡ÀÌ ÀÖÀ» °ÍÀÌ´Ù. ¿ì¸®°¡ ÀúÀåÇϰíÀÚ ÇÏ´Â hello world´Â 11ÀÚÀε¥, 12°³ÀÇ °ø°£À» °¡Áöµµ·Ï ¼±¾ðÇ߱⠶§¹®ÀÌ´Ù. ÀÌ´Â \0À» ÀúÀåÇϱâ À§ÇÑ °ø°£À» Çϳª´õ ÇÊ¿ä·Î Çϱ⠶§¹®ÀÌ´Ù. \0À» ¸¸³ª¸é ÇÁ·Î±×·¥Àº ¹®ÀÚ¿­ÀÌ ¿©±â¿¡¼­ ³¡³µ´Ù°í ÆÇ´ÜÀ» ÇÏ°Ô µÈ´Ù. ¸¸¾à \0À» ¸¸³ªÁö ¸øÇÑ´Ù¸é, ÀúÀå°ø°£À» ÃʰúÇØ¼­ \0À» ¸¸³¯¶§±îÁö °è¼Ó µ¥ÀÌÅ͸¦ ÀÐÀ» ·Á°í ÇÒ °ÍÀÌ´Ù. ÇÁ·Î±×·¥Àº ¹Ùº¸¶ó´Â °ÍÀ» ¸í½ÉÇØ¾ß ÇÑ´Ù. ¾îµð°¡ ½ÃÀÛÀÌ°í ¾îµð°¡ ³¡ÀÎÁö¸¦ ¸íÈ®ÇÏ°Ô ÇØÁÖ¾î¾ß¸¸ ÇÑ´Ù.

ÀÚ ±×·³ ¸¸µé¾îÁø ¹è¿­ hello ¿¡ hello world¸¦ ÀúÀåÇØ º¸µµ·Ï ÇÏÀÚ.

¹®Á¦
double µ¥ÀÌÅÍ 16 °³¸¦ ÀúÀåÇϱâ À§ÇÑ ¹è¿­À» ¼±¾ðÇØ º¸ÀÚ.

¹è¿­ ¼±¾ð°ú Á¤ÀÇ

¹è¿­¿¡ °ªÀ» ÀúÀåÇÏ´Â µ¥¿¡´Â µÎ°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. Çϳª´Â ¼±¾ð°ú µ¿½Ã¿¡ °ªÀ» ´ëÀÔÇÏ´Â °ÍÀÌ´Ù.
#include <stdio.h> 
 
int main() 
{ 
    char hello[12] = {'h','e','l','l','o',' ','w','o','r','l','d','\0'}; 
    printf("%s\n", hello); 
} 
 
Áß°ýÈ£ "{","}" »çÀÌ¿¡ °¢°¢ÀÇ ¿ø¼Ò µ¥ÀÌÅ͸¦ ³ÖÀ¸¸é µÈ´Ù. µ¥ÀÌÅÍ¿ÍÀÇ ±¸ºÐÀº ,À» ÅëÇØ¼­ ÀÌ·ç¾îÁø´Ù. 1ºÎÅÍ 5±îÁö ÀúÀåÇÏ´Â int Çü ¹è¿­Àº ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
int data[5] = {0, 1, 2, 3, 4, 5}; 
 

°ªÀÌ ¿©·¯°³°¡ Áߺ¹ÀÌ µÉ °æ¿ì°¡ ÀÖÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ¹è¿­ÀÇ Å©±â°¡ 100Àε¥, ¸ðµç °ªÀ» 1·Î ÇØ¼­ ¼±¾ðÇÏ°í ½ÍÀ» ¶§°¡ ÀÖÀ» °ÍÀÌ´Ù. À̰æ¿ì ,µÚ¿¡ µ¥ÀÌÅ͸¦ ¾²Áö ¾ÊÀ¸¸é µÈ´Ù. ±×·³ °¡Àå ¸¶Áö¸· µ¥ÀÌÅÍ·Î ¹è¿­ÀÇ ³¡±îÁö ä¿öÁö°Ô µÈ´Ù.
int data[100]={0,}; 
 

¾Æ·¡ÀÇ ÇÁ·Î±×·¥À» ½ÇÇà½ÃŰ°í °á°ú¸¦ È®ÀÎÇØ º¸µµ·Ï ÇÏÀÚ.
#include <stdio.h> 
 
int main() 
{ 
    char hello[12] = {'h','e','l','l','o',' ','w','o','r','l','d','\0'}; 
    int data[100] = {0,}; 
    printf("%s\n", hello); 
    printf("%d\n", data[2]); 
} 
 

´Ü ¹®ÀÚ¿­ÀÇ °æ¿ì ¿¹¿ÜÀûÀ¸·Î °ýÈ£ {}¸¦ »ç¿ëÇÏÁö ¾Ê°í, ½Öµû¿òÇ¥¸¦ ÀÌ¿ëÇØ¼­ Á÷Á¢ ¼±¾ðÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇϰí ÀÖ´Ù. À§ÀÇ ÄÚµå´Â ¾Æ·¡¿Í °°ÀÌ Á»´õ °£´ÜÇÏ°Ô Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.
    char hello[12] = "hello world\0"; 
 

¹è¿­ÀÇ µ¥ÀÌÅÍ¿¡ Á¢±Ù

¼­·ùö¿¡¼­ ¿øÇÏ´Â ¼­·ù¿¡ Á¢±ÙÇϱâ À§Çؼ­ À妽º¸¦ »ç¿ëÇϵíÀÌ, ¹è¿­¿ª½Ã À妽º¸¦ ÅëÇØ¼­ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. ÀÌ À妽º´Â 0ºÎÅÍ ½ÃÀ۵Ǵ Á¤¼ö·Î ¹è¿­Ã·ÀÚ¶ó°í ºÎ¸£±âµµ ÇÑ´Ù. Á¢±Ù ¹æ¹ýÀº °£´ÜÇÏ´Ù. °ýÈ­ [] ¾È¿¡ ²¨³»¿À±â ¿øÇÏ´Â µ¥ÀÌÅÍÀÇ ¹è¿­Ã·ÀÚ¸¦ ³Ö¾îÁֱ⸸ ÇÏ¸é µÈ´Ù.
char hello[12] = {'h','e','l','l','o',' ','w','o','r','l','d','\0'}; 
printf("%c", hello[4]); 
 
¾Æ·¡ÀÇ ¹è¿­ À̹ÌÁö¸¦ º¸¸é hello[4] °¡ o¸¦ °¡Á®¿À¸®¶õ°É ½±°Ô ¿¹»óÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

array.png

´ëÀÔ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¸é ¹è¿­ÀÇ ¿øÇÏ´Â À§Ä¡¿¡ µ¥ÀÌÅ͸¦ ¾²´Â °Íµµ °¡´ÉÇÏ´Ù. hello[4]ÀÇ °ªÀ» 'w'·Î ¹Ù²Ù¾îº¸ÀÚ.
hello[4] = 'w'; 
 

ÀÌÁ¦ ÀÌÀü¿¡ ¹è¿ü´ø ·çÇÁ¹®À» ÀÌ¿ëÇØ¼­, º¯¼ö hello ÀÇ °ªÀ» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µé¾î º¸ÀÚ.
#include <stdio.h> 
 
int main() 
{ 
    char hello[12] = "hello world\0"; 
    int i = 0; 
    for (i = 0; i < 12; i++) 
    { 
        printf("%c", hello[i]); 
    } 
    printf("\n"); 
} 
 

À߸øµÈ ¹è¿­Ã·ÀÚÀÇ »ç¿ë

¹è¿­ÀÇ Å©±â°¡ 12 Àε¥, À̸¦ ÃʰúÇØ¼­ µ¥ÀÌÅ͸¦ Áý¾î ³Ö°Å³ª, ¹è¿­Ã·ÀÚ¸¦ ÃʰúÇØ¼­ µ¥ÀÌÅ͸¦ °¡Á®¿À´Â °æ¿ì¸¦ »ý°¢ÇØ º¸ÀÚ.

À¯´Ð½º´Â ´ÙÁß »ç¿ëÀÚ, ´ÙÁß ÇÁ·Î¼¼½º¸¦ Áö¿øÇϰí ÀÖ´Ù. À̸»Àº µ¿½Ã¿¡ ¿©·¯°³ÀÇ ÇÁ·Î±×·¥µéÀÌ µ¹¾Æ°¥ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ps´Â ÇöÀç ½ÇÇàÁßÀÎ ÇÁ·Î¼¼½ºÀÇ ¸ñ·ÏÀ» º¸¿©ÁÖ´Â À¯´Ð½º ÇÁ·Î±×·¥ÀÌ´Ù. ps ¸¦ ÀÌ¿ëÇØ¼­ ÇöÀç ¶°ÀÖ´Â ÇÁ·Î¼¼½ºÀÇ ¸ñ·ÏÀ» ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.
ÇÁ·Î¼¼½º¶õ
ÇÁ·Î¼¼½º´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÈ À̹ÌÁö´Ù. ¿©·¯ºÐÀÌ ¾î¶² ÇÁ·Î±×·¥À» ½ÇÇà½Ã۸é, Çϵåµð½ºÅ©¿¡ ÀÖ´Â ÇÁ·Î±×·¥ÀÌ Á÷Á¢ ¼öÇàµÇ´Â°Ô ¾Æ´Ï°í, ÇØ´ç ÇÁ·Î±×·¥ÀÇ º¹»çº»ÀÌ ¸ÞÀθ޸𸮿¡ ¿Ã¶ó°¡¼­ ¼öÇàÀÌ µÈ´Ù. ±×·¯¹Ç·Î ÇϳªÀÇ ÇÁ·Î±×·¥Àº ¿©·¯°³ÀÇ ÇÁ·Î¼¼½º·Î »ý¼ºµÉ ¼ö ÀÖ´Ù.

]# ps -ef 
UID        PID  PPID  C STIME TTY          TIME CMD 
root         1     0  0 Jan30 ?        00:00:35 init [3] 
root         2     1  0 Jan30 ?        00:00:00 [keventd] 
root         3     1  0 Jan30 ?        00:00:00 [kapmd] 
root         4     1  0 Jan30 ?        00:00:00 [ksoftirqd_CPU0] 
root         5     1  0 Jan30 ?        00:04:44 [kswapd] 
root         6     1  0 Jan30 ?        00:00:00 [bdflush] 
root         7     1  0 Jan30 ?        00:00:04 [kupdated] 
root         8     1  0 Jan30 ?        00:00:00 [mdrecoveryd] 
root        12     1  0 Jan30 ?        00:08:54 [kjournald] 
root        71     1  0 Jan30 ?        00:00:00 [khubd] 
root      1181     1  0 Jan30 ?        00:00:00 [kjournald] 
root      1480     1  0 Jan30 ?        00:01:11 syslogd -m 0 
root      1484     1  0 Jan30 ?        00:00:00 klogd -x 
rpcuser   1521     1  0 Jan30 ?        00:00:00 rpc.statd 
root      1607     1  0 Jan30 ?        00:00:00 /usr/sbin/apmd -p 10 -w 5 -W -P 
root      1644     1  0 Jan30 ?        00:05:22 /usr/sbin/sshd 
root      1658     1  0 Jan30 ?        00:00:00 xinetd -stayalive -reuse -pidfil 
root      1671     1  0 Jan30 ?        00:00:16 crond 
daemon    1693     1  0 Jan30 ?        00:00:00 /usr/sbin/atd 
root      1711     1  0 Jan30 tty1     00:00:00 /sbin/mingetty tty1 
root      1712     1  0 Jan30 tty2     00:00:00 /sbin/mingetty tty2 
... ... 
 
¾Æ¹«¸® °£´ÜÇÑ À¯´Ð½º ½Ã½ºÅÛÀ̶ó°í ÇÏ´õ¶óµµ ÃÖ¼ÒÇÑ 30°³ ÀÌ»óÀÇ ÇÁ·Î¼¼½º°¡ ¶°ÀÖÀ» °ÍÀÌ´Ù. ±×·¸´Ù¸é ÇØ°áÇØÁà¾ß ÇÒ ¹®Á¦°¡ ÀÖ´Ù. ÇÁ·Î¼¼½º´Â ¸ÞÀθ޸𸮠»ó¿¡¼­ ½ÇÇàµÇ°í, ÀÚ½ÅÀÌ »ç¿ëÇÏ´Â µ¥ÀÌÅ͸¦ ¿ª½Ã ¸Þ¸ð¸®¿¡ ¿Ã·Á³õ°í Àаųª ¾²°Ô µÈ´Ù. ±×·±µ¥ ´Ù¸¥ ÇÁ·Î¼¼½º°¡ ÀÚ½ÅÀÇ ¸Þ¸ð¸® ¿µ¿ªÀ» ħ¹üÇÏ¸é ¾ÈµÉ °ÍÀÌ´Ù. À¯´Ð½º ¿î¿µÃ¼Á¦´Â ÇÁ·Î¼¼½º¸¦ °ü¸®Çϸ鼭, µ¿½Ã¿¡ °¢ ÇÁ·Î¼¼½º°¡ ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ ¸Þ¸ð¸®¿µ¿ªÀ» ħ¹üÇÏ´ÂÁö¸¦ °¨½Ã¸¦ ÇÑ´Ù. ¸¸¾à ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ ¸Þ¸ð¸® ¿µ¿ªÀ» ħ¹üÇß´Ù¸é, ¿î¿µÃ¼Á¦´Â ÇÁ·Î¼¼½º¸¦ °­Á¦·Î Á¾·á½ÃÄѹö¸®°Ô µÈ´Ù.

¿ì¸®´Â ¾ÆÁÖ °£´ÜÇÏ°Ô ÀÌ·± ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.
#include <stdio.h> 
 
int main() 
{ 
    char hello[12] = "hello world!! My site is Joinc"; 
    int i = 0; 
    printf("%s", hello[i]); 
    printf("bye bye\n"); 
} 
 

ÀÌ ÇÁ·Î±×·¥Àº char ÇüÀÇ ¹è¿­ÀÎ hello ¸¦ À§Çؼ­ 12ÀÇ Å©±â¸¦ ÇÒ´çÇß´Ù. ±×·¯³ª 12byte¸¦ ÃʰúÇÏ´Â ¹®ÀÚ¿­À» Áý¾î ³Ö°í ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ÇØ¼­ ½ÇÇà½ÃŰ¸é ´ÙÀ½°ú °°Àº ¿¡·¯¸Þ½ÃÁö°¡ ¶³¾îÁú °ÍÀÌ´Ù. ÇÁ·Î±×·¥ÀÇ À̸§Àº array_test ·Î ÇϰڴÙ.
# ./array_test 
Segmentation fault 
 
printf("%s", hello[i]); ¸¦ Çϸ鼭, Àڽſ¡°Ô ÇÒ´çµÇÁö ¾ÊÀº ¿µ¿ªÀ» ÀÐ¾î µéÀÌ·Á°í ½Ãµµ¸¦ ÇÏ´Â Áß¿¡, ´Ù¸¥ ÇÁ·Î¼¼½º°¡ »ç¿ëÇÏ´Â ¸Þ¸ð¸® ¿µ¿ªÀ» ħ¹üÇß°í ÀÌ ¶§¹®¿¡ Segmentation fault¸Þ½ÃÁö¸¦ Ãâ·ÂÇϸ鼭 °­Á¦ Á¾·áµÇ¾î ¹ö·È´Ù. bye bye\nÀº Ãâ·ÂÁ¶Â÷ µÇÁö ¸øÇß´Ù.

array2.png

¾ÕÀ¸·Î ¸¹Àº ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ °Çµ¥, °¡Àå ÈçÇÏ°Ô º¼ ¼ö ÀÖ´Â ¿¡·¯¸Þ½ÃÁö°¡ Segmentation fault°¡ µÉ °ÍÀÌ´Ï, Áö±Ý ºÎÅÍ Àͼ÷ÇØÁö±â¸¦ ¹Ù¶õ´Ù. Àΰ£Àº ¼­·ùöÀÇ ¿ë·®À» ÃʰúÇØ¼­ ¼­·ù°¡ µé¾î¿À¸é, ¾ïÁö·Î ¿ë·®À» ´Ã¸®´øÁö, ¾ÈµÇ¸é Ç®·ÎºÙÀÌ´øÁö ÇÏ´Â µîÀÇ À¯µµ¸®¸¦ ¹ßÈÖÇØ¼­ ¾÷¹«¸¦ ó¸®ÇÒ ¼ö ÀÖÁö¸¸, ¿ì¸®ÀÇ ÄÄÇ»ÅÍ´Â ±×·¸°Ô ¶È¶ÈÇÏÁö ¸øÇÑÁ¡ ÀÌÇØ¸¦ ÇØÁÖ¾î¾ß ÇÑ´Ù. ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§´Â ÇÒ´çÇÑ °ø°£À» ÃʰúÇß´ÂÁö, Á¦´ë·Î »ç¿ëÇß´ÂÁö¸¦ ¾ö°ÝÇÏ°Ô °Ë»çÇØ¾ß ÇÑ´Ù.

À§ÀÇ ÇÁ·Î±×·¥Àº Á¦´ë·Î ¼öÇàµÇ´Â °æ¿ìµµ ÀÖÀ» °ÍÀÌ´Ù. ¿Ö³Ä¸é ¾µ·Á°í ÇÏ´Â ¸Þ¸ð¸® ¿µ¿ªÀÌ ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ¼­ »ç¿ëµÇÁö ¾Ê´Â ÀÚÀ¯»óÅÂÀÏ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ÀÌ °æ¿ì¿¡´Â ´Ù¸¥ ÇÁ·Î¼¼½º ¸Þ¸ð¸® ¿µ¿ªÀ» ħ¹üÇÑ ÇàÀ§´Â ¾Æ´Ï¹Ç·Î, ¿¡·¯°¡ ¹ß»ýÇÏÁö´Â ¾ÊÀ» °ÍÀÌ´Ù. ¹°·Ð.. Á¦´ë·ÎµÈ °á°ú°¡ ³ª¿Ã °ÍÀ̶ó´Â°Ç º¸ÀåÇÒ ¼ö°¡ ¾ø´Ù. ÀÚÀ¯»óÅÂÀ̱⠶§¹®¿¡, ÇÁ·Î¼¼½º°¡ ½ÇÇàµÇ°í ÀÖ´Â µµÁß¿¡, ´Ù¸¥ ÇÁ·Î¼¼½º¿¡°Ô ÇØ´ç ¸Þ¸ð¸® ¿µ¿ªÀÌ ÇÒ´çµÇ¾î¹ö¸± ¼ö Àֱ⠶§¹®ÀÌ´Ù. ÀÌ·² °æ¿ì Segmentation fault ¸¦ Ãâ·ÂÇϸ鼭 Á¾·áµÇ¾î ¹ö¸± °ÍÀÌ´Ù.

¹®ÀÚ¿­ÀÇ Ãâ·Â

´Ù½Ã ¹®Á¦·Î µÇµ¹¾Æ°¡ º¸ÀÚ. for ¹®°ú ¹è¿­À» ÀÌ¿ëÇØ¼­ Á» ´õ ½±°Ô ¹®Á¦¸¦ Ç®±â´Â ÇßÁö¸¸, ¹®ÀÚ¿­ Çϳª Ãâ·ÂÇÒ·Á°í ·çÇÁ¹®±îÁö »ç¿ëÇÏ´Â°Ç ÇÕ¸®ÀûÀÌÁö ¸øÇÏ´Ù. printf ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é ½±°Ô ÀÌ ¹®Á¦¸¦ Ç® ¼ö ÀÖ´Ù. ÀÌ ÇÔ¼ö´Â ÁÖ¾îÁø º¯¼ö¸¦ Çü½ÄÈ­ÇØ¼­ Ãâ·ÂÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù.
#include <stdio.h> 
 
int main() 
{ 
    char hello[12] = "hello world\0"; 
    printf("%s", hello); 
} 
 
À̰ɷΠ¹®Á¦´Â °£´ÜÈ÷ ÇØ°áµÆ´Ù. "%s" ´Â ÁÖ¾îÁø ÀÎÀÚ¸¦ ¹®ÀÚ¿­·Î ÀνÄÇØ¼­ Ãâ·ÂÇÏ´Â Æ÷¸Ë ¿É¼ÇÀÌ´Ù.

¹®Á¦
char ¹è¿­À» ¹Þ¾Æµé¿©¼­ ¹®ÀÚ¿­·Î Ãâ·ÂÇÏ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇغ¸ÀÚ.

¹®ÀÚ¿­ º¹»ç

¹®ÀÚ¿­À» ¹è¿­¿¡ º¹»çÇÏ´Â °£´ÜÇÑ ¹æ¹ý¿¡ ´ëÇØ¼­ »ý°¢Çغ¸ÀÚ. ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÛ¼ºÇÏ¸é ¾î¶»°Ô µÉ±î.
int main() 
{ 
    char hello[12]; 
    hello = "hello world\0"; 
} 
 
¹®Á¦ ¾øÀ» °Å¶ó°í »ý°¢ÇÒ ¼öµµ ÀÖÁö¸¸, ÄÄÆÄÀÏ ÇÏ¸é ¾Æ·¡¿Í °°Àº ¿¡·¯¸Þ½ÃÁö¿Í ÇÔ²² ÄÄÆÄÀÏ ½ÇÆÐÇÏ°Ô µÈ´Ù.
# gcc -o array array.c 
array.c: In function `main': 
array.c:6: incompatible types in assignment 
 
´ëÀÔ¿¬»êÀÚ´Â °°Àº ŸÀÔ¿¡ ´ëÇØ¼­¸¸ Çã¿ëµÇ´Â ¿¬»êÀÚÀ̱⠶§¹®¿¡, ¹è¿­¿¡ ¹®ÀÚ¿­À» ´ëÀÔÇÏ´Â°Ç C ¹®¹ý¿¡ ¾î±ß³ª±â ¶§¹®ÀÌ´Ù. °á±¹ ¹®ÀÚ¿­À» ó¸®Çϱâ À§Çؼ­´Â º°µµÀÇ ÇÔ¼ö¸¦ ¸¸µé¾î¼­ »ç¿ëÇÏ´Â ¼ö ¹Û¿¡ ¾ø´Ù. ´ÙÇàÈ÷ C ´Â Ç¥ÁØ ¶óÀ̺귯¸® Çü½ÄÀ¸·Î ¸î°³ÀÇ À¯¿ëÇÑ ¹®ÀÚ¿­ ó¸® ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. strcat(3), strcpy(3)¿Í °°Àº ÇÔ¼ö°¡ ¹®ÀÚ¿­ 󸮸¦ À§ÇÑ ´ëÇ¥ÀûÀÎ ÇÔ¼ö´Ù. ´ÙÀ½Àº strcpy ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ ¹®ÀÚ¿­À» º¹»çÇÑ ÇÁ·Î±×·¥ÀÌ´Ù.
#include <stdio.h> 
 
int main() 
{ 
    char hello[12]; 
    strcpy(hello,"hello world\0"); 
    printf("%s\n", hello); 
} 
 

¹®Á¦Ç®ÀÌ

¹®Á¦
char ¹è¿­À» ¹Þ¾Æµé¿©¼­ ¹®ÀÚ¿­·Î Ãâ·ÂÇÏ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇغ¸ÀÚ.

¹®Á¦´Â ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î Ç® ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾Æ·¡´Â ´Ù¾çÇÑ ¹æ½ÄÁß ÇϳªÀÌ´Ù.
#include <stdio.h> 
 
void print_string(char a[]) 
{ 
    int i=0; 
    while(a[i] != '\0') 
    { 
        printf("%c", a[i]); 
        i++; 
    } 
} 
int main() 
{ 
    char hello[12] = "hello world\0"; 
    print_string(hello); 
} 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.