[ ๋ฐฐ์—ด์˜ ์„ ์–ธ ]

๋ฐ์ดํ„ฐํƒ€์ž…[] ๋ฐฐ์—ด์ด๋ฆ„ = { ์›์†Œ, ์›์†Œ, ์›์†Œ, ... };

ex)
	String[] names = {"์ฒ ์ˆ˜", "์˜ํฌ", "๋ฏผ์ˆ˜"};	//๋ฌธ์ž์—ด ํƒ€์ž…์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ดString

[ ๋ฐฐ์—ด์˜ ์›์†Œ ์ ‘๊ทผ ]

๋ฐฐ์—ด์˜์ด๋ฆ„[์ƒ‰์ธ];	//์ƒ‰์ธ == index

ex)
	int[] ages = new int[4];
    
    ages[0] = 18;
    ages[1] = 25;
    ages[2] = 23;
    ages[3] = 19;		//int [] ages = { 18, 25, 23, 19 }

[ .length ]

.length : ๋ช‡๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์—ฐ์‚ฐ์ž

ex)
	String[] titles = new String[4];	//๋ฌธ์ž์—ด ํƒ€์ž…์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ดString
    
        titles[0] = "The Glory";
        System.out.println(names.length); // ์ถœ๋ ฅ๊ฐ’ : 4
        titles[1] = "Life of Pie";
        System.out.println(names.length); // ์ถœ๋ ฅ๊ฐ’ : 4
        
 + ex)
 
    for (int i = 0; i < titles.length; i++) {	//	i๊ฐ€ titles์˜ ์›์†Œ์˜ ํฌ๊ธฐ(4)๋ณด๋‹ค ์ž‘์„๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
        string title = titles[i];
        System.out.println(title + "์„ ์ €์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค.");}

 

[ for - each ]

for - each : ๋ฐฐ์—ด๊ณผ ๋ฐ˜๋ณต๋ฌธ ์ด์šฉ์„ ๊ฐ„๋‹จํ™” ํ•œ ๋ฌธ๋ฒ•

ex)
	String[] titles = {"The Glory", "Life of Pie", "Freinds"};	//๋ฌธ์ž์—ด ํƒ€์ž…์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ดString
 
    for (String title : titles) {	//	titles๋ผ๋Š” ๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ title์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ๋„ฃ๊ณ  ๋ฐ˜๋ณตํ•ด์คŒ
        System.out.println(title + "์„ ์ €์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค.");}
๋ฐ˜์‘ํ˜•

switch ๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ•œ๊ฐ€์ง€ ์ฃผ์˜ ํ•  ๊ฒƒ์€ switch์˜ ์กฐ๊ฑด์œผ๋กœ๋Š” ๋ช‡๊ฐ€์ง€ ์ œํ•œ๋œ ๋ฐ์ดํ„ฐ ํƒ€์ž…๋งŒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. byte, short, char, int, enum, String, Character, Byte, Short, Integer

 

https://opentutorials.org/course/1223/5335

 

์กฐ๊ฑด๋ฌธ - ์ƒํ™œ์ฝ”๋”ฉ

'๋น„๊ต ์ˆ˜์—…'์—์„œ ๋น„๊ต ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋กœ ์ฐธ(true)์ด๋‚˜ ๊ฑฐ์ง“(false)์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฐฐ์› ๋‹ค. ๋ถˆ๋ฆฐ์€ ์กฐ๊ฑด๋ฌธ์—์„œ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š”๋ฐ ์ด ๋ถˆ๋ฆฐ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์‹คํ–‰ ํ๋ฆ„์„ ์ œ์–ดํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

opentutorials.org

 

๋ฐ˜์‘ํ˜•

| ์—ฐ์‚ฐ์ž |

[ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ]

- '+' : ๋ฌธ์ž์—ด(string)๊ฒฐํ•ฉ์—๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

[ ๋‹จํ•ญ ์—ฐ์‚ฐ์ž , ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„ ]

