PROGRAMMING/C & C++(22)
-
14. [C / C++] ํ์ผ ์ ์ถ๋ ฅ
1. ํ์ผ๊ณผ ์คํธ๋ฆผ ์ ์ถ๋ ฅ ๋์์ด ์ฝ์์ผ ๋ ์ด์์ฒด์ ๊ฐ ์ ์ถ๋ ฅ ์คํธ๋ฆผ์ ์๋ ์์ฑ ๋ฐ ์๋ฉธ์์ผ์ค๋ค. (scanf, printf ๋ฑ๋ฑ) ์ ์ถ๋ ฅ ๋์์ด ํ์ผ์ด๋ผ๋ฉด, ์ฌ์ฉ์๊ฐ ์ด์์ฒด์ ์๊ฒ ์คํธ๋ฆผ ์์ฑ๊ณผ ์๋ฉธ์ ์์ฒญํด์ผ ํ๋ค. (์คํธ๋ฆผ - ์ด์์ฒด์ ์ ์ํด์ ํ์ฑ๋๋ ์ํํธ์จ์ด์ ์ธ ์ํ) 2. ์คํธ๋ฆผ ํ์ฑ๊ณผ FILE ๊ตฌ์กฐ์ฒด fopen_s(FILE** stream, const char* filename, const char* mode) ์คํธ๋ฆผ์ ํ์ฑํ ๋ ํธ์ถํ๋ ํจ์. ์ฒซ ๋ฒ์งธ ์ธ์ - ์คํธ๋ฆผ์ ์ ๋ณด๋ฅผ ๋ด๊ธฐ ์ํ FILE ๊ตฌ์กฐ์ฒด. ๋ ๋ฒ์งธ ์ธ์ - ์คํธ๋ฆผ์ ํ์ฑํ ํ์ผ์ ์ด๋ฆ. ์ธ ๋ฒ์งธ ์ธ์ - ํ์ฑํ ์คํธ๋ฆผ์ ์ข ๋ฅ์ ๋ํ ์ ๋ณด๋ฅผ ๋ฌธ์์ด ํํ๋ก ์ ๋ฌ. ์ด ํจ์๋ ํด๋น ํ์ผ๊ณผ์ ์คํธ๋ฆผ์ ํ์ฑํ๊ณ , ์คํธ๋ฆผ ์ ๋ณด๋ฅผ F..
2019.06.03 -
13. [C / C++] const์ ํฌ์ธํฐ
ํฌ์ธํฐ ๋์์ const ์ ์ธ const๋ ๋ณ์๋ฅผ ์์ํ ํ๋ ๋ชฉ์ ์ผ๋ก ์ ์ธํ๋ ํค์๋์ด๋ค. ( ์์ : ๋ณํ์ง ์๋ ๋ณ์. ) ์ฆ, ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฐ ๋ณ๊ฒฝ์ ํ์ง ๋ชปํ๋๋ก ๋ง๋ ํค์๋์ด๋ค. 1. ํฌ์ธํฐ ๋ณ์๊ฐ ์ฐธ์กฐํ๋ ๋์์ ๊ฐ ๋ณ๊ฒฝ์ ํ์ฉํ์ง ์๋ const ์ ์ธ ์ฒซ ๋ฒ์งธ const ํค์๋์ ์์น์ ๋ด๊ธด ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ๋ค. "ํฌ์ธํฐ ๋ณ์ pPtr1์ ์ด์ฉํด์, pPtr1์ด ๊ฐ๋ฆฌํค๋ ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ๋ณ๊ฒฝ์ ํ์ฉํ์ง ์๊ฒ ๋ค." ๊ทธ๋ ๋ค๊ณ ํด์ ํฌ์ธํฐ ๋ณ์ pPtr1์ด ๊ฐ๋ฆฌํค๋ ๋ณ์ iA๊ฐ ์์ํ ๋๋ ๊ฒ์ ์๋๋ค. ๋ฐ๋ผ์ iA์ ์ ์ฅ๋ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ํ์ฉ๋๋ค. ์ฆ, ํฌ์ธํฐ ๋ณ์๋ฅผ ํตํด์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ง๋ ์๋ฏธ์ด๋ค. ์์ const ์ ์ธ์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ์ ํ์ ๋๋ ๊ฒ์ด์ง ๋ฌด์์ธ๊ฐ๋ฅผ ..
2019.05.26 -
12. [C / C++] ํฌ์ธํฐ์ ๋ ํผ๋ฐ์ค์ ์ฐจ์ด
1. ํฌ์ธํฐ (pointer) ํฌ์ธํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ณ์์ด๋ค. ์ฃผ์ ๊ฐ์ ํตํ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ํ๋ค. (๊ฐ์ ์ฐธ์กฐ) 2. ๋ ํผ๋ฐ์ค (reference) ๋ ํผ๋ฐ์ค = ์ฐธ์กฐ์. ( C++ ๋ฌธ๋ฒ ) ์ฐธ์กฐ์๋ ์์ ์ด ์ฐธ์กฐํ๋ ๋ณ์๋ฅผ ๋์ ํ ์ ์๋ ๋ ํ๋์ ์ด๋ฆ์ด๋ค. ์ฆ, ๋ณ์์ ๋ณ๋ช (๋ณ์นญ)์ ํ๋ ๋ถ์ฌ์ฃผ๋ ๊ฒ์ด๋ค. ๋ณ์ ๋ช ์ ํตํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ๋ค. ( ์ง์ ์ฐธ์กฐ ) iNum์ด ๋ณ์์ ์ด๋ฆ์ด๋ฉด, rRef๋ iNum1์ ๋ณ๋ช (๋ณ์นญ)์ด๋ผ๋ ๋ป์ด๋ค. iNum๊ณผ rRef๋ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐธ์กฐํ๋ค. 3. ํฌ์ธํฐ์ ๋ ํผ๋ฐ์ค์ ์ฐจ์ด 1. NULL ์ด๊ธฐํ ํฌ์ธํฐ๋ NULL ์ด๊ธฐํ๋ฅผ ํ ์ ์์ง๋ง, ๋ ํผ๋ฐ์ค๋ NULL ์ด๊ธฐํ๋ฅผ ํ ์ ์๋ค. ๋ ํผ๋ฐ์ค๋ ๋ฐ๋์ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ๋ฅผ ํด์ผํ๋ค. ์ด๋ฌํ ..
2019.05.25 -
11. [C / C++] ๋ฌธ์์ด ์์์ ํฌ์ธํฐ
1. ๋ฌธ์์ด ์์(๋ฆฌํฐ๋ด) ๋ฌธ์์ด ์์๋ "HelloWorld"์ ๊ฐ์ด ํ๋ก๊ทธ๋จ ์์ค ์์ ํฌํจ๋ ๋ฌธ์์ด์ ์๋ฏธํฉ๋๋ค. (๋ฆฌํฐ๋ด : ์์ค์ฝ๋์ ๊ณ ์ ๋ ๊ฐ์ ๋ํํ๋ ์ฉ์ด ์ ์, ๋ถ๋ ์์์ ์ซ์, ๋ฌธ์์ด ๋ฑ๋ฑ) ๋ฌธ์์ด ์์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ ์ค์์ DATA ์์ญ์ ๋ฑ๋ก๋๋ค. (๋ฌธ์์ด ์์๋ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ ์ค์์ ํ ์คํธ ์ธ๊ทธ๋จผํธ(text segment)๋ผ๊ณ ๋ถ๋ฆฌ๋ ํน์ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ์ฅ๋๋ค. ํ ์คํธ ์ธ๊ทธ๋จผํธ๋ ์ฝ๊ธฐ๋ ๊ฐ๋ฅํ์ง๋ง, ์ฐ๋ฆฌ๊ฐ ๋ณ๊ฒฝํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด๋ค. read only data ์์ญ) ๋จผ์ ํฌ์ธํฐ ๋ณ์๊ฐ ์์ฑ๋๋ค. ๋ชจ๋ ๋ณ์๋ ๋ฐ์ดํฐ ์ธ๊ทธ๋จผํธ(data segment)๋ผ๊ณ ๋ถ๋ฆฌ๋ ์์ญ์ ์ ์ฅ๋๋ค. (STACK, HEAP์์ญ) ๋ฐ๋ผ์ ํฌ์ธํฐ ๋ณ์ pName1๋ ๋ฐ์ดํฐ ์ธ๊ทธ๋จผ..
2019.05.24