hugDog
Android DevLog
hugDog
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ™Œ Hello? (162)
    • ๐Ÿงฉ์•ˆ๋“œ๋กœ์ด๋“œ (12)
      • ๊ฐœ๋… ์ •๋ฆฌ (5)
      • ๋ฒ„๊ทธ ํ•ด๊ฒฐ (4)
      • ๊ธฐํƒ€ (3)
    • ๐Ÿ”์•Œ๊ณ ๋ฆฌ์ฆ˜ (54)
      • ๊ฐœ๋… (0)
      • ๋ฐฑ์ค€ (48)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
    • ๐Ÿ“„๊ฐœ๋ฐœ ์ผ์ง€ (0)
      • FINPO (0)
    • ๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (71)
      • C++ ์ •๋ฆฌ (49)
      • C++๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค ์—ฐ์Šต๋ฌธ์ œ (20)
      • Kotlin (2)
    • โญProject (1)
    • ๐ŸšดTIL (13)
      • Clean Code (13)
    • ๐Ÿšฉ๊ธฐํƒ€ (9)
      • ๋ชฉํ‘œ (6)
      • ์ผ์ƒ (3)
      • ๋ฌธ์„œ (0)

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
hugDog

Android DevLog

๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ์ •๋ฆฌ

C++ ์ •๋ฆฌ -7 ( ๊ตฌ์กฐ์ฒด, ๊ตฌ์กฐ์ฒด ์„œ์ˆ , ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜, ๊ตฌ์กฐ์ฒด ์ดˆ๊ธฐํ™”, ๊ตฌ์กฐ์ฒด์˜ ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด ์•ˆ์˜ ๋น„ํŠธ ํ•„๋“œ)

2019. 6. 22. 09:39
728x90

๊ตฌ์กฐ์ฒด

ํ•˜๋‚˜์˜ ๊ตฌ์กฐ์ฒด ์•ˆ์— ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ๊ฐ€๋Šฅ, ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐํ˜•

 

๊ตฌ์กฐ์ฒด ์ƒ์„ฑ ๋‹จ๊ณ„

1. ๊ตฌ์กฐ์ฒด ์„œ์ˆ (structure description) ์ •์˜

๊ตฌ์กฐ์ฒด ์•ˆ์— ์ €์žฅํ•  ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐ์ดํ„ฐํ˜•๋“ค์„ ์„œ์ˆ ํ•˜๊ณ  ์ด๋ฆ„์„ ์ •ํ•จ

2. ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜(structure variable) ์ƒ์„ฑ

 

๊ตฌ์กฐ์ฒด ์„œ์ˆ  ์˜ˆ์‹œ

struct inflatable // struct: struct ํ‚ค์›Œ๋“œ inflatable: ํƒœ๊ทธ, ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐํ˜•์˜ ์ด๋ฆ„์ด ๋จ (int, double ์ฒ˜๋Ÿผ)

{

char name[20];

float volume;           //๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„

double price;

}; // ์„ธ๋ฏธ์ฝœ๋ก ์€ ํ…œํ”Œ๋ฆฟ ์„ ์–ธ์„ ๋๋ƒ„

 

๊ตฌ์กฐ์ฒด ์„œ์ˆ ์„ ๋๋‚ธ ํ›„, ๊ทธ ๋ฐ์ดํ„ฐํ˜•์˜ ๋ณ€์ˆ˜๋“ค ์ƒ์„ฑ ๊ฐ€๋Šฅ

inflatable hat;

inflatable mainframe;

struct inflatable goose; /c๋Š” ํ‚ค์›Œ๋“œ struct๋ฅผ ์š”๊ตฌํ•จ

 

๋ฉค๋ฒ„ ์—ฐ์‚ฐ์ž(.)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์กฐ์ฒด์˜ ๊ฐœ๋ณ„์  ๋ฉค๋ฒ„์— ์ ‘๊ทผ ๊ฐ€๋Šฅ

ex) hat.volume๋Š” hat ๋ณ€์ˆ˜์˜ volume๋ฅผ ๋‚˜ํƒ€๋ƒ„

 

๊ตฌ์กฐ์ฒด ์„ ์–ธ์„ ๋‘๋Š” ์œ„์น˜

1. main() ํ•จ์ˆ˜์˜ ์•ˆ์— ์—ฌ๋Š” ์ค‘๊ด„ํ˜ธ ๋ฐ”๋กœ ๋’ค์— ์„ ์–ธ