C์™€ ๋™์ผ

 

| ๋น„๊ต์™€ Boolean |

[ Boolean ]

์ฐธ(true), ๊ฑฐ์ง“(false) ๋‘๊ฐ€์ง€๋งŒ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํ•œ ํƒ€์ž…

[ ๋น„๊ต ์—ฐ์‚ฐ์ž (๊ด€๊ณ„ ์—ฐ์‚ฐ์ž) ]

- '.equals' : ๋ฌธ์ž์—ด์˜ ๋น„๊ต

๋ฌธ์ž์—ด.equals(๋ฌธ์ž์—ด)

ex)
    String a = "hello";
    String b = "hello";
    System.out.printlen(a.equals(b));

https://opentutorials.org/course/1223/5331

 

์—ฐ์‚ฐ์ž - ์ƒํ™œ์ฝ”๋”ฉ

์—ฐ์‚ฐ์ž๋ž€ ์—ฐ์‚ฐ์ž(ๆผ”ํŽด๋‹ค์—ฐ ็ฎ—๊ณ„์‚ฐ์‚ฐ ๅญ, operator)๋ž€ ํŠน์ •ํ•œ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐํ˜ธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ž‘์—…์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ์„œ ๋Œ€์ž… ์—ฐ์‚ฐ์ž, ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž, ๋น„๊ต ์—ฐ์‚ฐ์ž, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ๋“ฑ์ด ์žˆ๋‹ค.

opentutorials.org

https://opentutorials.org/course/1223/5332

 

๋น„๊ต์™€ Boolean - ์ƒํ™œ์ฝ”๋”ฉ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋น„๊ต๋‚˜ ๋ถˆ๋ฆฐ์€ ์ด๊ฒƒ๋งŒ์œผ๋กœ๋Š” ํšจ์šฉ์ด ํฌ์ง€ ์•Š๋‹ค. ํ›„์† ์ˆ˜์—…์ธ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์—์„œ ๊ทธ ํšจ์šฉ์ด ๋“œ๋Ÿฌ๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ ์ง€๋ฃจํ•˜๋”๋ผ๋„ ์กฐ๊ฑด๋ฌธ๊นŒ์ง€๋งŒ ์ธ๋‚ดํ•˜์ž. Boolean ๋ถˆ๋ฆฐ(Boolean)์€ ์ฐธ

opentutorials.org

 

๋ฐ˜์‘ํ˜•

| ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž… |

* ์ž๋ฐ”์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜๋ณ„๋กœ default ํƒ€์ž…์ด ์žˆ์Œ.

  ์ •์ˆ˜ : int (byte, short ํƒ€์ž…์— ๋Œ€ํ•ด์„œ๋Š” intํ˜•์„ ํ—ˆ์šฉํ•จ)

  ์‹ค์ˆ˜ : double

 

| ํ˜• ๋ณ€ํ™˜ |

[ ์ž๋™ ํ˜• ๋ณ€ํ™˜ ]

* default๊ฐ€ ์•„๋‹Œ ํƒ€์ž…์œผ๋กœ ์“ฐ๊ณ  ์‹ถ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์“ฐ๊ณ  ์ด๊ฒƒ์€ ์ž๋™ ํ˜• ๋ณ€ํ™˜์ž„.

๋ฐ์ดํ„ฐํƒ€์ž… ๋ณ€์ˆ˜๋ช… = ๋ฐ์ดํ„ฐ๊ฐ’__
                          โ”” ์ž๋ฆฌ์— ํ˜•๋ณ€ํ™˜์„ ์œ„ํ•œ ๋ช…๋ น์–ด ์ž‘์„ฑ (F:float, L:long)                       
ex)
	float a = 3.68F

์ž๋™ ํ˜• ๋ณ€ํ™˜์˜ ์›์น™ : ํ‘œํ˜„๋ฒ”์œ„๊ฐ€ ์ข์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์—์„œ ๋„“์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ์˜ ๋ณ€ํ™˜๋งŒ ํ—ˆ์šฉ

 

 

