๐ซ Language/C
typedef์ ๊ตฌ์กฐ์ฒด typedef : ํ์
์ด๋ฆ์ ์ฌ์ฉ์๊ฐ ์ ํด์ค๋ค ์ด๋ค ๊ฒฝ์ฐ๋ ์ด๋ฆ์ด ๊ธธ์ด์ง๋ฉด ์์๋ณด๊ธฐ ํ๋ค๊ธฐ ๋ง๋ จ์ด๋ค. ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ๊ตฌ์กฐ์ฒด ํ์
์ ์๋ ค์ฃผ๊ณ ์ด๋ฆ์ ์ง์ด์ฃผ์ด ์ฌ์ฉํด์ผ ํ๋ค. ์ด๋ ์์ฝ๋ฉ ์ค๋
์๋ค์ธ ๊ฐ๋ฐ์๋ค ๋์ ์ฉ ์ข์ง ์์๋๋ณด๋ค. ๊ทธ๋์ ๊ตฌ์กฐ์ฒด์ ์ ์์ ์ฌ์ฉ์ ์ฝ๊ฒ ํด๋ณด๋ ค๊ณ ๋์
ํ ๊ฒ์ด typedef์ด๋ค. ์ฌ์ฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ๋ค์ด ์๋ค. struct point { int xpos; int ypos; }; typedef struct point Point Point p; ์์ฒ๋ผ ์์ฑํ๋ค๋ฉด ๋ณ์ ์ ์ธ์ด ์งง์์ง๋ค๋ ์ฅ์ ์ด ์๋ค. typedef struct point { int xpos; int ypos; } Point; Point p; ๋ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ..
๐ซ Language/C
์ด์ ํฌ์คํ
์์ ์คํ ํ๋ ์ ๋ด์์ ์ฌ๋ผ์ง๋ ์ง์ญ ๋ณ์๋ฅผ ๋ณด์กดํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์คํ๊ณผ ํ์ ์์์ผ ํ๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ : Stack vs. Heap Stack์ ๋ฌด์์ ํฌํจํ๋ ๊ฐ? ์ง์ญ ๋ณ์, ์ธ์, ๋ฆฌํด ์ฃผ์ Heap์ด๋ ๋ฌด์์ธ๊ฐ? ๋ณ์์ ๋น์ทํ์ง๋ง ๋ณ์ ์ด๋ฆ์ด ์๋ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ (๋์ ๋ณ์, ๋ฌด๋ช
๋ณ์๋ผ๊ณ ๋ถ๋ฅธ๋ค.) Heap์ ์๋ ๋์ ๋ณ์๋ ํจ์์ ๋
๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ค. ์ด๋ ์ ์ญ ๋ณ์์ ์ ์ฌํ๋ค. Heap์ ์๋ ๋์ ๋ณ์๋ ๋์ ์ผ๋ก ์์ฑ๊ณผ ์ ๊ฑฐ๊ฐ ๊ฐ๋ฅํ๋ค. ์ด๋ ์ ์ญ ๋ณ์์ ๋ค๋ฅธ ์ ์ด๋ค. ๋ฐ๋ผ์ ๋์ ์ผ๋ก ์์ฑํ๊ณ ์ ๊ฑฐํ๊ธฐ ํ๊ธฐ์ํ ํจ์๊ฐ ์กด์ฌํ๋ค. ์์ฑ ํจ์ malloc(), new() ์ ๊ฑฐ ํจ์ free() Stack ์ง์ญ ..
๐ซ Language/C
ํฌ์ธํฐ ๋ฐฐ์ด, ๋ฐฐ์ด ํฌ์ธํฐ ํผ์ฉํ์ฌ ์ฐ๋ค๋ณด๋ฉด ์ด๊ฒ ์ ํํ ๋ฌด์จ ๊ฐ๋
์ธ์ง ์ค์ค๋ก ๊นจ๋ซ์ง ๋ชปํ๊ณ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ํ๋ฒ ์ดํดํด๋ณด์. ํฌ์ธํฐ ๋ฐฐ์ด์ด๋? ํฌ์ธํฐ ๋ฐฐ์ด์ด๋ ๊ฐ ๋ฐฐ์ด์ ์์๊ฐ ํฌ์ธํฐ(์๋ฃํ์ด ์ฃผ์)์ธ ๊ฒ์ ๋ปํ๋ค. ๋ค์ ์์๋ฅผ ๋ณด์. char * strArr[3] = { "cat", "dog", "bird" }; printf("%s", strArr[0]); printf("%s", strArr[1]); printf("%s", strArr[2]); strArr๋ ํฌ์ธํฐ ๋ฐฐ์ด์ด๋ค. ๊ฐ ๋ฐฐ์ด์ ์์๊ฐ ํฌ์ธํฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฌธ์์ด์ด ์ ํฌ์ธํฐ์ธ๊ฐ? ์ด๋ ๋ฐฐ์ด ์์ ๋ด๋ถ์ ์ผ๋ก ๋ฌธ์์ด์ ์์ ์ฃผ์๋ฅผ ๋ํ๋ด๋ ํฌ์ธํฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ํฌ์ธํฐ ๋ฐฐ์ด๊ณผ ๋๋ธ ํฌ์ธํฐ ํฌ์ธํฐ ๋ฐฐ์ด์ ๋ ๋ค๋ฅธ ํํ ๋ฐฉ๋ฒ์ผ๋ก ๋๋ธ ํฌ์ธํฐ๋ฅผ..
๐ซ Language/C
C์ธ์ด์ ๋ํด ๊ณต๋ถํ๋ค ๋ณด๋ ์ด์ํ ๋ฌธ๋ฒ๊ณผ ์ต์ํ์ง ์์ ๋ฌธ๋ฒ๋ค์ด ํผ์ฆ์ฒ๋ผ ๋ค๊ฐ์ค๊ณค ํ๋ค. ๊ทธ๋ผ์๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ์ธ์ด์ด๊ธฐ๋ ํ๊ณ , ๋ถ๋ช
๋์์ด ๋๋ ๋ถ๋ถ๋ ๋ง๋ค. ์ง๊ธ๋ถํฐ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ๋ฉฐ, ํท๊ฐ๋ ธ๋ ๊ฐ๋
์ ๋ํด ์ ๋ฆฌ๋ณด๊ณ ์ ํ๋ค. ์๋ ํ ๋น ๋ฌธ์์ด์ด๋? ํฐ ๋ฐ์ดํ๋ก ๋๋ฌ์ธ์ธ ๋ฌธ์์ด์ด๋ค. ๋จ, char ๋ฐฐ์ด ์ ์ธํ ๋ ์ด๊ธฐํ ๊ฐ์ผ๋ก ์ฐ์ด๋ ๊ฒฝ์ฐ๋ ์ ์ธํ๋ค. char * str = "Oh String"; ์ ๊ตฌ๋ฌธ ๊ฐ์ด ๋ฌธ์์ด์ ํํํ ๋ ์๋ ํ ๋น ๋ฌธ์์ด์ด ์ฐ์ธ๋ค. ์ด ๋ฌธ์์ด์ ๋ณํํ ์ ์๋ค(๋ถ๋ณ). ์ ๋ถ๋ณ์ธ๊ฐ? ์ด๋ Const์ ๋ํด ์ดํดํ ํ์๊ฐ ์๋ค. ํฌ์ธํฐ์ Const ์ ์ธ ํฌ์ธํฐ(*)์ const๋ ์์น์ ๋ฐ๋ผ ์ฌ์ฉ ์๋ฏธ๊ฐ ๋ค๋ฅด๋ค. 1. const int * ptr ํด๋น ํฌ์ธํฐ๋ฅผ ํตํด ๊บผ..