2. main() ํ•จ์ˆ˜์˜ ์•ž์— ์„ ์–ธ -> ์™ธ๋ถ€ ์„ ์–ธ

 

์™ธ๋ถ€ ์„ ์–ธ : ์„ ์–ธ ์ดํ›„์— ๋‚˜์˜ค๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋“ค์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋‚ด๋ถ€ ์„ ์–ธ : ๊ทธ ์„ ์–ธ์ด ๋“ค์–ด์žˆ๋Š” ํ•จ์ˆ˜์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

๊ตฌ์กฐ์ฒด ์ดˆ๊ธฐํ™”

struct inflatable

{

char name[20];

float volume;

double price;

};

 

inflatable guest = 

{

"Glorious Gloria", // name ๊ฐ’

1.88, //volume ๊ฐ’

29.99 //price ๊ฐ’

};

 

inflatable duck = {"fa",0.1,9.9}; // ํ•œ ํ–‰์œผ๋กœ๋„ ๊ฐ€๋Šฅ

 

ํ•œ ์Œ์˜ ์ค‘๊ด„ํ˜ธ{} ์•ˆ์— ์ดˆ๊ธฐํ™” ๊ฐ’๋“ค์ด ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ์ดˆ๊ธฐํ™” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋„ฃ์Œ

๊ตฌ์กฐ์ฒด์˜ ๊ฐ ๋ฉค๋ฒ„๋Š” ๊ทธ ๋ฐ์ดํ„ฐํ˜•์˜ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ทจ๊ธ‰๋จ

pal.name์€ charํ˜•์˜ ๋ฐฐ์—ด์ด๋ฏ€๋กœ cout์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅ๋จ

๋˜ํ•œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด ๋‚ด์˜ ๊ฐ ๋ฌธ์ž๋“ค์— ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

c++11์˜ ๊ตฌ์กฐ์ฒด ์ดˆ๊ธฐํ™”

inflatable duck {"Da",0.1,9.9}; // = ์ƒ๋žต ๊ฐ€๋Šฅ

๊ณต๋ฐฑ์„ ๊ฐ€์ง€๋Š” ์ค‘๊ด„ํ˜ธ๋Š” ๊ฐ๊ฐ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•จ

inflatable mayor{}; //mayor.volume๊ณผ mayor.price 0์œผ๋กœ ์ดˆ๊ธฐํ™”

narrowing ๋ถˆํ—ˆ์šฉ

 

๊ตฌ์กฐ์ฒด string ํด๋ž˜์Šค ๋ฉค๋ฒ„ ์‚ฌ์šฉ ์—ฌ๋ถ€

#include <string>

struct inflatable

{

std::string name;

float volume;

};

1. ๊ตฌ์กฐ์ฒด ์ •์˜๊ฐ€ std ์ด๋ฆ„ ๊ณต๊ฐ„์— ์ ‘๊ทผ

2. std::stringํ˜• ์‚ฌ์šฉ

1 ๋˜๋Š” 2๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌ์กฐ์ฒด์—์„œ string ํด๋ž˜์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๊ตฌ์กฐ์ฒด์˜ ๊ธฐํƒ€ ํŠน์„ฑ

์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ๋ฐ์ดํ„ฐํ˜•์„ ๋‚ด์žฅ ๋ฐ์ดํ„ฐํ˜•๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Œ

ex) ๊ตฌ์กฐ์ฒด๋ฅผ ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ, ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฆฌํ„ด ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ, ๋Œ€์ž… ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•ด์„œ ๋‹ค๋ฅธ ๊ตฌ์กฐ์ฒด์— ๋Œ€์ž… (๋ฐฐ์—ด๋„ ๋Œ€์ž…๋œ๋‹ค.)

 

๊ตฌ์กฐ์ฒด ํ…œํ”Œ๋ฆฟ์˜ ์ •์˜์™€ ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜์˜ ์ƒ์„ฑ์„ ํ•˜๋‚˜๋กœ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅ -> ์ค‘๊ด„ํ˜ธ ๋’ค์— ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ๋‘”๋‹ค.

struct perks

{

int key;

char car[12];

} mr_s,ms_j; //๋‘ ๊ฐœ์˜ perksํ˜• ๋ณ€์ˆ˜

 

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ดˆ๊ธฐํ™”๋„ ํ•จ๊ป˜ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

structk perks

{

int key;

char car[12];

} mr_g=