[ ๋ช…์‹œ์  ํ˜• ๋ณ€ํ™˜ ] (์ˆ˜๋™ ํ˜• ๋ณ€ํ™˜, C์™€ ๋™์ผ)

๋ฐ์ดํ„ฐํƒ€์ž… ๋ณ€์ˆ˜๋ช… = (๋ฐ”๊พธ๊ธฐ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜•)๋ฐ์ดํ„ฐ๊ฐ’                     
ex)
	float a = 70.0;	//์˜ค๋ฅ˜
    int b = 99.9F;	//์˜ค๋ฅ˜
    
    float a = (float)70.0;	//์ •์ƒ
    int b = (int)99.9F;		//์ •์ƒ

https://opentutorials.org/course/1223/5375

 

๋ฐ์ดํ„ฐ ํƒ€์ž… - ์ƒํ™œ์ฝ”๋”ฉ

๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์กฐ๊ธˆ ์–ด๋ ต๋‹ค. ํ›„์† ์ˆ˜์—…์—์„œ ํ•„์ˆ˜์ ์ธ ์„ ํ–‰์ง€์‹์€ ์•„๋‹ˆ์ง€๋งŒ, ๋˜ ๋’ค์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ๋„ ์• ๋งคํ•˜๋‹ค. ์ด๋ฒˆ ํ† ํ”ฝ์˜ ํ•™์Šต์ด ์–ด๋ ต๊ฒŒ ๋А๊ปด์ง€๋ฉด ๋‹ค์Œ ํ† ํ”ฝ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ณ  ๋‚˜์ค‘์— ๋‹ค์‹œ ํ•™์Šตํ•˜

opentutorials.org

https://opentutorials.org/course/1223/5326

 

 

์ƒ์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž… - ์ƒํ™œ์ฝ”๋”ฉ

์ƒ์ˆ˜ ๋ณ€์ˆ˜๋Š” ๋ณ€ํ•˜๋Š” ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ ๋Œ€์ฒ™์ ์— ์žˆ๋Š” ๊ฒƒ์ด ์ƒ์ˆ˜์ธ๋ฐ, ์ƒ์ˆ˜(ๅธธๆ•ธ, constant)๋ž€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค. ์•„๋ž˜์˜ ์ฝ”๋“œ ์ค‘์—์„œ a๋Š” ๋ณ€์ˆ˜์ด๊ณ , 1์€ ์ƒ์ˆ˜์ด๋‹ค. int a = 1; ๋ณ€์ˆ˜ a๋Š” ๋Œ€์ž…

opentutorials.org

https://opentutorials.org/course/1223/5330

 

ํ˜•๋ณ€ํ™˜ - ์ƒํ™œ์ฝ”๋”ฉ

ํ˜• ๋ณ€ํ™˜ ํ˜• ๋ณ€ํ™˜(Type Conversion)์ด๋ž€ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด int ํƒ€์ž…์˜ ์ •์ˆ˜ 200์˜ bit ๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 00000000 00000000 00000000 11001000 ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ๋žŒ๋„ ์ปดํ“จ

opentutorials.org

 

 

๋ฐ˜์‘ํ˜•

|  ๋ฉ”๋ชจ๋ฆฌ ๋™์ ํ• ๋‹น |

#include <stdlib.h>
malloc(ํ• ๋‹น์„ ์›ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ);
free(ํ•ด์ œํ•  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ง€์นญ);

- ๋ฉ”๋ชจ๋ฆฌ ๋™์ ํ• ๋‹น์„ ์œ„ํ•ด์„œ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํ—ค๋”ํŒŒ์ผ ํ•„์š”(stdlib.h)

- ๋ฉ”๋ชจ๋ฆฌ ๋™์ ํ• ๋‹น์„ ํ•˜๋Š” ํ•จ์ˆ˜ : malloc

- ์‚ฌ์šฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ปดํ“จํ„ฐ์— ๋‹ค์‹œ ๋Œ๋ ค์คŒ(ํ•ด์ œ) : free

   โ”• ์ด๋ฅผ ์ œ๋Œ€๋กœ ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜memory leak ๋ฐœ์ƒ)

 

|  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ์œ„์น˜ |

- ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ตฌ์กฐ ์ค‘ ํž™(heap)์˜์—ญ์— ํ• ๋‹นํ•จ.

  ํ• ๋‹น๊ณผ ํ•ด์ œ๊ฐ€ ์ž์œ ๋กœ์šด ๋งŒํผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์•ผํ•จ.(์ปดํ“จํ„ฐ๊ฐ€ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ์ง€ ์•Š์Œ)

 

 

๋ฐ˜์‘ํ˜•

| ๊ตฌ์กฐ์ฒด ์•ˆ์˜ ๊ตฌ์กฐ์ฒด |

 

| ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ |

 

| ๊ตฌ์กฐ์ฒด๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ• |

 

| ๊ณต์šฉ์ฒด (union) |

 

| ๋น… ์—”๋””์•ˆ (Big Endian), ๋ฆฌํ‹€ ์—”๋””์•ˆ (Little Endian) |

 

| ์—ด๊ฑฐํ˜• (Enum) |

- ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์— ๋Œ€์ž…ํ•ด์„œ ์ฒ˜๋ฆฌ ํ•  ๋•Œ, ์ƒ์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ๊ทธ์— ๋”ฐ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚ญ๋น„ ๋จ

enum { RED, BLUE, WHITE, BLACK };

๊ฐ™์€ ํ˜•ํƒœ๋กœ mainํ•จ์ˆ˜ ์ด์ „์— ์“ฐ๋ฉด RED, BLUE, WHITE, BLACK์— ์ˆœ์„œ๋Œ€๋กœ 0, 1, 2, 3์ด๋ผ๋Š” ๊ฐ’์ด ๋งค๊ฒจ์ง

(ํ•จ์ˆ˜ ๋‚ด์—์„œ RED, BLUE, WHITE, BLACK๋ฅผ ์“ฐ๋ฉด ๊ฐ๊ฐ์„ 0, 1, 2, 3์œผ๋กœ ๋ณ€ํ™˜์ฒ˜๋ฆฌ ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นจ)

 

 

enum { RED = 3, BLUE, WHITE, BLACK };

์™€ ๊ฐ™์ด ํ•˜๋ฉด RED, BLUE, WHITE, BLACK์— ์ˆœ์„œ๋Œ€๋กœ 3, 4, 5, 6์ด๋ผ๋Š” ๊ฐ’์ด ๋งค๊ฒจ์ง

 

 

- ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ง€์ •ํ•œ ๋ถ€๋ถ„๋ถ€ํ„ฐ ๋‹ค์‹œ ์—ฐ์†๋œ ์ˆ˜๋กœ ์ง€์ •๋จ.

enum { RED = 3, BLUE, WHITE = 3, BLACK }

์˜ ๊ฒฝ์šฐ์—๋Š” RED, BLUE, WHITE, BLACK์— ์ˆœ์„œ๋Œ€๋กœ 3, 4, 3, 4์ด๋ผ๋Š” ๊ฐ’์ด ๋งค๊ฒจ์ง

 

 

โ˜…์—ด๊ฑฐํ˜•์—์„œ๋Š” ์–ธ์ œ๋‚˜ ์ •์ˆ˜๊ฐ’ ์ด์–ด์•ผํ•จ.

๋ฐ˜์‘ํ˜•

| ๊ตฌ์กฐ์ฒด์˜ ๋Œ€์ž… |

- ๊ตฌ์กฐ์ฒด๋„ ๋ณดํ†ต์˜ ๋ณ€์ˆ˜๋“ค๊ณผ ๊ฐ™์ด ๋Œ€์ž…์—ฐ์‚ฐ์ž(=)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