{

7,

"packard"

};

 

๋ฐ์ดํ„ฐํ˜• ์ด๋ฆ„์ด ์—†๋Š” ๊ตฌ์กฐ์ฒด ์ƒ์„ฑ ๊ฐ€๋Šฅ

struct

{

int x;

int y;

} position;

๋ฐ์ดํ„ฐํ˜• ์ด๋ฆ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ดํ›„์— ๊ฐ™์€ ํ˜•์˜ ๋‹ค๋ฅธ ๋ณ€์ˆ˜ ์ƒ์„ฑ ๋ถˆ๊ฐ€

 

๊ตฌ์กฐ์ฒด์˜ ๋ฐฐ์—ด

๊ตฌ์กฐ์ฒด์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐํ˜•์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

inflatable gifts[100];

gifts[0] ๋˜๋Š” gifts[99]์™€ ๊ฐ™์€ ๋ฐฐ์—ด ์›์†Œ๋Š” inflatable ํ˜• ๊ฐ์ฒด์ด๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ

cin>>gifts[0].volume;

cout<<gifts[99].price<<endl;

gifts ์ž์ฒด๋Š” ๊ตฌ์กฐ์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐฐ์—ด์ด๋ฏ€๋กœ, gifts.price์™€ ๊ฐ™์€ ํ‘œํ˜„์€ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค.

 

๊ตฌ์กฐ์ฒด์˜ ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” = ๊ตฌ์กฐ์ฒด ์ดˆ๊ธฐํ™” ๊ทœ์น™ + ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ๊ทœ์น™

inflatable guests[2] = 

{

 {"bambi",0.5,21.99},

 {"gasdfi",2000,2155.9},

};

 

๊ตฌ์กฐ์ฒด ์•ˆ์˜ ๋น„ํŠธ ํ•„๋“œ

ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์— ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€์‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋งค์šฐ ํŽธ๋ฆฌํ•จ

1. ํ•„๋“œํ˜•์€ ์ •์ˆ˜ํ˜•์ด๋‚˜ ์—ด๊ฑฐ์ž

2. ์‚ฌ์šฉํ•  ๋น„ํŠธ ์ˆ˜๋Š” ์ฝœ๋ฅธ์„ ์ฐ๊ณ  ์ ์Œ

    ์ด๋ฆ„์ด ์—†๋Š” ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ„๊ฒฉ์„ ์ค„ ์ˆ˜๋„ ์žˆ์Œ

 

ex)

struct torgle_register

{

unsigned int SN : 4; //SN ๊ฐ’ (4๋น„ํŠธ)

unsigned int : 4; //์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ (4๋น„ํŠธ)

bool goodIn : 1; //์œ ํšจํ•œ ์ž…๋ ฅ (1๋น„ํŠธ)

bool goodTorgle : 1; //ํ† ๊ธ€์— ์„ฑ๊ณต (1๋น„ํŠธ)

};

 

๋ณดํ†ต์˜ ๋ฐฉ์‹์œผ๋กœ ํ•„๋“œ ์ดˆ๊ธฐํ™” ๊ฐ€๋Šฅ, ๊ตฌ์กฐ์ฒด ํ‘œ๊ธฐ ๋ฐฉ๋ฒ•์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด ๋น„ํŠธ ํ•„๋“œ์— ์ ‘๊ทผํ•จ

torgle_register tr = {14,true,false};

...

if(tr.goodIn)

...

 

๋น„ํŠธ ํ•„๋“œ๋Š” ์ €์ˆ˜์ค€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋จ

 

 

 

 

728x90
    '๐Ÿ”คํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ์ •๋ฆฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • C++ ์ •๋ฆฌ -9 (ํฌ์ธํ„ฐ -1)
    • C++ ์ •๋ฆฌ -8 (๊ณต์šฉ์ฒด, ์—ด๊ฑฐ์ฒด, ์—ด๊ฑฐ์ฒด์˜ ๊ฐ’ ๋ฒ”์œ„)
    • C++ ์ •๋ฆฌ -6 (getline(), get(), failbit, string ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ)
    • C++ ์ •๋ฆฌ -5 (auto ์„ ์–ธ, ๋ฐฐ์—ด, ๋ฌธ์ž์—ด)
    hugDog
    hugDog
    ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต๋ถ€ ์ค‘์ธ ํ•™์ƒ์ž…๋‹ˆ๋‹ค!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”