- ๊ตฌ์กฐ์ฒด๋ฅผ ๋Œ€์ž…ํ•˜๋ฉด ๊ตฌ์กฐ์ฒด์˜ ๋ฉค๋ฒ„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ๋Œ€์ผ๋กœ ๋Œ€์‘๋˜์–ด ๊ฐ’์ด ๋ณต์‚ฌ ๋จ

 

| ๊ตฌ์กฐ์ฒด๋ฅผ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๊ธฐ |

- ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜ ๋ฉค๋ฒ„๋“ค์˜ ๊ฐ’์„ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฐ”๊พธ๋ ค๋ฉด ํฌ์ธํ„ฐ(์ฃผ์†Œ๊ฐ’)์„ ์ด์šฉํ•ดํ•จ.

๋ฐ˜์‘ํ˜•

| ๋ฆฌํ„ฐ๋Ÿด ( literal ) | ์†Œ์Šค ์ฝ”๋“œ ์ƒ์—์„œ ๊ณ ์ •๋œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฒƒ

* ํŠนํžˆ C์–ธ์–ด์˜ ๊ฒฝ์šฐ ํฐ๋”ฐ์˜ดํ‘œ(")๋กœ ๋ฌถ์ธ ๊ฒƒ๋“ค์„ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด(string literal)์ด๋ผ ํ•จ.

- ์ปดํ“จํ„ฐ๋Š” ๋ฆฌํ„ฐ๋Ÿด์„ ๋”ฐ๋กœ ๋ณด๊ด€(๋ฆฌํ„ฐ๋Ÿด๋“ค์„ ๋ณด๊ด€ํ•˜๋Š” ๊ณต๊ฐ„์ด ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ๋”ฐ๋กœ ์ƒ๊น€ - ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ์— ์žˆ์Œ)

- ๋ฆฌํ„ฐ๋Ÿด์ด ๋ณด๊ด€๋˜๋Š” ๊ณณ์€ ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•œ ๊ณณ์ž„, ์“ฐ๊ธฐ๋ฅผ ์‹œ๋„ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ•์ œ๋กœ ์ข…๋ฃŒ๋จ.

#include <stdio.h>
int main() {
    char str[] = "hello";		//str[]์€ ์Šคํƒ(์ˆ˜์ •๊ฐ€๋Šฅ ํ•œ) ๊ณณ์— ์Œ“์ž„. ๋ฆฌํ„ฐ๋Ÿด์ด ์•„๋‹˜.
    char *pstr = "goodbye";		// ๋ฆฌํ„ฐ๋Ÿด

    str[1] = 'a';
    pstr[1] = 'a';

    return 0;
}

(โ€ป VS 2017 ์ด์ƒ์—์„œ๋Š” char*๋กœ ๋ฆฌํ„ฐ๋Ÿด์„ ๊ฐ€๋ฆฌํ‚ฌ์ˆ˜ ์—†์Œ. const char*๋กœ๋งŒ ๊ฐ€๋Šฅํ•จ.)

| ๋ฌธ์ž์—ด ๋‹ค์‹œ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ |

- C์–ธ์–ด์—์„œ ๋ฌธ์ž์—ด(๋ฐฐ์—ด)์˜ ์ด๋ฆ„์€ ์ฃผ์†Œ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฃจ๊ธฐ ๋ถˆํŽธํ•œ ํŽธ์ž„

   โ˜ž ๋ฌธ์ž์—ด์„ ์ž์œ ๋กญ๊ฒŒ ๋‹ค๋ฃจ๊ธฐ์œ„ํ•œ ํ•จ์ˆ˜ ๊ตฌํ˜„์ด ํ•„์š”ํ•จ.

 

๋”๋ณด๊ธฐ

โ€ปํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ์‚ฌํ•ญ๋“คโ€ป

 

1. ์ด ํ•จ์ˆ˜๋Š” ๋ฌด์Šจ ์ž‘์—…์„ ํ•˜๋Š”๊ฐ€?(์ž์„ธํ•  ์ˆ˜๋ก ์ข‹์Œ)

2. ํ•จ์ˆ˜์˜ ๋ฆฌํ„ดํ˜•์ด ๋ฌด์—‡์ด๋ฉด ์ข‹์„๊นŒ?

3. ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ๋Š” ๋ฌด์—‡์„ ๋ฐ›์•„์•ผ ํ•˜๋Š”๊ฐ€?

 

[ ๋ฌธ์ž์—ด ๋‚ด์˜ ์ด ๋ฌธ์ž์˜ ์ˆ˜๋ฅผ ์„ธ๋Š” ํ•จ์ˆ˜]

 

[ ๋ฌธ์ž์—ด์„ ๋ณต์‚ฌํ•˜๋Š” ํ•จ์ˆ˜]

1. a ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ b ๋ฌธ์ž์—ด๋กœ ๋ณต์‚ฌํ•˜๋Š” ํ•จ์ˆ˜

2. ex) ์„ฑ๊ณตํ•˜๋ฉด 1๋ฆฌํ„ด ๋ฐ›์ž => int

3. ๋‘๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ์ธ์ž๋กœ ๋ฐ›์Œ. ๋ฌธ์ž์—ด์€ char ํ˜• ๋ฐฐ์—ด์ด๋ฏ€๋กœ char* 2๊ฐœ๋ฅผ ์ธ์ž๋กœ ๋ฐ›์Œ

#include <stdio.h>
int copy_str(char *str_a, char *str_b);
int main () {
    char str1[] = "hello";
    char str2[] = "hi";

    printf("๋ณต์‚ฌ ์ด์ „ : %s \n", str1);
    
    copy_str(str1, str2);

    printf("๋ณต์‚ฌ ์ดํ›„ : %s \n", str1);

    return 0;
}
int copy_str(char *str_a, char *str_b) {
    while(*str_b) {     //str_b๊ฐ€ 0(NULL)์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๊ณ„์†
        *str_a = *str_b;    //str_b์˜ ๋‚ด์šฉ์„ str_a์— ๋ณต์‚ฌ
        str_b++;        // ๊ทธ ๋‹ค์Œ ๋ฌธ์ž ๊ฐ€๋ฆฌํ‚ด
        str_a++;
    }
    *str_a = '\0';		//NULL ์‚ฝ์ž…

    return 1;
}

   โ””> ๋‘ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•„์„œ ํ—ˆ๋ฝ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์นจ๋ฒ”ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜๋„ ์žˆ์Œ.

[ ๋ฌธ์ž์—ด์„ ํ•ฉ์น˜๋Š”(๋”ํ•˜๋Š”) ํ•จ์ˆ˜]

#include <stdio.h>
int str_add(char *str1, char *str2);
int main() {
    char str1[100] = "hello my name is ";
    char str2[] = "May";

    str_add(str1, str2);

    printf("%s", str1);

    return 0;
}
/* str1 ์— str2 ๋ฌธ์ž์—ด์„ ๋์— ๋ถ™์ธ๋‹ค.
์ด ๋•Œ str1 ๋ฌธ์ž์—ด์˜ ํฌ๊ธฐ๋ฅผ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ str2 ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ํฌ๊ธฐ๊ฐ€
์žˆ์–ด์•ผ ํ•œ๋‹ค.*/

int str_add(char *str1, char *str2) {

//str1์˜ ๋๋ถ€๋ถ„ ์ฐพ๊ธฐ
    while(*str1) {
        str1++;
    }
    while(*str2) {
        *str1 = *str2;
        str1++;
        str2++;
    }
   //๋งˆ์ง€๋ง‰์œผ๋กœ str1์— NULL ์ถ”๊ฐ€(str1 ์—์„œ NULL ์ด ์ถ”๊ฐ€ ๋˜์ง€ ์•Š์•˜๊ธฐ ๋–„๋ฌธ) */
    *str1 = '\0';

    return 1;
}

[ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜]

 

๋ฐ˜์‘ํ˜•

๋ฌธ์ œ : ๋ฌธ์ž์—ด ๋งˆ์ง€๋ง‰ ์›์†Œ๋กœ NULL์„ ๋„ฃ์–ด ์ฃผ์ง€ ์•Š์•˜์Œ

๋ฐ˜์‘ํ˜•

๊ตฌ์กฐ์ฒด : ๊ฐ ์›์†Œ์˜ ํƒ€์ž…์ด ์ œ๊ฐ๊ฐ์ธ ๋ฐฐ์—ด

|๊ตฌ์กฐ์ฒด์˜ ๋„์ž…|

- C์–ธ์–ด์—์„œ ๋ฐฐ์—ด์˜ ์›์†Œ๋Š” ๋ชจ๋‘ ๊ฐ™์€ ํ˜•์‹์ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ/๋ถˆํŽธํ•จ์ด ์žˆ์Œ

 

[๊ตฌ์กฐ์ฒด์˜ ๋„์ž…๊ณผ ์ •์˜]

โ˜…๊ตฌ์กฐ์ฒด์˜ ์ •์˜์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์—†๋‹ค.

(์ฐพ๊ธฐ ์–ด๋ ต๊ณ , ์—‰๋šฑํ•œ ์˜ค๋ฅ˜๋งŒ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ˆ˜ํ•˜์ง€ ์•Š๊ฒŒ์กฐ์‹ฌ!!)โ˜…

- struct OOO ๋„ ํ•˜๋‚˜์˜ ํƒ€์ž…์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๊ตฌ์กฐ์ฒด๋Š” ํ•œ๊ฐœ์˜ ํƒ€์ž…์„ ์ฐฝ์กฐํ•˜๋Š”๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€

| ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ |

- ๊ตฌ์กฐ์ฒด๋Š” ํ•˜๋‚˜์˜ ํƒ€์ž…์„ ์ฐฝ์กฐํ•œ ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด struct ๊ตฌ์กฐ์ฒด์ด๋ฆ„ *ํฌ์ธํ„ฐ์ด๋ฆ„์œผ๋กœ ์ •์˜

- ptr๋Š” ํฌ์ธํ„ฐ ์ด์ง€ ๊ตฌ์กฐ์ฒด ๊ฐ€ ์•„๋‹˜.

- ๋ฉค๋ฒ„์— ์ ‘๊ทผ ํ•  ๋•Œ๋„ *ptr = str๋ฅผ ์ƒ๊ฐํ•˜๋ฉด (*ptr).a ์™€ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Œ

 

[๊ตฌ์กฐ์ฒด์˜ ํฌ์ธํ„ฐ์™€ ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„]

ํฌ์ธํ„ฐ(*)์˜ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ตฌ์กฐ์ฒด์˜ ์›์†Œ์— ์ ‘๊ทผํ•˜๋Š” . ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์—

*ptr.a๋Š” *(ptr.a)์™€ ๊ฐ™์Œ

                   โ””ptr์ด๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง€๋Š” ๊ตฌ์กฐ์ฒด์˜ a๋ฉค๋ฒ„ ์ ‘๊ทผํ•˜๋ผ๋Š” ๋œป

                      (ptr์€ ๊ตฌ์กฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ํฌ์ธํ„ฐ ์ด๊ธฐ๋•Œ๋ฌธ์— ๋‹น์—ฐํžˆ ๋ถˆ๊ฐ€)

 

[ ์ƒˆ๋กœ์šด ์—ฐ์‚ฐ์ž -> ]

ํฌ์ธํ„ฐ๋กœ ๊ตฌ์กฐ์ฒด์˜ ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•  ๋•Œ ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆญ์œ„๋กœ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•

(*ptr).a == ptr->a

๋ฐ˜์‘ํ˜•

+ Recent posts