<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>::Deep Code::</title>
    <link>https://deepprogramming.tistory.com/</link>
    <description>&amp;lt;&amp;lt;같이 공부하는 블로그&amp;gt;&amp;gt;

#C/C++
#Windows</description>
    <language>ko</language>
    <pubDate>Mon, 13 Apr 2026 22:24:48 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>mdisprgm</managingEditor>
    <image>
      <title>::Deep Code::</title>
      <url>https://tistory1.daumcdn.net/tistory/4765409/attach/5497f131f0ff45f5b4a64aea68806e95</url>
      <link>https://deepprogramming.tistory.com</link>
    </image>
    <item>
      <title>모니터 주사율 60Hz까지 밖에 안 나오는 문제 해결 (DP 케이블 교체)</title>
      <link>https://deepprogramming.tistory.com/50</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 이 모니터와 겪은 난항의 역사를 써봅시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2021년에 처음 데스크탑을 사면서 이 모니터를 삼. QHD 165Hz까지 되는 모델.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;얼마 지나지 않아 모모터 앞에서 재채기를 하는 바람에 오물이 디스플레이에 튀었고, 이것을 물티슈로 닦다가 침은 닦였지만 이상한 얼룩이 지는 불상사가 발생함. 후회했지만 어쩔 수 없이 그냥 쓰고 있었음. 쓰다보니 별로 신경도 안 쓰이고.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 진짜 문제는 다음 해, 그러니까 2022년 9월 즈음에 발생함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게임을 하는데 갑자기 프레임이 떨어지는 느낌을 받음. 확인해보니 주사율이 100Hz로 고정됨. 165Hz까지 되는 모델임에도 그래서 적잖이 당황함. 윈도우 포맷까지 진행했지만 증상은 나아지지 않음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중소기업에서 나온 가성비 모니터라 그런가.. 아님 그래픽카드가 문젠가.. 하는 고민을 했지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;(그래픽카드도 코인붐 때 산 거라 굉장히 비싼 가격, 하지만 당시에는 싼 제품임)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간+돈의 비용적인 문제로 나중에 고치지 뭐~ 하고 그냥 사용했음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;그러곤 얼마 후, 블로그를 꾸미고 있는데 스크롤 하다가 이상한 부분을 발견함. 빠르게 스크롤 하거나 화면 전환이 빠른 영상을 틀면 화면이 가로로 일그러지는 것임. 이때부터 슬슬 불안함. 모니터도 모니터지만 그래픽카드 문제면 수리비 비싼데.. 그런데 어쩌겠음. 고작 몇년 전이지만 어린 맘에 AS 맡기기는 무서워서 이때도 그냥 사용하기로 함.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;또 얼마 지나지 않아, 진짜 사고가 발생함. (2022.10)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;모니터가 100Hz도 모잘라 60Hz까지 떨어지는 것임. 짜증나는 마음으로 윈도우 포맷을 진행했음. 그렇게 다시 100Hz까지는 복구가 됐음.&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;2023~2024 언젠가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 진짜 모니터가 60Hz까지 밖에 안 나옴. 심지어 화면도 회색빛으로 변함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다행히 회색빛은 HDR 설정을 끄는 것으로 해결됐지만 주사율은 여전했음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진짜 체념하고 그냥 쭉 사용해왔음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;서칭도 하고 전자기기 카페에 질문도 하고 했지만 별다른 소득을 얻지 못함.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;구글에서 주사율 문제를 찾아보면 다들 Nvidia제어판이나 윈도우 장치 설정에서 해결하던데, 나는 그런 것들이 씨알도 먹히지 않았음.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;진짜 체념하고, 수능 끝나면 고쳐야지 하고 방치함.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 불안한 상태로 계속 써오다가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어느 날 그냥 설움이 터지기도 하고, 모니터 AS기간이 무상은 이미 만료된지 오래고 유상 AS 만료 직전이라 지푸라기 잡는 심정으로 모니터 제조사에 문의 글을 올림. AS까지 할 각오였는데 모니터 보단 케이블 불량이 더 유력하니 교체해보시라는 연락을 받음. 괜히 케이블 샀다가 여전하면 어떡하지.. 먼저 동네 컴퓨터 가게에 점검을 해볼까 싶다가도 또 공임비가 아까워서 그렇게 못함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러다가 모니터 문제는 아예 신경 안 쓰다가, 윈도우 업데이트가 안 되는 문제가 생김. 아무리 다시 시작해도 업데이트가 진행이 안 되길래, 안전 모드로 부팅해볼까? 했는데 웬걸.. 안전모드로 부팅하니까 화면 자체가 들어오지 않는 것임. 이때 바로 케이블 문제라는 것에 약간의 확신을 갖고 2024.08.06에 새로운 DP 케이블을 주문해서 2024.08.07에 받고 테스트 해본 결과, 모든 문제가 해결됨!! 최소 주문 금액을 맞추느라 겸사겸사 모니터 세정제도 같이 샀는데, 그 세정제로 얼룩도 닦아내서 새것처럼 깨끗한 화면이 됐고, 윈도우 업데이트도 여차저차 해결해서 정말로 이 글에서 언급된 모든 문제가 해결됐음. 완전 새 모니터를 산 기분임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;심지어 쿠팡에서 웰컴쿠폰으로 만원이 넘는 할인 쿠폰을 줘서 DP케이블+세정제까지 7천원정도의 가격으로 주문하고 모든 문제가 해결돼서 매우 큰 만족감을 느낌.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진작에 살 걸 그랬다. 내 지난 2~3년이라는 시간의 헛됨을 깨닫고 절망도 느꼈지만 행복이 더 큼.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 구매한 DP케이블은 &quot;코드웨이 1.4v 20핀 더미 UHD 8K premium 1.5m&quot;. 최상급 반품 제품으로 삼. 이거 무걸쇠라 편함~.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 담소 나눔터</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/50</guid>
      <comments>https://deepprogramming.tistory.com/50#entry50comment</comments>
      <pubDate>Wed, 7 Aug 2024 21:40:34 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 백준 2903, 중앙 이동 알고리즘. 격자점 풀이</title>
      <link>https://deepprogramming.tistory.com/49</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제를 수학적으로 수열로 해석해서 일반항을 구하고 싶었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 풀이는 가장 작은 단위의 정사각형 하나를 box라고 하면 모든 box에서 정중앙과 밑변, 오른쪽변 중앙 총 세 개의 점을 찍고, 마지막에 테두리를 돌며 점을 찍으면 된다고 생각했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 다음과 같은 수열을 정의하고 코드를 작성했다.&lt;/p&gt;
&lt;pre id=&quot;code_1706200283843&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a1=4
a_n+1 = a_n + 4^(n-1) * 3 + 2^(n-1) * 2

a2=4+5=9
a3=9+16=25&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706200132867&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cmath&amp;gt;

int solution(int n) {
	if (n == 0) return 0;
	int boxes = 1 * std::pow(4, n - 1);
	int newDots = boxes * 3 + std::pow(2, n - 1) * 2;
	return newDots + solution(n - 1);
}

int main() {
	int n;
	std::cin &amp;gt;&amp;gt; n;
	std::cout &amp;lt;&amp;lt; solution(n) + 4;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이는 항과 항 사이의 관계를 귀납적으로 정의한 식이었고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 간단하게 a_n을 n에 대한 식 하나로 표현하고 싶었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러다 n번 상태의 그림에서 찍히는 점들은 초기 상태의 정사각형에서 가로, 세로 모두 k등분한 후 모든 격자점들을 나타낸 것이라는 것을 보고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;k를 구하겠다고 생각했다. 가로 세로 각각 k등분하기 위해 k-1개의 직선을 긋는다고 하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기 상태는 k=1, 1번 상태는 k=2, 2번 상태는 k=4이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;n번 그림에서 n+1번째 그림으로 넘어갈 때 새로 찍히는 직선은 가로, 세로에서 각각 1개, 2개, 4개, 8개.. 라는 것을 찾았고 등비수열의 합을 이용해 n번째 그림에서의 직선 개수를 찾았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 가로, 세로에서 각각 그려지는 직선을 n개라고 하면 초기 정사각형 내부에서 만들어지는 점의 개수가 n*n개, 테두리에서 그려지는 점의 개수가 n*4라는 것을 이용해 특정 회차에서 초기에 비해 증가한 점의 수를 출력해주는 solution을 작성했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;solution의 결과 + 4를 하면 정답이 된다..&lt;/p&gt;
&lt;pre id=&quot;code_1706200739247&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
b_n = (2^(n-1) - 1) * ((2^(n-1) - 1) + 4)
*/&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706200118808&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cmath&amp;gt;

int solution(int n) {
	int lines = std::pow(2, n - 1) - 1;
	int res = lines * (lines + 4);
	return res;
}

int main() {
	int n;
	std::cin &amp;gt;&amp;gt; n;
	std::cout &amp;lt;&amp;lt; solution(n + 1) + 4;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>2903</category>
      <category>C</category>
      <category>CPP</category>
      <category>백준</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/49</guid>
      <comments>https://deepprogramming.tistory.com/49#entry49comment</comments>
      <pubDate>Fri, 26 Jan 2024 01:39:31 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] C++17 `if` statement with initialization. 유용한 if문 조건 편하게 쓰는 법</title>
      <link>https://deepprogramming.tistory.com/48</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;PowerToys 사용 중 한국어 오타를 발견하고 Github 레포지토리에 이슈를 등록했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;심심해서 소스코드를 아무거나 열어봤는데 눈에 띄는 부분을 발견했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;120&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/PowerToys/blob/42cfb469e73eaf56a35ffb00a1b11bb1781b0179/src/runner/main.cpp#L164-L168&quot; target=&quot;_blank&quot; title=&quot;클릭해서 코드 보기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dT8YIh/btsDA62JBDH/JIO6QGQcZQyTnnvSICw9D0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdT8YIh%2FbtsDA62JBDH%2FJIO6QGQcZQyTnnvSICw9D0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;350&quot; height=&quot;120&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/a&gt;&lt;figcaption&gt;github.com/microsoft/PowerToys&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if 안에 변수 선언이 들어간 코드를 봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;궁금해서 찾아보았더니 저렇게 쓰는 건 원래 가능했고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;`;` 으로 초기화식이랑 조건식을 동시에 넣을 수 있는 기능을 C++17에서부터 지원한다고 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1705511576207&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

int inputNum() {
	int n;
    std::cin &amp;gt;&amp;gt; n;
    return n;
}

int main() {
	if (int n = inputNum(); n &amp;gt; 5) {
		std::cout &amp;lt;&amp;lt; &quot;n is greater than 5&quot; &amp;lt;&amp;lt; std::endl;
	} else if (n == 5) {
		std::cout &amp;lt;&amp;lt; &quot;n equals to 5&quot; &amp;lt;&amp;lt; std::endl;
	} else {
		std::cout &amp;lt;&amp;lt; &quot;n is less than 5&quot; &amp;lt;&amp;lt; std::endl;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++은 정말 뭐가 많다.. if에 이런 기능도 있었네.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kyH9r/btsDyNW4D6Z/qfBFvDNywmeNSbm1HjlKr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kyH9r/btsDyNW4D6Z/qfBFvDNywmeNSbm1HjlKr0/img.png&quot; data-alt=&quot;cppreference.com&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kyH9r/btsDyNW4D6Z/qfBFvDNywmeNSbm1HjlKr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkyH9r%2FbtsDyNW4D6Z%2FqfBFvDNywmeNSbm1HjlKr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;679&quot; height=&quot;181&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;204&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;cppreference.com&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몰라도 코드 짜는 데 문제는 없지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안 다면 아는 척하면서 간지나는 C++ 코드를 쓸 수 있을 듯.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언제 한번 다 정리해봐야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C</category>
      <category>C++</category>
      <category>C++17</category>
      <category>if-with-initialization</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/48</guid>
      <comments>https://deepprogramming.tistory.com/48#entry48comment</comments>
      <pubDate>Thu, 18 Jan 2024 02:14:17 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 백준 1966번 C/C++ 풀이 (테스트 케이스 제공)</title>
      <link>https://deepprogramming.tistory.com/47</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;글 맨 아래에 테스트 케이스가 있으니, 정답을 읽기 전에 다시 한 번 도전해보시는 것도 좋습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 현실에서 해당 작업을 한다면 어떻게 할지 고민해보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 중요도가 큰 문서가 나올 때까지 문서들을 제치면 될 것이고, 그것을 코드로 구현하려고 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 C++에서 배열을 통해 배열의 요소들을 이동 시키는 것은 시간복잡도가 큰 작업으로 성능 저하가 우려되어,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배열의 요소들은 고정시키고, indicator 역할을 하는 변수를 배열의 끝을 만났을 때 처음으로 돌아가는 식으로 구현했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문서를 인쇄하는 것은, 더 이상 최댓값 탐색에 영향을 끼치지 않게 배열 요소 값을 -1로 변경하는 형태로 구현했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 코드는 머릿속에서 떠올리는 대로 작성한 처음 풀이입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;풀이1)&lt;/p&gt;
&lt;pre id=&quot;code_1689360598081&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

int* my_max_element(int* arr, int begin, int end) {
	int* maxptr = arr;
	int max = *maxptr;

	for (int* p = arr; p &amp;lt; arr + end; p++) {
		if (*p &amp;gt; max) {
			maxptr = p;
			max = *p;
		} else if (*p == max &amp;amp;&amp;amp; (maxptr - arr) &amp;lt; begin) {
			maxptr = p;
		}
	}

	return maxptr;
}

int main() {
	int cases; // 테스트 케이스의 수
	std::cin &amp;gt;&amp;gt; cases;

	for (int i = 0; i &amp;lt; cases; i++) {
		int length, entry; // 문서의 개수와 몇 번째로 인쇄됐는지 궁금한 문서 번호 
		std::cin &amp;gt;&amp;gt; length &amp;gt;&amp;gt; entry;
		int* arr = new int[length];
		for (int j = 0; j &amp;lt; length; j++) {
			std::cin &amp;gt;&amp;gt; arr[j]; // 문서들의 중요도 입력
		}

		int begins = 0; // 중요도 최대가 아닌 문서를 뒤로 넘긴다고 가정했을 때 처음 위치.
		int cnt = 0; // 여태 인쇄한 문서 수

		while (1) {
        	// 중요도 최대값 찾기
			int* maxptr = my_max_element(arr, begins, length); 
			int maxpos = (maxptr - arr);

			// 굳이 필요 없어도 될 거 같긴 함.
			if (*maxptr &amp;lt; 0) {
				break;
			}

			if (begins == maxpos) { // 현재 조사할 문서랑 최대값이 같다면
				*maxptr = -1; // 인쇄 처리하고
				cnt++; // 횟수 하나 늘리고
				if (begins == entry) { // 현재 조사할 문서가 원래 궁금했던 문서라면
					break; // 탈출
				}
				if (begins &amp;gt;= length - 1) begins = 0; // 끝을 만나면 처음으로 
			} else {
				if (begins &amp;lt; length - 1) { // 가리키고 있는 값이 최대값이 아닐 때
					begins++; // 다음 칸으로 이동
				} else begins = 0; // 마지막 칸이면 처음으로 이동
			}
		}
		std::cout &amp;lt;&amp;lt; cnt &amp;lt;&amp;lt; std::endl;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code class=&quot;codeline&quot;&gt;my_max_element&lt;/code&gt; 함수는 유일한 최댓값이 있다면 해당 값의 주소를, 같은 값으로 여러 개 존재한다면 특정 위치 P를 기준으로 P 오른쪽에서 처음 발견된 것의 위치를 반환하는 함수입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작은 문서들을 맨 뒤로 넘기면서 작업할 때 기준으로, 최댓값을 찾는 방식입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 &lt;code class=&quot;codeline&quot;&gt;std::max_element&lt;/code&gt;를 문제 상황에 맞게 개조했다고 생각하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;풀이1에서는, &lt;code class=&quot;codeline&quot;&gt;begins&lt;/code&gt; 를 늘리거나 되돌리는 코드가 두 곳이나 존재한다는 게 불편했고, 이를 고치고자 시도했지만 저 부분만 수정하기엔 힘들 거 같았스니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떻게 더 깔끔하게 구현할 수 있을지 고민하다가, 그냥 최대값 순서대로 지우고 여러 개의 최대값이 발견되면 앞쪽에 있는 것 먼저 지우면 된다는 걸 깨닫고 다시 코드를 짜기 시작했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;풀이2) 변경된 while문만 첨부합니다&lt;/p&gt;
&lt;pre id=&quot;code_1689363662140&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;while (1) {
	// 최대값 찾고
    int* maxptr = my_max_element(arr, begins, length);
    int maxpos = (maxptr - arr);

	// 인쇄 처리
    *maxptr = 0;
    cnt++;

	// 새 최대값 찾고 다음 루프에서 그 위치 기준으로 다시 탐색
    int newMaxp = my_max_element(arr, (maxpos &amp;gt;= length - 1 ? 0 : maxpos), length) - arr;
    begins = newMaxp &amp;lt;= maxpos ? 0 : maxpos;

	// 원래 찾던 문서라면 종료
    if (maxpos == entry) {
        std::cout &amp;lt;&amp;lt; cnt &amp;lt;&amp;lt; std::endl;
        break;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code class=&quot;codeline&quot;&gt;my_max_element&lt;/code&gt;를 한 번 더 호출하는 방식이라 효율성이 증가한 거 같진 않지만 좀 짧아져서 만족하는 코드..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 시간이 되면 다른 방법을 찾아봐야겠음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 문제에 제시된 예시로는 잘 통과되는데, 막상 채점하면 틀려버리는 슬픈 분들을 위해서..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 썼던 테스트 케이스들을 공유해드림.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 채점에 사용되는 거랑 차이가 있겠지만 도움이 될 것이라고 생각합니다,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맨 위에 세 개는 백준에도 써있는 입력 예시입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;br /&gt;4&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;2&amp;nbsp;3&amp;nbsp;4&lt;br /&gt;6&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;1&amp;nbsp;9&amp;nbsp;1&amp;nbsp;1&amp;nbsp;1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;1&amp;nbsp;8&amp;nbsp;9&amp;nbsp;5&amp;nbsp;2&amp;nbsp;3 &lt;br /&gt;7&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&amp;nbsp;6&amp;nbsp;1&amp;nbsp;2&amp;nbsp;9&amp;nbsp;3&amp;nbsp;4 &lt;br /&gt;8&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;6&amp;nbsp;3&amp;nbsp;4&amp;nbsp;3&amp;nbsp;6&amp;nbsp;8&amp;nbsp;9 &lt;br /&gt;8 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1 6 3 4 3 6 8 9&lt;br /&gt;8&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;6&amp;nbsp;3&amp;nbsp;3&amp;nbsp;3&amp;nbsp;6&amp;nbsp;8&amp;nbsp;9 &lt;br /&gt;8&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;6&amp;nbsp;3&amp;nbsp;3&amp;nbsp;3&amp;nbsp;6&amp;nbsp;8&amp;nbsp;9 &lt;br /&gt;8&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;6&amp;nbsp;3&amp;nbsp;3&amp;nbsp;3&amp;nbsp;6&amp;nbsp;8&amp;nbsp;9 &lt;br /&gt;9&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;6&amp;nbsp;3&amp;nbsp;4&amp;nbsp;3&amp;nbsp;6&amp;nbsp;3&amp;nbsp;8&amp;nbsp;9 &lt;br /&gt;9&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;6&amp;nbsp;3&amp;nbsp;4&amp;nbsp;3&amp;nbsp;6&amp;nbsp;3&amp;nbsp;8&amp;nbsp;9 &lt;br /&gt;9&amp;nbsp;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;6&amp;nbsp;3&amp;nbsp;4&amp;nbsp;3&amp;nbsp;6&amp;nbsp;3&amp;nbsp;8&amp;nbsp;9&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;올바른 출력 결과는 위에서부터 순서대로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1 &lt;br /&gt;2 &lt;br /&gt;5 &lt;br /&gt;6 &lt;br /&gt;7 &lt;br /&gt;7 &lt;br /&gt;8 &lt;br /&gt;5 &lt;br /&gt;6 &lt;br /&gt;7 &lt;br /&gt;6 &lt;br /&gt;8 &lt;br /&gt;7&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C</category>
      <category>C++</category>
      <category>`1966</category>
      <category>반례</category>
      <category>백준</category>
      <category>테스트케이스</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/47</guid>
      <comments>https://deepprogramming.tistory.com/47#entry47comment</comments>
      <pubDate>Sat, 15 Jul 2023 05:21:26 +0900</pubDate>
    </item>
    <item>
      <title>Visual Studio 빌드 실패 시 대화창 띄우기 / 숨기기</title>
      <link>https://deepprogramming.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;도구 메뉴에서 옵션을 클릭한다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;407&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/psW33/btr5BJZ8ntl/lHlWm0Nm4wkrdLoFIhNVfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/psW33/btr5BJZ8ntl/lHlWm0Nm4wkrdLoFIhNVfk/img.png&quot; data-alt=&quot;또는 단축키 Ctrl + ,&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/psW33/btr5BJZ8ntl/lHlWm0Nm4wkrdLoFIhNVfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpsW33%2Fbtr5BJZ8ntl%2FlHlWm0Nm4wkrdLoFIhNVfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;333&quot; height=&quot;407&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;407&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;또는 단축키 Ctrl + ,&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 및 솔루션 -&amp;gt; 빌드 및 실행에 해당 설정이 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eb33bW/btr5t87QkSa/rFFuek4EgnK7FPAhUealv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eb33bW/btr5t87QkSa/rFFuek4EgnK7FPAhUealv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eb33bW/btr5t87QkSa/rFFuek4EgnK7FPAhUealv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feb33bW%2Fbtr5t87QkSa%2FrFFuek4EgnK7FPAhUealv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;347&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서부터 순서대로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1) 대화창 없이 기존 코드 빌드본 실행하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2) 대화창 없이 오류만 뿜기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3) 대화창 띄우기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;107&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHpcDu/btr5C4QuCFa/x8xufXwbCeIZokACKDp0Uk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHpcDu/btr5C4QuCFa/x8xufXwbCeIZokACKDp0Uk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHpcDu/btr5C4QuCFa/x8xufXwbCeIZokACKDp0Uk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHpcDu%2Fbtr5C4QuCFa%2Fx8xufXwbCeIZokACKDp0Uk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;107&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;107&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 대화창은 이거다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;440&quot; data-origin-height=&quot;163&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DFA26/btr5shcSCjn/0BrAl5pnZ9UKzZDbWsLcWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DFA26/btr5shcSCjn/0BrAl5pnZ9UKzZDbWsLcWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DFA26/btr5shcSCjn/0BrAl5pnZ9UKzZDbWsLcWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDFA26%2Fbtr5shcSCjn%2F0BrAl5pnZ9UKzZDbWsLcWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;440&quot; height=&quot;163&quot; data-origin-width=&quot;440&quot; data-origin-height=&quot;163&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>visualstudio</category>
      <category>대화창</category>
      <category>빌드실패오류</category>
      <category>빌드오류가발생했습니다</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/46</guid>
      <comments>https://deepprogramming.tistory.com/46#entry46comment</comments>
      <pubDate>Thu, 23 Mar 2023 23:01:34 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 백준 1436번 C/C++ 풀이</title>
      <link>https://deepprogramming.tistory.com/45</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;첫 숫자인 666부터 하나씩 더해 cnt번째 666을 포함하는 숫자를 찾는 코드를 쓰면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1668078130710&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;

int main() {
	int n;
	std::cin &amp;gt;&amp;gt; n;

	int title = 666;
	int cnt = 1;

	while (cnt &amp;lt; n) {
		int check = ++title;

		// has 666
		while (check &amp;gt; 1000 &amp;amp;&amp;amp; check % 1000 != 666 &amp;amp;&amp;amp; (check /= 10));
		if (check % 1000 == 666) {
			cnt++;
		}
	}
	std::cout &amp;lt;&amp;lt; title;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세 자리 수 중 666이 아니면 확인해볼 필요도 없이 조건에 거짓이므로 check &amp;gt; 1000 이라는 조건과 함께 한 자리씩 빼면서 666이 나오는지 확인하는 코드이다.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/45</guid>
      <comments>https://deepprogramming.tistory.com/45#entry45comment</comments>
      <pubDate>Thu, 10 Nov 2022 20:04:35 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 백준 1159번 C++ 풀이</title>
      <link>https://deepprogramming.tistory.com/44</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;장황한 문제와 다르게 굉장히 난이도 쉬운 간단한 문제..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 문자열 몇 개 입력받아서 첫 글자에 사용된 알파벳 수 구하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5회 이상인 게 있냐 없냐를 따지면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1667221127947&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

int main() {
	int alphabets[26] = { 0 }; // 알파벳 사용된 횟수 저장
	char offset = 'a'; // 소문자 ascii 첫 글자 

	std::string entries = &quot;&quot;; // 5회 이상 사용된 문자들
	entries.reserve(10);

	int n;
	std::cin &amp;gt;&amp;gt; n;

	for (int i = 0; i &amp;lt; n; i++) {
		std::string str;
		std::cin &amp;gt;&amp;gt; str;
		alphabets[str[0] - offset]++; // 알파벳 카운트
	}

	for (int i = 0; i &amp;lt; 26; i++) {
		if (alphabets[i] &amp;gt;= 5) { // 5회 이상이면
			entries.push_back(offset + i); // 결과에 포함
		}
	}

	if (entries.length() &amp;gt;= 1) {
		std::cout &amp;lt;&amp;lt; entries; // 한 글자라도 있으면 출력
	} else {
		std::cout &amp;lt;&amp;lt; &quot;PREDAJA&quot;; // 없으면 기권
	}
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/44</guid>
      <comments>https://deepprogramming.tistory.com/44#entry44comment</comments>
      <pubDate>Mon, 31 Oct 2022 22:00:54 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기능사 필기 후기</title>
      <link>https://deepprogramming.tistory.com/43</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;공부는 이기적 정보처리기능사 필기 문제집 책으로 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오탈자가 꽤나 많이 보여서 아쉬웠다..T_T 의미가 완전 다르게 해석되는 오타도 있어서 영상 강의를 보지 않았다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘못 공부했을터..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고사일 한 달 전에 접수를 했지만 게을러서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시험 이틀 전부터 문제집에 있는 개념들과 영상 강의만 정주행하면서 벼락치기를 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래밍 경험으로 인한 기본 배경지식 + 기능사의 쉬운 난이도 덕에 73점을 받고 일단 필기 합격을 했다. (100점 만점에 60점부터 합격)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 책 살 때 잘 모르고 사서 필기 기출문제집을 사는 바람에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책을 펼쳐보고 당황했는데, 새로 공부하는 분은 다른 기본서나 자습서로 내용을 잘 숙지한 후 기출문제집을 봐야 효율적일 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자기가 취미로라도 코딩 짬밥이 있다면 어렵지 않을듯.&lt;/p&gt;</description>
      <category>IT 담소 나눔터</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/43</guid>
      <comments>https://deepprogramming.tistory.com/43#entry43comment</comments>
      <pubDate>Sat, 3 Sep 2022 15:02:12 +0900</pubDate>
    </item>
    <item>
      <title>[Minecraft] 마인크래프트 월드 플레이어 데이터 지우기 (UME, Universal Minecraft Editor)</title>
      <link>https://deepprogramming.tistory.com/42</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;월드는 그대로 보존한 채 플레이어 데이터만 지우고 싶은 경우가 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 월드를 백업해놓았다면 백업본을 사용하면 되지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇지 못한 경우라면 월드에서 플레이어의 데이터만 지울 수 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 프로그램을 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.universalminecrafteditor.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.universalminecrafteditor.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1658937071996&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Universal Minecraft Editor&quot; data-og-description=&quot;EASY NBT EDITOR Edit all the data stored in your world quickly and easily with the most intuitive NBT editor available.&quot; data-og-host=&quot;www.universalminecrafteditor.com&quot; data-og-source-url=&quot;https://www.universalminecrafteditor.com/&quot; data-og-url=&quot;https://www.universalminecrafteditor.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/4wVYt/hyPePm5q7b/NyJQT1wYKAKBKxb40KKyGK/img.png?width=839&amp;amp;height=792&amp;amp;face=0_0_839_792&quot;&gt;&lt;a href=&quot;https://www.universalminecrafteditor.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.universalminecrafteditor.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/4wVYt/hyPePm5q7b/NyJQT1wYKAKBKxb40KKyGK/img.png?width=839&amp;amp;height=792&amp;amp;face=0_0_839_792');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Universal Minecraft Editor&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;EASY NBT EDITOR Edit all the data stored in your world quickly and easily with the most intuitive NBT editor available.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.universalminecrafteditor.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 시작 화면에서 원하는 플랫폼을 고른다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;710&quot; data-origin-height=&quot;530&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckaNqg/btrIjNrwXF0/MMTiojVYIIDrWhgO5k6bYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckaNqg/btrIjNrwXF0/MMTiojVYIIDrWhgO5k6bYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckaNqg/btrIjNrwXF0/MMTiojVYIIDrWhgO5k6bYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckaNqg%2FbtrIjNrwXF0%2FMMTiojVYIIDrWhgO5k6bYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;710&quot; height=&quot;530&quot; data-origin-width=&quot;710&quot; data-origin-height=&quot;530&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;월드를 선택한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 마인크래프트 앱에서도 보이는 월드를 목록에 보여주고 (1)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 경로에 있는 월드를 선택할 수도 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F7lRi/btrIlym3WD4/YLva1PwkLpiqonIcOqWr8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F7lRi/btrIlym3WD4/YLva1PwkLpiqonIcOqWr8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F7lRi/btrIlym3WD4/YLva1PwkLpiqonIcOqWr8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF7lRi%2FbtrIlym3WD4%2FYLva1PwkLpiqonIcOqWr8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;330&quot; height=&quot;400&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) 는 월드 디렉터리를 고를 수 있고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) 은 *.mcworld 파일을 불러올 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Players 목록에서 &lt;b&gt;Ctrl + A&lt;/b&gt; 를 눌러 모두 선택한 후&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;723&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwM2lu/btrIksUGO2c/wztEBiiahhk2nqUPWPab9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwM2lu/btrIksUGO2c/wztEBiiahhk2nqUPWPab9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwM2lu/btrIksUGO2c/wztEBiiahhk2nqUPWPab9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwM2lu%2FbtrIksUGO2c%2FwztEBiiahhk2nqUPWPab9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;858&quot; height=&quot;723&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;723&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KmHxU/btrIpucInm2/YkoUAelxeEPcwjYKpOM7L1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KmHxU/btrIpucInm2/YkoUAelxeEPcwjYKpOM7L1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KmHxU/btrIpucInm2/YkoUAelxeEPcwjYKpOM7L1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKmHxU%2FbtrIpucInm2%2FYkoUAelxeEPcwjYKpOM7L1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;368&quot; height=&quot;346&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우클릭 -&amp;gt; Delete를 눌러준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장을 해야하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) 은 해당 월드를 외부 경로에 내보내기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) 는 외부에 따로 내보내지 않고 원본 월드에 그대로 덮어쓰는 방법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플레이어 데이터가 남아있는 월드도 보존해야 한다면 Save to PC를 선택하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;201&quot; data-origin-height=&quot;322&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmO1t2/btrIjOYjNVw/4jkt5eRTKUbKeMs525ZPDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmO1t2/btrIjOYjNVw/4jkt5eRTKUbKeMs525ZPDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmO1t2/btrIjOYjNVw/4jkt5eRTKUbKeMs525ZPDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmO1t2%2FbtrIjOYjNVw%2F4jkt5eRTKUbKeMs525ZPDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;201&quot; height=&quot;322&quot; data-origin-width=&quot;201&quot; data-origin-height=&quot;322&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Minecraft</category>
      <category>Be</category>
      <category>bedrock</category>
      <category>minecraft</category>
      <category>UME</category>
      <category>Universal Minecraft Editor</category>
      <category>windows10</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/42</guid>
      <comments>https://deepprogramming.tistory.com/42#entry42comment</comments>
      <pubDate>Thu, 28 Jul 2022 01:04:28 +0900</pubDate>
    </item>
    <item>
      <title>Tistory 블로그 개인 도메인 설정하기</title>
      <link>https://deepprogramming.tistory.com/41</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;(0) 서론&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 .kr 도메인을 사용하다가 (3년치 구매했는데..)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.dev 도메인에 홀려서 새로 구매하게 됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.dev 같은 경우 Google Domains에서 사면 더 싼 데 모르고 whois에서 사서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;호구가 됐지만,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.dev 도메인이라니 만족하면서, 다음 번엔 Google Domains로 이전할 생각이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(1) 직접 네임서버 고급 설정 하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㄱ)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;whois 홈에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인 활용 / 부가서비스 -&amp;gt; 네임 서버 고급설정 클릭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 기관에서도 DNS 설정, 레코드 설정 같은 메뉴를 클릭하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1032&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/edE4dR/btrH9Hxywwy/OGmFppokaiEifpPp2NM0Pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/edE4dR/btrH9Hxywwy/OGmFppokaiEifpPp2NM0Pk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/edE4dR/btrH9Hxywwy/OGmFppokaiEifpPp2NM0Pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FedE4dR%2FbtrH9Hxywwy%2FOGmFppokaiEifpPp2NM0Pk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1032&quot; height=&quot;443&quot; data-origin-width=&quot;1032&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㄴ)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인 선택.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ys35i/btrIc9NpGIo/boxkJlHGeoB5XoxqoyTteK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ys35i/btrIc9NpGIo/boxkJlHGeoB5XoxqoyTteK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ys35i/btrIc9NpGIo/boxkJlHGeoB5XoxqoyTteK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fys35i%2FbtrIc9NpGIo%2FboxkJlHGeoB5XoxqoyTteK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;825&quot; height=&quot;381&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㄷ)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;870&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZxcmF/btrH5ebP0pp/sdZF5AumGChSfYtVEcdeAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZxcmF/btrH5ebP0pp/sdZF5AumGChSfYtVEcdeAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZxcmF/btrH5ebP0pp/sdZF5AumGChSfYtVEcdeAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZxcmF%2FbtrH5ebP0pp%2FsdZF5AumGChSfYtVEcdeAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;738&quot; height=&quot;332&quot; data-origin-width=&quot;870&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㄹ)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Tistory 블로그에 개인 도메인을 연결하기 위해서는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인의 레코드 설정을 건드려야 하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A 레코드를 설정하는 방법과&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CNAME 레코드를 설정하는 방법이 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CNAME 레코드가 조금 더 편리하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;후이즈 도메인의 경우 호스트명에 www 같은 서브도메인이 붙지 않아도 CNAME 레코드를 설정할 수 있지만, 일부 기관의 경우 지원하지 않는 네임서버도 있다고 하니, 그럴 때는 A 레코드를 설정해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 CNAME 레코드를 설정하는 방법이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;1112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwqVHs/btrIcHKnmZm/EhwMLJhmyDHy0KSBB1ToAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwqVHs/btrIcHKnmZm/EhwMLJhmyDHy0KSBB1ToAK/img.png&quot; data-alt=&quot;후이즈는 루트도메인 CNAME 레코드를 지원한다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwqVHs/btrIcHKnmZm/EhwMLJhmyDHy0KSBB1ToAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwqVHs%2FbtrIcHKnmZm%2FEhwMLJhmyDHy0KSBB1ToAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;799&quot; height=&quot;1112&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;1112&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;후이즈는 루트도메인 CNAME 레코드를 지원한다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 단계를 누르고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신청 버튼을 누르면 완료.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;루트 도메인에 CNAME 레코드 설정이 불가능한 기관에서 구매했다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A레코드를 설정해주자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;i&gt;blog.deepcode.dev와 같이 서브도메인으로 하고 싶다면 CNAME을 사용해도 된다.&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A레코드는 Tistory에서 IP가 바뀔 때마다 이 레코드 설정도 갱신해줘야 한다. (CNAME은 그럴 필요 없다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;17.10.13 에 변경돼서 22.07.25 현재까지는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;27.0.236.139&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 입력하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;716&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfXdic/btrH74GCffV/dhQORBrKoRemW7r4JX1EH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfXdic/btrH74GCffV/dhQORBrKoRemW7r4JX1EH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfXdic/btrH74GCffV/dhQORBrKoRemW7r4JX1EH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfXdic%2FbtrH74GCffV%2FdhQORBrKoRemW7r4JX1EH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;716&quot; height=&quot;202&quot; data-origin-width=&quot;716&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관련 내용은 아래서도 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://notice.tistory.com/1784&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://notice.tistory.com/1784&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1658727043528&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;개인 도메인(2차 블로그 주소) 사용을 위한 DNS 설정하기&quot; data-og-description=&quot;티스토리에서는 티스토리 블로그를 통해 블로거 여러분이 자신만의 브랜드를 만들고 활동할 수 있도록 개인 도메인 연결 기능을 지원하고 있습니다. 나에게 어울리는 도메인을 가지고 있다면 &quot; data-og-host=&quot;notice.tistory.com&quot; data-og-source-url=&quot;https://notice.tistory.com/1784&quot; data-og-url=&quot;https://notice.tistory.com/1784&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/owIXk/hyPc45mMBe/HOg6NyjvfzzCvbkAbUgu61/img.png?width=800&amp;amp;height=113&amp;amp;face=0_0_800_113,https://scrap.kakaocdn.net/dn/6od30/hyPbTRT704/01WaeLd5WwwlI8ChLVSof0/img.png?width=800&amp;amp;height=113&amp;amp;face=0_0_800_113,https://scrap.kakaocdn.net/dn/YjMCg/hyPbTj4aUE/mcVJnFYmFxaYHWRHBLsBe0/img.png?width=800&amp;amp;height=810&amp;amp;face=0_0_800_810&quot;&gt;&lt;a href=&quot;https://notice.tistory.com/1784&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://notice.tistory.com/1784&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/owIXk/hyPc45mMBe/HOg6NyjvfzzCvbkAbUgu61/img.png?width=800&amp;amp;height=113&amp;amp;face=0_0_800_113,https://scrap.kakaocdn.net/dn/6od30/hyPbTRT704/01WaeLd5WwwlI8ChLVSof0/img.png?width=800&amp;amp;height=113&amp;amp;face=0_0_800_113,https://scrap.kakaocdn.net/dn/YjMCg/hyPbTj4aUE/mcVJnFYmFxaYHWRHBLsBe0/img.png?width=800&amp;amp;height=810&amp;amp;face=0_0_800_810');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;개인 도메인(2차 블로그 주소) 사용을 위한 DNS 설정하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;티스토리에서는 티스토리 블로그를 통해 블로거 여러분이 자신만의 브랜드를 만들고 활동할 수 있도록 개인 도메인 연결 기능을 지원하고 있습니다. 나에게 어울리는 도메인을 가지고 있다면&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;notice.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(2) 외부 서비스 도메인 연결 (whois 한정)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;whois는 자동으로 이런 설정을 해주는 기능이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5번 옵션을 클릭하자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;404&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nInMb/btrH5afyLzM/Ysr7hNnJiJ7CUlgpODPdU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nInMb/btrH5afyLzM/Ysr7hNnJiJ7CUlgpODPdU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nInMb/btrH5afyLzM/Ysr7hNnJiJ7CUlgpODPdU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnInMb%2FbtrH5afyLzM%2FYsr7hNnJiJ7CUlgpODPdU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;782&quot; height=&quot;329&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;404&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;똑같이 도메인 선택하고 티스토리 블로그 연결을 누르면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/StpA2/btrIaQHSUb4/ONhVFlKIRSHqdGozgvmDfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/StpA2/btrIaQHSUb4/ONhVFlKIRSHqdGozgvmDfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/StpA2/btrIaQHSUb4/ONhVFlKIRSHqdGozgvmDfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FStpA2%2FbtrIaQHSUb4%2FONhVFlKIRSHqdGozgvmDfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;761&quot; height=&quot;453&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 위에서 레코드 설정을 했다면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 개를 동시에 하는 것은 불가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 '외부 서비스 도메인 연결'을 하면 www 서브도메인으로 등록된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;(www면 크게 신경 안 써도 되겠지만)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UWoZc/btrIcH4JlGw/9yYHWhvsxbWt5gFeFgHBH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UWoZc/btrIcH4JlGw/9yYHWhvsxbWt5gFeFgHBH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UWoZc/btrIcH4JlGw/9yYHWhvsxbWt5gFeFgHBH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUWoZc%2FbtrIcH4JlGw%2F9yYHWhvsxbWt5gFeFgHBH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;387&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>IT 담소 나눔터</category>
      <category>.dev</category>
      <category>googledomains</category>
      <category>tistory</category>
      <category>whois</category>
      <category>도메인</category>
      <category>도메인연결</category>
      <category>티스토리</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/41</guid>
      <comments>https://deepprogramming.tistory.com/41#entry41comment</comments>
      <pubDate>Mon, 25 Jul 2022 14:39:30 +0900</pubDate>
    </item>
    <item>
      <title>[Go] vscode에서 디버깅 중 콘솔에 입력받기</title>
      <link>https://deepprogramming.tistory.com/40</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Go를 처음 설치하고 구글링한대로 환경 세팅을 하다보니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디버깅을 `디버그 콘솔`에서 하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Go문법에도 익숙해질 겸 간단한 콘솔에서 하는 게임을 만드는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키보드로 입력받기가 힘들어서 일반 터미널에서 디버깅 하는 법을 찾아봤다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.vscode\launch.json 을 아래처럼 해주면 된다&lt;/p&gt;
&lt;pre id=&quot;code_1656951281285&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;version&quot;: &quot;0.2.0&quot;,
    &quot;configurations&quot;: [
        {
            &quot;name&quot;: &quot;Launch&quot;,
            &quot;type&quot;: &quot;go&quot;,
            &quot;request&quot;: &quot;launch&quot;,
            &quot;mode&quot;: &quot;auto&quot;,
            &quot;console&quot;: &quot;integratedTerminal&quot;,
            &quot;program&quot;: &quot;${workspaceFolder}&quot;
        }
    ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저기 저 &quot;console&quot;을 integratedTerminal로 해주면 우리가 원하는 대로&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2liVe/btrGthnBxY2/dMSYKkRJy0skK4okp1n8j0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2liVe/btrGthnBxY2/dMSYKkRJy0skK4okp1n8j0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2liVe/btrGthnBxY2/dMSYKkRJy0skK4okp1n8j0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2liVe%2FbtrGthnBxY2%2FdMSYKkRJy0skK4okp1n8j0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;923&quot; height=&quot;340&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;콘솔에서 디버깅을 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/mdisprgm/goball&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/mdisprgm/goball&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1656951374486&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - mdisprgm/goball&quot; data-og-description=&quot;Contribute to mdisprgm/goball development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/mdisprgm/goball&quot; data-og-url=&quot;https://github.com/mdisprgm/goball&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dL0fHo/hyOYkbehXS/P1ZOejVoYPreRaH7DPJTC1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/mdisprgm/goball&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/mdisprgm/goball&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dL0fHo/hyOYkbehXS/P1ZOejVoYPreRaH7DPJTC1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - mdisprgm/goball&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to mdisprgm/goball development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/Go</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/40</guid>
      <comments>https://deepprogramming.tistory.com/40#entry40comment</comments>
      <pubDate>Tue, 5 Jul 2022 01:16:15 +0900</pubDate>
    </item>
    <item>
      <title>윈도우11 캡쳐 도구 임시 저장 폴더 (Win + Shift + S)</title>
      <link>https://deepprogramming.tistory.com/39</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;단축키&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Win&lt;/b&gt; +&lt;b&gt; Shift &lt;/b&gt;+&lt;b&gt; S&amp;nbsp;&lt;/b&gt;를 눌러서 간편하게 컴퓨터 화면을 캡쳐 할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 클립보드에 복사하는 것이 아니라 파일을 저장해야 한다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매번 경로를 설정하고 저장하는 것이 번거로울 수 있다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럴 땐 자동으로 저장되는 경로를 따라가면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최신 버전:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;567&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHrCNs/btsJrx01NfX/i2LA9949bXgKcxLMzcSnjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHrCNs/btsJrx01NfX/i2LA9949bXgKcxLMzcSnjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHrCNs/btsJrx01NfX/i2LA9949bXgKcxLMzcSnjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHrCNs%2FbtsJrx01NfX%2Fi2LA9949bXgKcxLMzcSnjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;597&quot; height=&quot;435&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;567&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;스크린샷 자동 저장 옵션이 활성화 되어 있다면,&lt;/p&gt;
&lt;pre id=&quot;code_1716914965495&quot; class=&quot;taggerscript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;%USERPROFILE%\Pictures\Screenshots&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;또는&lt;/p&gt;
&lt;pre id=&quot;code_1716914965495&quot; class=&quot;taggerscript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;%USERPROFILE%\Pictures\스크린샷&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;활성화 되어 있지 않다면&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1716914965496&quot; class=&quot;taggerscript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;%localappdata%\Packages\Microsoft.ScreenSketch_8wekyb3d8bbwe\TempState\Snips&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;에 저장된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-------------------&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;캡쳐와 동시에 직접 설정한 경로에 저장되는 기능은 없는 것 같고&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;임시 폴더에 찾아갈 수 있다.&lt;/s&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1649673763154&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;%localappdata%\Packages\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\TempState\ScreenClip&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;위 경로로 가면 사진들이 저장되어 있을 것이다.&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-------------------&lt;/p&gt;</description>
      <category>IT 담소 나눔터</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/39</guid>
      <comments>https://deepprogramming.tistory.com/39#entry39comment</comments>
      <pubDate>Mon, 11 Apr 2022 19:43:01 +0900</pubDate>
    </item>
    <item>
      <title>비주얼 스튜디오 구조 안내선 끄는 법 (중괄호마다 파선 있는 거)</title>
      <link>https://deepprogramming.tistory.com/38</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;44&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byVj7s/btrxiW6D5Pr/s5okrwmsPOArkOMficVRr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byVj7s/btrxiW6D5Pr/s5okrwmsPOArkOMficVRr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byVj7s/btrxiW6D5Pr/s5okrwmsPOArkOMficVRr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyVj7s%2FbtrxiW6D5Pr%2Fs5okrwmsPOArkOMficVRr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;60&quot; height=&quot;332&quot; data-origin-width=&quot;44&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저런 파선들은 커서의 위치가 어떤 스코프에 있는지 눈으로 확인하기 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 불편하다면 끌 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;409&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vpSxK/btrxj6AKPXH/QwPA4zO6DD8k9c6PiCjL2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vpSxK/btrxj6AKPXH/QwPA4zO6DD8k9c6PiCjL2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vpSxK/btrxj6AKPXH/QwPA4zO6DD8k9c6PiCjL2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvpSxK%2Fbtrxj6AKPXH%2FQwPA4zO6DD8k9c6PiCjL2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;409&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;409&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단축키는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Ctrl + ,&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 텍스트 편집기 -&amp;gt; 일반 -&amp;gt; 구조 안내선 표시 를 비활성화 해주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;762&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vIUHn/btrxivIacjr/IeVfEKJFxbow6wFspdHLuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vIUHn/btrxivIacjr/IeVfEKJFxbow6wFspdHLuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vIUHn/btrxivIacjr/IeVfEKJFxbow6wFspdHLuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvIUHn%2FbtrxivIacjr%2FIeVfEKJFxbow6wFspdHLuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1066&quot; height=&quot;762&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;762&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이렇게 깔끔하게 없어진 걸 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;59&quot; data-origin-height=&quot;253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgXHe6/btrxjHuAm5k/L0AC9DmmrqbEwjIxkHV9HK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgXHe6/btrxjHuAm5k/L0AC9DmmrqbEwjIxkHV9HK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgXHe6/btrxjHuAm5k/L0AC9DmmrqbEwjIxkHV9HK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgXHe6%2FbtrxjHuAm5k%2FL0AC9DmmrqbEwjIxkHV9HK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;100&quot; height=&quot;429&quot; data-origin-width=&quot;59&quot; data-origin-height=&quot;253&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 없으니까 어색하네.. 다시 켜야지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Programming</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/38</guid>
      <comments>https://deepprogramming.tistory.com/38#entry38comment</comments>
      <pubDate>Fri, 25 Mar 2022 22:02:08 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 10. 포인터 (1)</title>
      <link>https://deepprogramming.tistory.com/37</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) C와 포인터&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포인터란, C가 그 진가를 발휘하는 문법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C의 가장 큰 특징이자 장점이자 단점은 어셈블리 제외 고급 언어들 중 가장 기계어와 가깝다는 것인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 이론 상 프로그램의 거의 모든 것을 제어할 수 있다는 말이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;다시 말해 개발자에게 주어지는 자유도가 높다는 것인데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자에게 자유를 준다는 것은, 곧 (언어, 컴파일러 차원에서) 알아서 해준다는 게 없다는 뜻이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것이 주니어 개발자일수록 단점으로 작용할 수도 있지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그만큼 low-level에서 필요한 기초 지식들을 익힌다는 것이기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런 것들을 자동으로 해주는 라이브러리나, 상위 고급 언어들을 사용할 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보다 쉽게 익힐 수 있게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 포인터란&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본격적으로 포인터에 대해 설명한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포인터는 영어로 쓰면 Pointer이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Point, 말 그대로 가리키는 용도이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇담 무엇을 가리키는가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수를 가리킨다. 정확히 말하면 변수가 차지하고 있는 메모리 공간을 가리킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RAM, Random Access Memory, 카세트 테잎 같은 것과 다르게 아무 곳이나 접근할 수 있다는 뜻이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜냐하면 메모리 공간이 Byte단위로 나뉘면서 각 공간마다 주소를 갖고 있기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포인터도 일종의 변수인데, 포인터 변수가 저장하는 값도 그 주소들이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 변수가 저장된 메모리 공간의 주소를 포인터 변수에 저장함으로써 그 변수를 가리키게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(3) 포인터 사용법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포인터를 사용하기 위하여 알아야할 것 두 가지가 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 포인터 변수 선언하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 변수의 주소 (포인터 상수) 얻기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포인터 변수를 선언하는 방법은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수 이름 앞, 또는 자료형 뒤에 *(asterisk)를 붙이면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 포인터 타입은 일반 타입과 다른데,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;int&lt;/b&gt;와 int형 변수의 포인터 &lt;b&gt;int*&lt;/b&gt;는 서로 다른 타입이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수의 주소(포인터 상수)를 얻는 방법은 간단하게 변수 이름 앞에 &lt;b&gt;&amp;amp;&lt;/b&gt;를 붙이면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 아래 코드는 &lt;b&gt;ptr_a&lt;/b&gt;라는 &lt;b&gt;int*&amp;nbsp;&lt;/b&gt;변수에&amp;nbsp;&lt;b&gt;&amp;amp;a&lt;/b&gt;, 즉 a의 주소를 저장하는 코드이다.&lt;/p&gt;
&lt;pre id=&quot;code_1645854646765&quot; class=&quot;cpp&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int a = 10;

	int* ptr_a = &amp;amp;a;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 &lt;b&gt;ptr_a&lt;/b&gt;는&amp;nbsp;&lt;b&gt;a&lt;/b&gt;를 가리키는 포인터라고 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주소를 직접 확인하고 싶다면 printf에서 %p를 사용하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m69Mq/btrurUQX6b0/TlK7kWw6yxK0nnkolUBYok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m69Mq/btrurUQX6b0/TlK7kWw6yxK0nnkolUBYok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m69Mq/btrurUQX6b0/TlK7kWw6yxK0nnkolUBYok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm69Mq%2FbtrurUQX6b0%2FTlK7kWw6yxK0nnkolUBYok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;356&quot; height=&quot;300&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0x0000002430BBF714 라는 위치에 10이라는 값이 저장되어 있는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여기서 0x0000002430BBF714는 16진수 값으로, 메모리 주소는 범위가 매우 넓기 때문에 16진수로 출력하는 것이 효울적이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;16진수가 눈에 익지 않으면 %d로 출력해도 되지만 권장 사항이기도 하고 16진수에 익숙해지기 위해서는 %p를 사용하는 것이 좋다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 글에서 포인터가 무엇인지에 대해 아주 단초적인 예제만 사용했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;포인터의 장점은 &quot;역참조&quot;가 가능하다는 것과 &quot;복사 비용&quot;을 줄일 수 있다는 것인데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그것들에 대해서는 나중 포스팅에서 이어가겠다.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>Address</category>
      <category>C</category>
      <category>C++</category>
      <category>pointer</category>
      <category>메모리</category>
      <category>주소</category>
      <category>포인터</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/37</guid>
      <comments>https://deepprogramming.tistory.com/37#entry37comment</comments>
      <pubDate>Thu, 24 Mar 2022 13:06:50 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] Cos Pro 1급 모의고사 - 꽃피우기 풀이</title>
      <link>https://deepprogramming.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;제출 후 채점해서 통과된 코드이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주변에 심을 때 &quot;다음 날&quot;의 숫자를 저장하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 날 날짜가 동일한 것만 찾아서 주변을 새로 심는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1643373371707&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 다음과 같이 include를 사용할 수 있습니다.
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

using namespace std;

int solution(vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; garden) {
	int Row = garden.size();
	int Column = garden[0].size();

	int days = 1;
	int zeros = 0;
	while (1) {
		int nextDay = days + 1;
		for (int i = 0; i &amp;lt; Row; ++i) {
			for (int j = 0; j &amp;lt; Column; ++j) {
				if (garden[i][j] == 0) ++zeros;
				else if(garden[i][j] == days) {
					if (i != 0) garden[i - 1][j] = nextDay;
					if (i &amp;lt; Row - 1) garden[i + 1][j] = nextDay;

					if (j != 0) garden[i][j - 1] = nextDay;
					if (j &amp;lt; Column - 1) garden[i][j + 1] = nextDay;
				}
			}
		}
		if (zeros) {
			++days;
		}
		else return days - 1;
		zeros = 0;
	}
}

// 아래는 테스트케이스 출력을 해보기 위한 main 함수입니다.
int main() {
	vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; garden1 = { {0, 0, 0}, {0, 1, 0}, {0, 0, 0} };
	int ret1 = solution(garden1);

	// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
	cout &amp;lt;&amp;lt; &quot;solution 함수의 반환 값은 &quot; &amp;lt;&amp;lt; ret1 &amp;lt;&amp;lt; &quot; 입니다.&quot; &amp;lt;&amp;lt; endl;

	vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; garden2 = { {1, 1}, {1, 1} };
	int ret2 = solution(garden2);

	// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
	cout &amp;lt;&amp;lt; &quot;solution 함수의 반환 값은 &quot; &amp;lt;&amp;lt; ret2 &amp;lt;&amp;lt; &quot; 입니다.&quot; &amp;lt;&amp;lt; endl;
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/36</guid>
      <comments>https://deepprogramming.tistory.com/36#entry36comment</comments>
      <pubDate>Fri, 28 Jan 2022 21:48:18 +0900</pubDate>
    </item>
    <item>
      <title>[BDSX] 주민 거래 내역 편집하기 (@bdsx/customtrade)</title>
      <link>https://deepprogramming.tistory.com/35</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 소개&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게임 내에서 주민의 NBT를 직접 수정하여 거래 내역을 바꾸는 플러그인이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;폼 UI와 커맨드를 모두 지원한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 추가해야할 것이 많다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/mdisprgm/bdsx-customtrade&quot;&gt;https://github.com/mdisprgm/bdsx-customtrade&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1642914630574&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - mdisprgm/bdsx-customtrade: bdsx-customtrade&quot; data-og-description=&quot;bdsx-customtrade. Contribute to mdisprgm/bdsx-customtrade development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/mdisprgm/bdsx-customtrade&quot; data-og-url=&quot;https://github.com/mdisprgm/bdsx-customtrade&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bl1SyL/hyNb73SJub/IeSo8zfw1ZSMfodRQ5Alb1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/mdisprgm/bdsx-customtrade&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/mdisprgm/bdsx-customtrade&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bl1SyL/hyNb73SJub/IeSo8zfw1ZSMfodRQ5Alb1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - mdisprgm/bdsx-customtrade: bdsx-customtrade&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;bdsx-customtrade. Contribute to mdisprgm/bdsx-customtrade development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 사용법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/mdisprgm/bdsx-customtrade/blob/main/tutorial/command.md&quot;&gt;https://github.com/mdisprgm/bdsx-customtrade/blob/main/tutorial/command.md&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1642914634443&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - mdisprgm/bdsx-customtrade: bdsx-customtrade&quot; data-og-description=&quot;bdsx-customtrade. Contribute to mdisprgm/bdsx-customtrade development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/mdisprgm/bdsx-customtrade/blob/main/tutorial/command.md&quot; data-og-url=&quot;https://github.com/mdisprgm/bdsx-customtrade&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/tNTNA/hyNb9tRrhS/2B8Sj672fPGaCa0b3Dn8dK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/mdisprgm/bdsx-customtrade/blob/main/tutorial/command.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/mdisprgm/bdsx-customtrade/blob/main/tutorial/command.md&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/tNTNA/hyNb9tRrhS/2B8Sj672fPGaCa0b3Dn8dK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - mdisprgm/bdsx-customtrade: bdsx-customtrade&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;bdsx-customtrade. Contribute to mdisprgm/bdsx-customtrade development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가 예정 ...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TODO :&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;enchanted items for villagers.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pre-defined trading recipe villagers.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;etc ...&lt;/p&gt;</description>
      <category>Minecraft</category>
      <category>bdsx</category>
      <category>Be</category>
      <category>bedrock edition</category>
      <category>minecraft</category>
      <category>nodejs</category>
      <category>NPM</category>
      <category>마인크래프트</category>
      <category>플러그인</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/35</guid>
      <comments>https://deepprogramming.tistory.com/35#entry35comment</comments>
      <pubDate>Sun, 23 Jan 2022 14:10:45 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 9.5강 - for, while에서 break, continue</title>
      <link>https://deepprogramming.tistory.com/34</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) break&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;switch에서는 break;를 했을 때 해당 case에서 탈출했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 원리로 while과 for에서 break를 쓰면 해당 반복 루프를 탈출하여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 코드를 실행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아주 단적인 예제를 보자.&lt;/p&gt;
&lt;pre id=&quot;code_1642385988155&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int i = 0;
	while (1) {
		printf(&quot;%d, &quot;, i++);
		if (i % 10 == 0) printf(&quot;\n&quot;);
		if (i &amp;gt; 100) break;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1~100까지의 수를 출력하는 코드이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 for를 써도 되지만 break를 써먹기 위해 while을 사용하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;i가 100보다 커질 때까지 무한 루프를 돌다가 101이 됐을 때 break; 하여 while 루프를 빠져나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 for에서도 break;를 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) continue&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;continue는 직역했을 때 &quot;계속하다&quot; 라는 의미를 가진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C에서도 그 의미 그대로 쓰인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;while이나 for의 조건에 상관 없이 그 루틴을 끝낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중요한 것은 반복 루프 자체를 탈출하는 것이 아니라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 반복 회차(?)만 끝낸다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 이하 코드만 실행되지 않고 여전히 i++을 하고 다시 코드를 실행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시로 1~100 범위에서 짝수만 출력하는 코드를 작성했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;i += 2;와 같이 하는 게 더 편하지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;continue를 써먹기 위해서 1 단위로 반복한다.&lt;/p&gt;
&lt;pre id=&quot;code_1642386374642&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	for (int i = 1; i &amp;lt; 101; i++) {
		if (i % 2) continue;
		printf(&quot;%3d, &quot;, i);
		if (i % 5 == 0) printf(&quot;\n&quot;);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;i를 2로 나눈 나머지가 0이 아닌, 즉 1이 나와서 조건이 true가 되면 continue하여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 printf와 줄바꿈용 if문은 거쳐가지 않는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;334&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTmyk0/btrqUTtXMyo/SOoMq0SxKCYiIvhcckkHE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTmyk0/btrqUTtXMyo/SOoMq0SxKCYiIvhcckkHE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTmyk0/btrqUTtXMyo/SOoMq0SxKCYiIvhcckkHE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTmyk0%2FbtrqUTtXMyo%2FSOoMq0SxKCYiIvhcckkHE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;483&quot; height=&quot;392&quot; data-origin-width=&quot;334&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1642386526909&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if(i % 2 == 0) {

printf(...);

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 이렇게 if문으로 짝수일 때만 출력하게 만들 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 걸러야 할 경우가 더 많아지거나 한다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;continue 구문을 유용하게 사용할 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>Break</category>
      <category>C</category>
      <category>C++</category>
      <category>for</category>
      <category>while</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/34</guid>
      <comments>https://deepprogramming.tistory.com/34#entry34comment</comments>
      <pubDate>Mon, 17 Jan 2022 11:31:43 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 9.4강 - switch &amp;amp; break | 제어문, 조건 관리하기</title>
      <link>https://deepprogramming.tistory.com/33</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) switch&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;switch.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전기 스위치 할 때 그 스위치로 이해해도 될 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 if가 switch를 완벽히 대체할 수는 있지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일부 상황에서는 switch가 코드도 짧아지고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가독성이 올라가는 경우가 있기 때문에 알아두면 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) if를 사용했을 때&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사람의 행동에 대해서 확인하는 예제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지난 포스팅에 쓴 enum도 사용하였다.&lt;/p&gt;
&lt;pre id=&quot;code_1642251931479&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

enum Actions {
	SitDown,
	StandUp,
	LayDown
};

int main() {
	enum Actions action = StandUp;

	if (action == SitDown) {
		printf(&quot;앉았습니다\n&quot;);
	}
	else if (action == StandUp) {
		printf(&quot;일어섰습니다\n&quot;);
	}
	else if (action == LayDown) {
		printf(&quot;누웠습니다\n&quot;);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Actions&lt;/b&gt;라는 &lt;b&gt;enum&lt;/b&gt; 열거형을 선언하였고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;main에서 &lt;b&gt;action&lt;/b&gt;에 따라 다른 출력값을 보이고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저기선 &lt;b&gt;action&lt;/b&gt;이 &lt;b&gt;StandUp&lt;/b&gt; 이므로 &lt;b&gt;&quot;일어섰습니다&quot;&lt;/b&gt;가 출력된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 항상 같은 변수에 대해 == 연산자를 사용하여 확인할 때 switch가 유용하게 사용될 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;switch를 사용하여 같은 코드를 써보면 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1642252114853&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

enum Actions {
	SitDown,
	StandUp,
	LayDown
};

int main() {
	enum Actions action = SitDown;

	switch (action) {
	case SitDown:
		printf(&quot;앉았습니다\n&quot;);
		break;
	case StandUp:
		printf(&quot;일어섰습니다\n&quot;);
		break;
	case LayDown:
		printf(&quot;누웠습니다\n&quot;);
		break;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if에 쓰는 조건처럼 괄호에 변수를 넣어주고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;case 값:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;break;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;case 값2:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;break;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;case 값3:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;break;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 각 경우에 맞는 코드들이 실행될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 두 번째 코드도 똑같이 &quot;일어섰습니다&quot; 라고 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;break;&lt;/b&gt;를 써주는 이유는 간단하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;값이 일치하는 case를 만나게 되면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드 진행(rip ?) 이 그곳으로 JUMP하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 &lt;b&gt;action&lt;/b&gt;이&amp;nbsp;&lt;b&gt;StandUp&lt;/b&gt;일 때 &lt;b&gt;printf(&quot;일어섰습니다\n&quot;);&lt;/b&gt; 부분으로 갔다가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;switch&lt;/b&gt;가 끝나지 않고 다음 줄까지 이어져 &lt;b&gt;printf(&quot;누웠습니다\n&quot;);&lt;/b&gt;도 실행되는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;break;&lt;/b&gt;를 뺀 코드를 실행한 결과를 보면 이렇다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;273&quot; data-origin-height=&quot;109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KTtdT/btrqM3qCFNQ/SbUxmkYJ78VmVMoU3Z1JtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KTtdT/btrqM3qCFNQ/SbUxmkYJ78VmVMoU3Z1JtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KTtdT/btrqM3qCFNQ/SbUxmkYJ78VmVMoU3Z1JtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKTtdT%2FbtrqM3qCFNQ%2FSbUxmkYJ78VmVMoU3Z1JtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;393&quot; height=&quot;109&quot; data-origin-width=&quot;273&quot; data-origin-height=&quot;109&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(3) default&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가능성 있는 값이 너무 많거나 깜빡하여 case에 적어주지 못할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럴 때는 case (값): 대신&lt;b&gt; default:&lt;/b&gt; 를 실행하게 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1642252759792&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

enum Actions {
	SitDown,
	StandUp,
	LayDown,
	Jump
};

int main() {
	enum Actions action = Jump;

	switch (action) {
	case SitDown:
		printf(&quot;앉았습니다\n&quot;);
		break;
	case StandUp:
		printf(&quot;일어섰습니다\n&quot;);
		break;
	case LayDown:
		printf(&quot;누웠습니다\n&quot;);
		break;
	default:
		printf(&quot;알 수 없는 행동입니다\n&quot;);
		break;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;enum Actions&lt;/b&gt;에 &lt;b&gt;Jump&lt;/b&gt;를 추가하였고 action에 &lt;b&gt;Jump&lt;/b&gt;를 대입하였더니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SitDown&lt;/b&gt;, &lt;b&gt;StandUp&lt;/b&gt;, &lt;b&gt;LayDown&lt;/b&gt; 중 하나도 일치하는 경우가 없어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;알 수 없는 행동입니다\n&quot;이 출력된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;93&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dvyGDh/btrqMbpojnz/2AX5GI6BnyxuNLHQetFPK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dvyGDh/btrqMbpojnz/2AX5GI6BnyxuNLHQetFPK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dvyGDh/btrqMbpojnz/2AX5GI6BnyxuNLHQetFPK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvyGDh%2FbtrqMbpojnz%2F2AX5GI6BnyxuNLHQetFPK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;496&quot; height=&quot;135&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;93&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(4) case에 들어가는 값은 상수여야 한다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;switch를 사용할 시 주의할 점은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;case 에 들어갈 값이 &lt;b&gt;컴파일 타임에 결정&lt;/b&gt;되어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, &lt;b&gt;상수&lt;/b&gt;여야 한다는 말이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;309&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zOL2A/btrqMRqqLQS/ZqVS18Uwo1GfqFe9zF2zSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zOL2A/btrqMRqqLQS/ZqVS18Uwo1GfqFe9zF2zSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zOL2A/btrqMRqqLQS/ZqVS18Uwo1GfqFe9zF2zSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzOL2A%2FbtrqMRqqLQS%2FZqVS18Uwo1GfqFe9zF2zSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;351&quot; height=&quot;349&quot; data-origin-width=&quot;309&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수를 집어넣게 되면 위 사진처럼 에러가 뜬다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;switch에서 비교할 값은 변수여도 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>Break</category>
      <category>C</category>
      <category>C++</category>
      <category>case</category>
      <category>default</category>
      <category>switch</category>
      <category>조건</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/33</guid>
      <comments>https://deepprogramming.tistory.com/33#entry33comment</comments>
      <pubDate>Sat, 15 Jan 2022 22:22:10 +0900</pubDate>
    </item>
    <item>
      <title>[BDSx] 플레이어 핑 구하기 (@bdsx/ping)</title>
      <link>https://deepprogramming.tistory.com/32</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;플레이어의 ping을 얻고 싶어서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PMMP, MiNET, dragonfly, kookie.. 이름 들어본 구동기들은 몽땅 ping 얻는 소스를 찾아봤지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 실력으로는 도저히 이해할 수 없었다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러다 BDS는 모장에서 만든 공식 구동기라는 것을 망각하고 있다가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네이티브 함수를 후킹하기로 결정..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소스는 깃허브에 올려놨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/mdisprgm/bdsx-ping&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/mdisprgm/bdsx-ping&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1632150285504&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - mdisprgm/bdsx-ping: Provides &amp;#96;ping&amp;#96; command.&quot; data-og-description=&quot;Provides &amp;#96;ping&amp;#96; command. Contribute to mdisprgm/bdsx-ping development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/mdisprgm/bdsx-ping&quot; data-og-url=&quot;https://github.com/mdisprgm/bdsx-ping&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/PZOrn/hyLFG1GTS5/vAnk0S3qjpFWBsJfJ0Q4Pk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/mdisprgm/bdsx-ping&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/mdisprgm/bdsx-ping&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/PZOrn/hyLFG1GTS5/vAnk0S3qjpFWBsJfJ0Q4Pk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - mdisprgm/bdsx-ping: Provides `ping` command.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Provides `ping` command. Contribute to mdisprgm/bdsx-ping development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.npmjs.com/package/@bdsx/ping&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.npmjs.com/package/@bdsx/ping&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1632150293946&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;@bdsx/ping&quot; data-og-description=&quot;Provides hooked functions about player's ping&quot; data-og-host=&quot;www.npmjs.com&quot; data-og-source-url=&quot;https://www.npmjs.com/package/@bdsx/ping&quot; data-og-url=&quot;https://www.npmjs.com/package/@bdsx/ping&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b5dCA6/hyLFzhcu1s/1TL4A6TKKNFzaQQtNUzTzk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.npmjs.com/package/@bdsx/ping&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.npmjs.com/package/@bdsx/ping&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b5dCA6/hyLFzhcu1s/1TL4A6TKKNFzaQQtNUzTzk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;@bdsx/ping&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Provides hooked functions about player's ping&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.npmjs.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;느낀 점:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;rua님은 정말 많은 걸 typescript로 구현해놓으셨다.. 로우레벨에서 노는 건 아무나 하는 게 아니구나..&lt;/p&gt;</description>
      <category>Minecraft</category>
      <category>bdsx</category>
      <category>Be</category>
      <category>bedrock edition</category>
      <category>minecraft</category>
      <category>nodejs</category>
      <category>NPM</category>
      <category>ping</category>
      <category>마인크래프트</category>
      <category>서버</category>
      <category>플러그인</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/32</guid>
      <comments>https://deepprogramming.tistory.com/32#entry32comment</comments>
      <pubDate>Tue, 21 Sep 2021 00:05:48 +0900</pubDate>
    </item>
    <item>
      <title>[Go] 고루틴 연습 (노마드코더)</title>
      <link>https://deepprogramming.tistory.com/31</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최근에 유튜브 노마드 코더님의 Go언어 무료 강의를 듣기 시작했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아주 설렌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 좋은 자료를 무료로 보기 좀 그러니 홍보를..ㅋㅋ (광고 아님)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://nomadcoders.co/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://nomadcoders.co/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초라한 개미 블로거가 대형 유튜버를 홍보한다는 게 웃기긴 하네..ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강의에서 노마드코더님과 같이 만드는 웹스크래퍼의 첫 걸음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;URL 체커 소스이다.&lt;/p&gt;
&lt;pre id=&quot;code_1631942534463&quot; class=&quot;go&quot; data-ke-language=&quot;go&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package main

import (
	&quot;fmt&quot;
	&quot;net/http&quot;
)

type reqRes struct { //request result
	url    string
	status string
}

func main() {
	results := make(map[string]string) //results as a map
	urls := []string{                  //urls to check
		&quot;https://www.stackoverflow.com&quot;,
		&quot;https://www.facebook.com&quot;,
		&quot;https://www.reddit.com&quot;,
		&quot;https://www.instagram.com&quot;,
		&quot;https://www.daum.net&quot;,
		&quot;https://www.naver.com&quot;,
		&quot;https://www.google.com&quot;,
		&quot;https://www.youtube.com&quot;,
		&quot;https://academy.nomadcoders.co&quot;}
	channel := make(chan reqRes) //channel to communicate with go hitURl

	for _, url := range urls {
		go hitURL(url, channel) //run with goroutines
	}
	for range urls {
		result := &amp;lt;-channel                           //get result from the channel
		results[result.url] = result.status           //store result
		fmt.Println(result.url, &quot;=&amp;gt;&amp;gt;&quot;, result.status) //print result
	}
}

func hitURL(url string, c chan&amp;lt;- reqRes) {
	resp, err := http.Get(url)                //get URL, response and error
	status := &quot;OK&quot;                            //first OK
	if err != nil || resp.StatusCode &amp;gt;= 400 { //if there is an error
		status = &quot;FAILED&quot;                           //status message is FAILED
		fmt.Println(&quot;WHY!!:&quot;, err, resp.StatusCode) //prints reason for failed
	}
	//	fmt.Println(&quot;Checked:&quot;, url)
	c &amp;lt;- reqRes{url: url, status: status} //send to the channel
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Go 기초 수강 후기 :&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안전성을 추구하다보니 사용되지 않는 함수나 변수를 꼭 지워줘야 한다는 게&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 문법을 연습할 땐 많이 불편..^^&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 if식 조건에는 boolean 밖에 못 들어간다는 게&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C/C++에 익숙한 난 쬐끔 불편할듯~&lt;/p&gt;
&lt;pre id=&quot;code_1631942874005&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a;
std::cin &amp;gt;&amp;gt; a;
if(a) std::cout &amp;lt;&amp;lt; &quot;a is true&quot; &amp;lt;&amp;lt; std::endl;
else if(!a) std::cout &amp;lt;&amp;lt; &quot;a is not true&quot; &amp;lt;&amp;lt; std::endl;
//Go에서는 이거 안 됨ㅜㅜ&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/Go</category>
      <category>GO</category>
      <category>goroutine</category>
      <category>고루틴</category>
      <category>노마드코더</category>
      <category>니콜라스</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/31</guid>
      <comments>https://deepprogramming.tistory.com/31#entry31comment</comments>
      <pubDate>Sat, 18 Sep 2021 14:28:08 +0900</pubDate>
    </item>
    <item>
      <title>윈도우에서 GCC/G++ 설치하기!!</title>
      <link>https://deepprogramming.tistory.com/30</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(0) 여담&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C나 C++로 프로그램을 개발할 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Visual Studio를 사용하지 못하는 리눅스 환경에서는 gcc나 clang이라는 컴파일러를 쓰곤 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포스팅의 주제인 GCC에 대해 잠깐 얘기를 하자면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GCC의 의미는 GNU Compiler Collection, 오픈 소스컴파일러 모음이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본디 GCC는 C언어만을 위한 컴파일러여서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GNU C Compiler 였지만 다른 언어들도 지원하게 되면서 이름을 바꾸게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우에서 GCC를 설치하려면 MinGW라는 프로그램 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MinGW는 GNU용 소프트웨어 도구 모음인데 윈도우용으로 포팅한 버전이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) MinGW 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://sourceforge.net/projects/mingw/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://sourceforge.net/projects/mingw/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1630933174459&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;product&quot; data-og-title=&quot;MinGW - Minimalist GNU for Windows&quot; data-og-description=&quot;Download MinGW - Minimalist GNU for Windows for free. A native Windows port of the GNU Compiler Collection (GCC) This project is in the process of moving to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the G&quot; data-og-host=&quot;sourceforge.net&quot; data-og-source-url=&quot;https://sourceforge.net/projects/mingw/&quot; data-og-url=&quot;https://sourceforge.net/projects/mingw/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://sourceforge.net/projects/mingw/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://sourceforge.net/projects/mingw/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;MinGW - Minimalist GNU for Windows&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Download MinGW - Minimalist GNU for Windows for free. A native Windows port of the GNU Compiler Collection (GCC) This project is in the process of moving to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the G&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;sourceforge.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크를 들어가서 MinGW 설치 파일을 다운받아준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cffG9i/btrea1MMBz1/JESuCr5fiM9DhIAYOXSHq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cffG9i/btrea1MMBz1/JESuCr5fiM9DhIAYOXSHq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cffG9i/btrea1MMBz1/JESuCr5fiM9DhIAYOXSHq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcffG9i%2Fbtrea1MMBz1%2FJESuCr5fiM9DhIAYOXSHq0%2Fimg.png&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 continue를 누른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본인은 Desktop 아이콘 생성을 해제했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;462&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OOn0f/btrea1ssOfd/sR6Vk3YyRkYP4popgsj5jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OOn0f/btrea1ssOfd/sR6Vk3YyRkYP4popgsj5jK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OOn0f/btrea1ssOfd/sR6Vk3YyRkYP4popgsj5jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOOn0f%2Fbtrea1ssOfd%2FsR6Vk3YyRkYP4popgsj5jK%2Fimg.png&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;462&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진행 중..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완료 후 활성화 된 continue를 누르면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;417&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4zcsr/btreg2qBcS9/hlbmpkKANjkdiKqGZx4kCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4zcsr/btreg2qBcS9/hlbmpkKANjkdiKqGZx4kCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4zcsr/btreg2qBcS9/hlbmpkKANjkdiKqGZx4kCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4zcsr%2Fbtreg2qBcS9%2FhlbmpkKANjkdiKqGZx4kCk%2Fimg.png&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;417&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 창이 뜨는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저기 Package 목록에서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mingw-developer-toolkit&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mingw32-base&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mingw32-gcc-g++&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 선택하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;체크 박스를 클릭하고 &lt;b&gt;Mark for Installation&lt;/b&gt; 을 클릭하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;204&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FEzj6/btrehBfdrjY/XDrR6KPOYwRleKsXY0MrPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FEzj6/btrehBfdrjY/XDrR6KPOYwRleKsXY0MrPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FEzj6/btrehBfdrjY/XDrR6KPOYwRleKsXY0MrPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFEzj6%2FbtrehBfdrjY%2FXDrR6KPOYwRleKsXY0MrPk%2Fimg.png&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;204&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측 Installation 메뉴에서 Apply Changes를 누르고&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;195&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QpTl8/btrehCLXQOb/lDMWnNtD9RMv7lF95IMsq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QpTl8/btrehCLXQOb/lDMWnNtD9RMv7lF95IMsq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QpTl8/btrehCLXQOb/lDMWnNtD9RMv7lF95IMsq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQpTl8%2FbtrehCLXQOb%2FlDMWnNtD9RMv7lF95IMsq0%2Fimg.png&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;195&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 Apply를 누르면..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;220&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7zQMI/btrejWCVlus/jc8lKKdYMn3SCNoeBxqDn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7zQMI/btrejWCVlus/jc8lKKdYMn3SCNoeBxqDn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7zQMI/btrejWCVlus/jc8lKKdYMn3SCNoeBxqDn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7zQMI%2FbtrejWCVlus%2Fjc8lKKdYMn3SCNoeBxqDn1%2Fimg.png&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;220&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;430&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tzXSV/btrec4vOHXn/3ZncWONKC3DdzCp2sgyVO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tzXSV/btrec4vOHXn/3ZncWONKC3DdzCp2sgyVO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tzXSV/btrec4vOHXn/3ZncWONKC3DdzCp2sgyVO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtzXSV%2Fbtrec4vOHXn%2F3ZncWONKC3DdzCp2sgyVO0%2Fimg.png&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;430&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 걸림..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 gcc와 g++을 사용하려면 환경 변수 Path에 추가해주어야 하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경로는&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C:\MinGW\bin&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경로이다. 아마 웬만하면 다르지 않을 건데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경로로 추가하고 작동하지 않는다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Everything이라는 프로그램을 설치하고 gcc.exe를 검색해보면 된다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 환경 변수 Path 추가&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Win + R을 눌러 실행창을 열고 아래 사진처럼 입력하면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;207&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IvjiF/btrehDc2y9K/JLYpFgi1M7RCGQXF126z9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IvjiF/btrehDc2y9K/JLYpFgi1M7RCGQXF126z9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IvjiF/btrehDc2y9K/JLYpFgi1M7RCGQXF126z9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIvjiF%2FbtrehDc2y9K%2FJLYpFgi1M7RCGQXF126z9k%2Fimg.png&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;207&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템 속성이 뜬다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;탐색기에서 내 PC -&amp;gt; 우클릭 -&amp;gt; 속성(Alt + Enter)을 눌러도 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;481&quot; data-origin-height=&quot;534&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PwMKx/btrd9k6Y9Vl/Pouih0iND9DX2Dvcz9ewuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PwMKx/btrd9k6Y9Vl/Pouih0iND9DX2Dvcz9ewuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PwMKx/btrd9k6Y9Vl/Pouih0iND9DX2Dvcz9ewuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPwMKx%2Fbtrd9k6Y9Vl%2FPouih0iND9DX2Dvcz9ewuk%2Fimg.png&quot; data-origin-width=&quot;481&quot; data-origin-height=&quot;534&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;441&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Szdw3/btrejXaMT73/z3NKV1OmTqRx1WTdzwfpH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Szdw3/btrejXaMT73/z3NKV1OmTqRx1WTdzwfpH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Szdw3/btrejXaMT73/z3NKV1OmTqRx1WTdzwfpH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSzdw3%2FbtrejXaMT73%2Fz3NKV1OmTqRx1WTdzwfpH0%2Fimg.png&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;441&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자에 대한 변수와 시스템 변수가 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시나 나중에 생길 다른 사용자 계정에서도 gcc는 사용할 수 있기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템 변수 쪽 Path에 추가해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;430&quot; data-origin-height=&quot;186&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyWQjy/btreiauKSuM/zHAQhL95cOu6lVtoberIN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyWQjy/btreiauKSuM/zHAQhL95cOu6lVtoberIN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyWQjy/btreiauKSuM/zHAQhL95cOu6lVtoberIN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcyWQjy%2FbtreiauKSuM%2FzHAQhL95cOu6lVtoberIN1%2Fimg.png&quot; data-origin-width=&quot;430&quot; data-origin-height=&quot;186&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;496&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N36ub/btrd5DZBtNb/UxuMWGuNDOqtwNz4glrmyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N36ub/btrd5DZBtNb/UxuMWGuNDOqtwNz4glrmyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N36ub/btrd5DZBtNb/UxuMWGuNDOqtwNz4glrmyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN36ub%2Fbtrd5DZBtNb%2FUxuMWGuNDOqtwNz4glrmyk%2Fimg.png&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;496&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인을 누르고 꼭 환경 변수 설정 창을 닫아야 적용 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gcc --version&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;을 입력하고 아래처럼 뜨면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;533&quot; data-origin-height=&quot;130&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJuAXz/btreh1SiZeN/sW6IHM1sNonFFuqAs8B8FK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJuAXz/btreh1SiZeN/sW6IHM1sNonFFuqAs8B8FK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJuAXz/btreh1SiZeN/sW6IHM1sNonFFuqAs8B8FK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJuAXz%2Fbtreh1SiZeN%2FsW6IHM1sNonFFuqAs8B8FK%2Fimg.png&quot; data-origin-width=&quot;533&quot; data-origin-height=&quot;130&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끄읕--&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치한 기념으로 Hello World를 실행해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;251&quot; data-origin-height=&quot;148&quot; width=&quot;414&quot; height=&quot;243&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEK2IE/btrd65oDJWv/bXVHwe2tw2wFcQBRsMkKkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEK2IE/btrd65oDJWv/bXVHwe2tw2wFcQBRsMkKkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEK2IE/btrd65oDJWv/bXVHwe2tw2wFcQBRsMkKkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEK2IE%2Fbtrd65oDJWv%2FbXVHwe2tw2wFcQBRsMkKkk%2Fimg.png&quot; data-origin-width=&quot;251&quot; data-origin-height=&quot;148&quot; width=&quot;414&quot; height=&quot;243&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진짜 끄읕~&lt;/p&gt;</description>
      <category>Programming</category>
      <category>C</category>
      <category>C++</category>
      <category>g++</category>
      <category>gcc</category>
      <category>GDB</category>
      <category>GNU</category>
      <category>mingw</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/30</guid>
      <comments>https://deepprogramming.tistory.com/30#entry30comment</comments>
      <pubDate>Mon, 6 Sep 2021 22:30:44 +0900</pubDate>
    </item>
    <item>
      <title>윈도우 11 탐색기 미작동 해결하기 (작업 표시줄 안 뜸)</title>
      <link>https://deepprogramming.tistory.com/29</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;9월 3일 금요일 아침&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우11 베타가 깔린 컴퓨터가 이상해지기 시작했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터를 켰는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업 표시줄은 로딩도 안 될 뿐더러&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작 화면, 검색창 등 아~무것도 작동하지 않더군요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(이미지 파일은 잘 보였기에 랜섬웨어 같은 건 아니었음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직감적으로 탐색기 문제라고 생각해서 폴더를 아무거나 열어봤는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;역시나 이렇게 백지장이 되어있었..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;566&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceNraY/btrdSd7FNuE/IQIwWKyie2n0kFjXJ9gtoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceNraY/btrdSd7FNuE/IQIwWKyie2n0kFjXJ9gtoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceNraY/btrdSd7FNuE/IQIwWKyie2n0kFjXJ9gtoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceNraY%2FbtrdSd7FNuE%2FIQIwWKyie2n0kFjXJ9gtoK%2Fimg.png&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;566&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업 관리자는 작동하길래 탐색기 재시작도 해보고 안전 모드로 부팅도 해보고 별짓을 다해봤는데도 안 돼서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 재설치까지 했었는데..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마침내 해결방법을 찾았습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.reddit.com/r/Windows11/comments/pgtpea/taskbar_will_not_load_cannot_open_start_menu/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.reddit.com/r/Windows11/comments/pgtpea/taskbar_will_not_load_cannot_open_start_menu/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1630637221882&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Taskbar will not load. Cannot open start menu&quot; data-og-description=&quot;Downloaded the beta build of Windows 11 today and it was working fine for awhile but now the taskbar will not load and when I click on it, the...&quot; data-og-host=&quot;www.reddit.com&quot; data-og-source-url=&quot;https://www.reddit.com/r/Windows11/comments/pgtpea/taskbar_will_not_load_cannot_open_start_menu/&quot; data-og-url=&quot;https://www.reddit.com/r/Windows11/comments/pgtpea/taskbar_will_not_load_cannot_open_start_menu/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eq8K0k/hyLtUTKyl0/xHe7Cklz5ZLXApEP784xL1/img.png?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256&quot;&gt;&lt;a href=&quot;https://www.reddit.com/r/Windows11/comments/pgtpea/taskbar_will_not_load_cannot_open_start_menu/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.reddit.com/r/Windows11/comments/pgtpea/taskbar_will_not_load_cannot_open_start_menu/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eq8K0k/hyLtUTKyl0/xHe7Cklz5ZLXApEP784xL1/img.png?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Taskbar will not load. Cannot open start menu&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Downloaded the beta build of Windows 11 today and it was working fine for awhile but now the taskbar will not load and when I click on it, the...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.reddit.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해외에서도 비슷한 오류가 생겼나봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대충 내용은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;`제어판을 실행해서 날짜를 바꾸면 되더라`&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;였는데요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;??? : 검색창이 안 열리는데 제어판을 어떻게 킴;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저도 그 생각을 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신박한 방법이 있더라고요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사진 보고 따라해보시고.. 성공하시길 빕니다..!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;141&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYRtEN/btrdU60LE2K/B0Ln1mSJNQdq6J186wFEhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYRtEN/btrdU60LE2K/B0Ln1mSJNQdq6J186wFEhk/img.png&quot; data-alt=&quot;작업 관리자는 Ctrl + Shift + ESC 또는 Ctrl + Alt + Delete&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYRtEN/btrdU60LE2K/B0Ln1mSJNQdq6J186wFEhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYRtEN%2FbtrdU60LE2K%2FB0Ln1mSJNQdq6J186wFEhk%2Fimg.png&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;141&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;작업 관리자는 Ctrl + Shift + ESC 또는 Ctrl + Alt + Delete&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;223&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dP87Ju/btrdVjTl4nv/ctq3gJpRMie5p7Ly41mvK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dP87Ju/btrdVjTl4nv/ctq3gJpRMie5p7Ly41mvK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dP87Ju/btrdVjTl4nv/ctq3gJpRMie5p7Ly41mvK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdP87Ju%2FbtrdVjTl4nv%2Fctq3gJpRMie5p7Ly41mvK0%2Fimg.png&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;223&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;84&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FS0T2/btrdQswW2St/4ZnCdiz7PMCCVk4YVM1cIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FS0T2/btrdQswW2St/4ZnCdiz7PMCCVk4YVM1cIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FS0T2/btrdQswW2St/4ZnCdiz7PMCCVk4YVM1cIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFS0T2%2FbtrdQswW2St%2F4ZnCdiz7PMCCVk4YVM1cIK%2Fimg.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;84&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;59&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vb44a/btrdSd7FYwy/QTpRJTEbSk6Abht6WnDH0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vb44a/btrdSd7FYwy/QTpRJTEbSk6Abht6WnDH0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vb44a/btrdSd7FYwy/QTpRJTEbSk6Abht6WnDH0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvb44a%2FbtrdSd7FYwy%2FQTpRJTEbSk6Abht6WnDH0K%2Fimg.png&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;59&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;441&quot; data-origin-height=&quot;480&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cF1kHL/btrdVkx0nsJ/R5DPnNNSuDOVjakN96OY71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cF1kHL/btrdVkx0nsJ/R5DPnNNSuDOVjakN96OY71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cF1kHL/btrdVkx0nsJ/R5DPnNNSuDOVjakN96OY71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcF1kHL%2FbtrdVkx0nsJ%2FR5DPnNNSuDOVjakN96OY71%2Fimg.png&quot; data-origin-width=&quot;441&quot; data-origin-height=&quot;480&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;289&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lZaIQ/btrdT8Y5NpX/rpO1pY73rIbIGiXfOfzpP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lZaIQ/btrdT8Y5NpX/rpO1pY73rIbIGiXfOfzpP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lZaIQ/btrdT8Y5NpX/rpO1pY73rIbIGiXfOfzpP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlZaIQ%2FbtrdT8Y5NpX%2FrpO1pY73rIbIGiXfOfzpP1%2Fimg.png&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;289&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 대충 바꿔주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1트에 8월 31일 하니까 안 돼서 9월 6일로 했더니 되더라고요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 아직 안심할 수 없기에..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재부팅 + 다시 오늘 날짜로 변경도 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여전히 잘 작동합니다!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 피해자들을 위해 이 포스팅 링크를 널리 퍼뜨려 주시오..&lt;/p&gt;</description>
      <category>IT 담소 나눔터</category>
      <category>explorer</category>
      <category>날짜변경</category>
      <category>버그</category>
      <category>윈도우11</category>
      <category>작업표시줄</category>
      <category>탐색기</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/29</guid>
      <comments>https://deepprogramming.tistory.com/29#entry29comment</comments>
      <pubDate>Fri, 3 Sep 2021 11:55:23 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 백준 1152번 C++ 풀이</title>
      <link>https://deepprogramming.tistory.com/28</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는 입력받은 문자열의 단어의 개수를 구하는 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제를 풀기 위해서 해결해야 하는 과제는 두 가지가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 공백도 문자열에 포함해서 입력받기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 공백을 제외한 다른 알파벳들의 묶음(단어의 개수) 수 세기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1156&quot; data-origin-height=&quot;317&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LpqzJ/btrdJkFxG5T/1joHkiOdQR3g4IAVgos0D0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LpqzJ/btrdJkFxG5T/1joHkiOdQR3g4IAVgos0D0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LpqzJ/btrdJkFxG5T/1joHkiOdQR3g4IAVgos0D0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLpqzJ%2FbtrdJkFxG5T%2F1joHkiOdQR3g4IAVgos0D0%2Fimg.png&quot; data-origin-width=&quot;1156&quot; data-origin-height=&quot;317&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 필자의 제출 기록인데 보다시피 실패가 아주 많다..ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열을 그냥 입력받으면 공백으로도 구분된다는 것과&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 앞뒤로 공백이 나올 수 있다는 조건을 간과하여 5번이나 틀렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 못참고 정답을 찾아봤는데..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;details&gt;
&lt;summary style=&quot;color: blue;&quot;&gt;▼구글에서 찾은 정답 보기&lt;/summary&gt;
&lt;pre id=&quot;code_1630473318102&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;

int main() {
	std::string str;
	int count = 0;
	while (std::cin &amp;gt;&amp;gt; str) {
		++count;
	}

	std::cout &amp;lt;&amp;lt; count;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cin의 반환값을 조건에 대입할 생각을 못했다..ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scanf는 반환값을 변수에 대입할 수 있는데 cin은 참조 연산이 불가능하기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;못하는 줄 알았지만 저렇게 하니 제출이 되더라.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이 코드에는 흠이 하나 있는데, 바로 개인 컴퓨터로 실행하면 입력이 멈추지 않는다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, Ctrl + Z나 Ctrl + C로 중지시켜야 멈춘다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인 컴퓨터로 테스트가 잘 되어야 백준에 제출하는 내 성향이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;백준에서만 작동되는 코드는 알 수 없다는 문제가 있었...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암튼 그래서 개인 컴퓨터와 백준 모두 잘 작동하는 답안을 작성하고 싶어서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ISCHAR 매크로는 함수로 만들 수도 있었지만 가끔 매크로 흑마법이 쓰인 답안을 볼 때마다 경이로워(?)서 한번 흉내내봤음!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;details&gt;
&lt;summary style=&quot;color: blue;&quot;&gt;▼ 직접 작성한 답안 보기&lt;/summary&gt;
&lt;pre id=&quot;code_1630473689239&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#define ISCHAR(x) (x - 65 &amp;gt;= 0 &amp;amp;&amp;amp; x - 65 &amp;lt;= 25 ? true : x - 97 &amp;gt;= 0 &amp;amp;&amp;amp; x - 97 &amp;lt;= 25 ? true : false)

int main() {
	std::string word;
	std::getline(std::cin, word);

	int cnt = 0;
	for (int i = 0; i &amp;lt; word.length(); i++) {
		if (ISCHAR(word[i])) {
			cnt++;
			while (word[i] != ' ' &amp;amp;&amp;amp; i &amp;lt; word.length()) i++;
		}
	}
	std::cout &amp;lt;&amp;lt; cnt &amp;lt;&amp;lt; std::endl;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘의 교훈.. 조건을 꼼꼼히 읽자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종종 수고를 덜어주는 조건도 있는데 괜히 그것까지 고려해서 코드짜다 헛수고함..ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;s&gt;예를 들면 이번 문제에서 '공백은 연속해서 나오지 않는다'든가&lt;/s&gt;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>1152</category>
      <category>acmicpc</category>
      <category>C</category>
      <category>C++</category>
      <category>백준</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/28</guid>
      <comments>https://deepprogramming.tistory.com/28#entry28comment</comments>
      <pubDate>Wed, 1 Sep 2021 14:24:25 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 백준 1157번 C++ 풀이</title>
      <link>https://deepprogramming.tistory.com/27</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;백준 문제 1157번 C++풀이이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 코드는 정답이었지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무 길고 복잡한 것 같아서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고수들의 코드를 확인해보려고 했는데..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소름돋게 똑같은 알고리즘을 써서;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 맞게 잘 한 거구나.. 라는 생각과 함께&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 풀이들이 변수이름까지 똑같은 걸 보고 다들 정답을 보고 하는 구나;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라는 생각을 하며..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;힌트와 답을 공유한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1630333140974&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;

int main() {
	std::string str;//문자열
	std::cin &amp;gt;&amp;gt; str;//문자열 입력

	int count[26] = { 0 };//카운트
	for (int i = 0, idx = 0; i &amp;lt; str.length(); i++)
	{
		idx = str[i];
		if (idx &amp;lt; 97)//대문자면 65를 빼고
			idx -= 65;
		else//소문자면
			idx -= 97;//97을 빼서 알파벳 번호에 ++을 함
		count[idx]++;
	}

	int max, idx = 0;//최대값과 알파벳 번호
	bool overlap = false;//중복되는가

	max = -1;//초기 최대값, 코드를 짜고 보니 0으로도 된다.
	for (int i = 0; i &amp;lt; 26; i++) {
		if (max &amp;lt; count[i])//max를 갱신해야 한다면
		{
			max = count[i];//일단 max갱신하고
			idx = i;//알파벳 번호도 바꾸고
			overlap = false;//중복이 아니므로 false
		}
		else if (max == count[i])
		{
			overlap = true;//max와 count[i]가 같다면 중복이므로 true
		}
	}
	if (overlap) std::cout &amp;lt;&amp;lt; '?';//중복이면 ?
	else std::cout &amp;lt;&amp;lt; char(idx + 65);//아니면 알파벳 번호 + 65로 대문자로 출력.
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>1157번</category>
      <category>acmicpc</category>
      <category>C</category>
      <category>C++</category>
      <category>백준</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/27</guid>
      <comments>https://deepprogramming.tistory.com/27#entry27comment</comments>
      <pubDate>Mon, 30 Aug 2021 23:23:52 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] Win32 API 첫 예제!</title>
      <link>https://deepprogramming.tistory.com/26</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 API는 윈도우os에서 제공하는 API이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;a style=&quot;color: #006dd7;&quot; href=&quot;http://soen.kr&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;soen.kr&lt;/a&gt;&lt;/span&gt;에서 무료로 제공되는 초급 강좌를 정독하며 공부한 내용들을 올릴 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 포스팅 시리즈는 '공부 정리'이므로 제3자는 볼 필요없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속 명시하겠지만 웬만해선 모든 출처는 대부분 soen.kr일 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://github.com/mdisprgm/Win-API&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/mdisprgm/Win-API&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에 소스가 보관된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) Hello, World! with GUI&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;콘솔 앱은 Hello World가 가독성을 위해 줄바꿈을 마구마구 해도 10줄내로 끝났지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 API는 다르다.. 기본적으로 설정해줄 게 굉장히 많더라.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1629813037495&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;Windows.h&amp;gt;//헤더파일

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//실제 작업, 프로시저
HINSTANCE g_hInst;//글로벌 인스턴스 핸들
LPCSTR lpszClass = &quot;HelloWorld&quot;;//롱 포인터 스트링 제로 클래스

int APIENTRY WinMain(HINSTANCE hInstance/*프로그램 인스턴스 핸들*/, HINSTANCE hPrevInstance/*이전 인스턴스 핸들, 없을 경우 NULL*/, LPSTR lpszCmdParam/*콘솔앱의 argv*/, int nCmdShow/*프로그램이 실행될 형태(모양)*/) {//윈도우 생성 함수
	HWND hWnd;//윈도우(창) 핸들
	MSG Message;//메시지(운영체제가 보내는)
	WNDCLASS WndClass;//윈도우 속성
	g_hInst = hInstance;//글로벌로 선언된 핸들에 본 인스턴스의 핸들을 저장
	/***/
	WndClass.cbClsExtra = 0;
	WndClass.cbWndExtra = 0;
	//예약 영역, 특수한 경우 외에는 운영제가 내부적으로만 사용함. 프로그래머가 사용하지 않을 경우 0;
	/***/

	WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//브러쉬 백그라운드, 윈도우의 배경 색상을 지정한다

	/***/
	WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);//커서와
	WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);//아이콘의 핸들
	//직접 사용자 지정 할 수 있지만 일단 기본 형태
	/***/

	WndClass.hInstance = hInstance;//인스턴스 핸들
	WndClass.lpfnWndProc = WndProc;//실제 작업이 이루어지는 프로시저 함수 포인터
	WndClass.lpszClassName = lpszClass;//윈도우 클래스의 이름, 이 이름이 CreateWindow에서 이런 특성들을 참조하여 윈도우를 생성함
	WndClass.lpszMenuName = NULL;//메뉴 이름, 소스코드가 아니라 리소스 에디터에서 만들고 링커가 조합하는데 사용하지 않을 경우 NULL
	WndClass.style = CS_HREDRAW | CS_VREDRAW;//스타일, HREDRAW와 VREDRAW는 각각 수평, 수직 크기가 변동되면 윈도우를 다시 그린다는 매크로이다.
	RegisterClass(&amp;amp;WndClass);//윈도우 클래스를 등록하여 사용할 수 있게 해준다. 정확히 어디 등록한다는 건지..

	hWnd = CreateWindow(lpszClass, &quot;HelloWorld&quot;, WS_OVERLAPPEDWINDOW, 860, 340, 800, 500, NULL, (HMENU)NULL, hInstance, NULL);//클래스 이름, 타이틀 이름, 크기, 위치 등등 정보를 인자로 넘긴다. 아직 다 이해하지 못했다.
	ShowWindow(hWnd, nCmdShow);//창을 띄운다, 핸들과 형태를 지정하는데 형태는 nCmdShow를 그냥 넣어준다.

	while (GetMessage(&amp;amp;Message, 0, 0, 0)) {//메시지 루프
		//여기서 메시지를 받고 처리한다.
		TranslateMessage(&amp;amp;Message);
		DispatchMessage(&amp;amp;Message);
	}

	return Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) {
	//프로시저 함수의 실 구현이다.
	switch (iMessage) {
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return (DefWindowProc(hWnd, iMessage, wParam, lParam));
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;50줄가까이 되는 코드의 결과물..ㅌㅌ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;492&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Z3EWA/btrc2oWDI8Q/O2T3L8KkUlTpKBmngsDI00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Z3EWA/btrc2oWDI8Q/O2T3L8KkUlTpKBmngsDI00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Z3EWA/btrc2oWDI8Q/O2T3L8KkUlTpKBmngsDI00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZ3EWA%2Fbtrc2oWDI8Q%2FO2T3L8KkUlTpKBmngsDI00%2Fimg.png&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;492&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 API 1일차 끝&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-2-나까지 (일단 읽는 건)완료.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C</category>
      <category>C++</category>
      <category>HelloWorld</category>
      <category>Win32</category>
      <category>윈도우API</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/26</guid>
      <comments>https://deepprogramming.tistory.com/26#entry26comment</comments>
      <pubDate>Tue, 24 Aug 2021 22:55:32 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 9.3강 - 제어문, 조건 관리하기 (for 사용법)</title>
      <link>https://deepprogramming.tistory.com/25</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) for문이란&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 조건이 성립하는 동안 계속 반복하는 while을 이용해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 코드를 N번 반복하는 코드를 짤 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 while이 꼭 그러한 용도로만 사용되는 것은 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 for는 N회 반복에 거의&amp;nbsp;쓰이는 제어문이라고 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적어도 N회 반복에 대해서는 while보다 간결하고 읽기도 쉽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;while과 비교하면서 for의 사용법을 확인해보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) for의 사용법&lt;/h2&gt;
&lt;pre id=&quot;code_1629177549199&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int i;

  i = 0;
  //반복문에서는 관례적으로 i를 많이 사용한다.
  while (i &amp;lt; 10) {
    printf(&quot;i is %d\n&quot;, i);
    i++;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드는 printf를 while로 10번 반복하는 코드이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;334&quot; data-origin-height=&quot;246&quot; width=&quot;283&quot; height=&quot;209&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EWDvp/btrcokGzV7J/H9pGzzLthlHlIvJODEYyO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EWDvp/btrcokGzV7J/H9pGzzLthlHlIvJODEYyO1/img.png&quot; data-alt=&quot;실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EWDvp/btrcokGzV7J/H9pGzzLthlHlIvJODEYyO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEWDvp%2FbtrcokGzV7J%2FH9pGzzLthlHlIvJODEYyO1%2Fimg.png&quot; data-origin-width=&quot;334&quot; data-origin-height=&quot;246&quot; width=&quot;283&quot; height=&quot;209&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드에 주석을 조금 추가해보겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1629177893836&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int i;
	
	i = 0;//초기화식
	//반복문에서는 관례적으로 i를 많이 사용한다.
	while(i &amp;lt; 10/*조건식*/) {
		printf(&quot;i is %d\n&quot;, i);
		i++;//증감식
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;i = 0; 은 초기화식, i &amp;lt; 10; 은 조건식, i++; 은 증감식이라고 할 수 있는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 세 가지가 for문에서 요구하는 식들이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;for문에 이렇게 적어주면 더 간편하게 10번 반복할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1629178108610&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {	
	for(/*초기화식*/;/*조건식*/;/*증감식*/) {
		//실행할 코드
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 자리에 식을 넣어주면 이렇게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1629178162215&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int i;
	
	for(i = 0;i&amp;lt;10;i++) {
		printf(&quot;i is %d\n&quot;, i);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 식은 &lt;b&gt;;&lt;/b&gt; 으로 구분하며 증감식 뒤에는 &lt;b&gt;;&lt;/b&gt; 을 붙이지 않는다.(&lt;b&gt;;&lt;/b&gt;을 두 개만 쓴다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당연스럽게도 실행 결과는 완전히 똑같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;258&quot; width=&quot;284&quot; height=&quot;221&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/barqx3/btrcb90FjlT/vbu1P2gl24eS7oiiCtzqqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/barqx3/btrcb90FjlT/vbu1P2gl24eS7oiiCtzqqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/barqx3/btrcb90FjlT/vbu1P2gl24eS7oiiCtzqqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbarqx3%2Fbtrcb90FjlT%2Fvbu1P2gl24eS7oiiCtzqqk%2Fimg.png&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;258&quot; width=&quot;284&quot; height=&quot;221&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이렇게 하면 다른 용도로 i 라는 이름의 변수를 사용하기 애매해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매번 초기화식을 0으로 적어준다 하더라도 for문이 작동한 후에 i의 값이 원래 값으로 복구되지 않기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;i 같은 변수는 for문에서만 사용하는 것이 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 C에서 이걸 해결하는 방법이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기화식에서 바로 변수를 선언해서 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무슨 말이냐면..&lt;/p&gt;
&lt;pre id=&quot;code_1629178552301&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {	
	for(int i = 0/*초기화식에서 변수를 선언함*/;i&amp;lt;10;i++) {
		printf(&quot;i is %d\n&quot;, i);
	}
    
    
	for(int i = 0/*초기화식에서 변수를 선언함*/;i&amp;lt;10;i++) {
		printf(&quot;i times 10 is %d\n&quot;, i * 10);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 for문이 시작할 때 i가 생성되고 for문이 끝날 때 i가 소멸되어 오직 해당 for문에서만 접근할 수 있는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반복용 변수를 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드에서 보이다시피 모든 for문에서 i를 사용할 수 있게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;for문은 나중에 배울 배열을 사용할 때 굉장히 자주 사용하기 때문에 잘 익혀두는 게 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;연습 예제 :... 1부터 100까지 정수의 제곱을 출력하는 코드를 작성하라.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;꼭 미리 코드를 작성해보고 정답을 확인하기 바란다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;details&gt;
&lt;summary style=&quot;color: blue;&quot;&gt;▼ 정답 보기&lt;/summary&gt;
&lt;pre id=&quot;code_1629178686115&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {	
	for(int i = 0;i&amp;lt;10;i++) {
		printf(&quot;i times i is %d\n&quot;, i * i);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;다음 강좌에서는 swtich에 대해 알아볼 것이다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>for</category>
      <category>if</category>
      <category>i출력하기</category>
      <category>while</category>
      <category>반복문</category>
      <category>제어문</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/25</guid>
      <comments>https://deepprogramming.tistory.com/25#entry25comment</comments>
      <pubDate>Tue, 17 Aug 2021 14:40:48 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 9.2강 - 제어문, 조건 관리하기 (while 사용법)</title>
      <link>https://deepprogramming.tistory.com/24</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) while&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지난 강좌에서 if에 대해 알아보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if는 코드에 조건을 삽입해 그 조건이 성립할 때만 지정된 코드를 실행하는 제어문이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;while도 if처럼 그 이름에서 기능을 유추할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;381&quot; data-origin-height=&quot;82&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sQtD4/btraQqhEaxa/QetiMRBbPdVbzjF2rHotx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sQtD4/btraQqhEaxa/QetiMRBbPdVbzjF2rHotx0/img.png&quot; data-alt=&quot;출처 - 네이버 사전&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sQtD4/btraQqhEaxa/QetiMRBbPdVbzjF2rHotx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsQtD4%2FbtraQqhEaxa%2FQetiMRBbPdVbzjF2rHotx0%2Fimg.png&quot; data-origin-width=&quot;381&quot; data-origin-height=&quot;82&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 - 네이버 사전&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;~하는 동안.. 그렇다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;while은 특정 &lt;b&gt;조건이 성립하는 동안&lt;/b&gt; 코드를 실행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 코드를 보자.&lt;/p&gt;
&lt;pre id=&quot;code_1627651454608&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    int a = 10;
    
    while(a &amp;gt; 0) {
        printf(&quot;a is %d\n&quot;, a);
        a--;//감소 연산자를.. 기억해야 한다
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a의 초기값은 10이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 while의 조건을 보니 a \(&amp;gt; \) 0 이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 말은, a가 0보다 클 동안 코드를 실행한다는 뜻이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 실행되는 코드는 두 줄인데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;printf로 a의 값을 출력한 후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a에서 1을 뺀다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 a는 9가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 조건을 확인한다. 9 \(&amp;gt;&amp;nbsp;\) 0, 여전히 조건이 성립한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 또 다시 printf, a--;를 실행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a가 8이 됐다. 여전히 조건은 성립한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 쭉 반복하면서 a가 0이 됐을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0 \(&amp;gt; \) 0 이라는 식이 성립하지 않게 되면서 while은 종료된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 코드를 실행해보면 이렇다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;428&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/12fqR/btraPtZ0MeB/K08z8LwenLdZg0trtFlmh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/12fqR/btraPtZ0MeB/K08z8LwenLdZg0trtFlmh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/12fqR/btraPtZ0MeB/K08z8LwenLdZg0trtFlmh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F12fqR%2FbtraPtZ0MeB%2FK08z8LwenLdZg0trtFlmh0%2Fimg.png&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;428&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 while은 이것보다 더 많은 경우에서 쓰일 수 있지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자의 커리큘럼 기획 실수로 포스팅으로 다루지 않은 것을 빼면 이것 밖에 설명할 것이 떠오르지 않았..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) do - while&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방금 말한 것처럼 여기서 설명은 못하지만 while을 쓸 수 있는 경우 중&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;do - while문&lt;/b&gt;을 이용하면 편한 것들이 몇 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;do - while은 조건이 성립하냐에 관계없이 일단 &lt;b&gt;무조건 최초 &quot;한 번&quot;은 실행&lt;/b&gt;을 하게 되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 무슨 말이냐면&lt;/p&gt;
&lt;pre id=&quot;code_1627825927271&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    int x = -10;
    
    printf(&quot;1 : %d\n&quot;, x);
    while(x &amp;lt; 1) {
        printf(&quot;++x!!\n&quot;);
        ++x;
    }
    
    printf(&quot;2 : %d\n&quot;, x);

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드를 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;x를 무조건 양수로 만들어주는 코드이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 -10을 넣으면 `++x`가 총 11번 실행되면서 2에서 x는 1로 출력된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;551&quot; width=&quot;246&quot; height=&quot;460&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sCCxP/btraWSSqchB/S8bk25zNDkA2AlXlwAj37k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sCCxP/btraWSSqchB/S8bk25zNDkA2AlXlwAj37k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sCCxP/btraWSSqchB/S8bk25zNDkA2AlXlwAj37k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsCCxP%2FbtraWSSqchB%2FS8bk25zNDkA2AlXlwAj37k%2Fimg.png&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;551&quot; width=&quot;246&quot; height=&quot;460&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이렇게 - 부호를 뺀다면?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;355&quot; width=&quot;259&quot; height=&quot;317&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/betpuy/btraXXFS3pg/IowYNkPSUF3qCzgJ6xxKN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/betpuy/btraXXFS3pg/IowYNkPSUF3qCzgJ6xxKN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/betpuy/btraXXFS3pg/IowYNkPSUF3qCzgJ6xxKN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbetpuy%2FbtraXXFS3pg%2FIowYNkPSUF3qCzgJ6xxKN1%2Fimg.png&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;355&quot; width=&quot;259&quot; height=&quot;317&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;x \(&amp;lt;\) 1 이라는 조건이 성립하지 않기 때문에 while에 적힌 코드는 전혀 실행되지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;그런데 만약 이 코드를 &lt;b&gt;필수로 한 번쯤은 실행을 해야하는 상황&lt;/b&gt;이라면? (지금 코드로는 잘 이해하기 어려울 것이다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 방법이 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1627826275571&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    int x = 10;
    
    printf(&quot;1 : %d\n&quot;, x);
    
    //그냥 한 번 실행해주면 되지
    printf(&quot;++x!!\n&quot;);
    ++x;
    while(x &amp;lt; 1) {
        printf(&quot;++x!!\n&quot;);
        ++x;
    }
    
    printf(&quot;2 : %d\n&quot;, x);

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;375&quot; width=&quot;289&quot; height=&quot;362&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IvPdA/btraVpDaZw0/VuTGCstAWxO9nIScGjvee1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IvPdA/btraVpDaZw0/VuTGCstAWxO9nIScGjvee1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IvPdA/btraVpDaZw0/VuTGCstAWxO9nIScGjvee1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIvPdA%2FbtraVpDaZw0%2FVuTGCstAWxO9nIScGjvee1%2Fimg.png&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;375&quot; width=&quot;289&quot; height=&quot;362&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 사진에서 확인할 수 있듯이 조건은 성립하지 않지만 한 번은 실행이 됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간--단..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이건 어디까지나 초간단 예제이기 때문에 그렇고 while에서 작성할 코드가 더 길어지면 이것은 눈으로만 보기에도&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불편한 에러 사항이 되지 않을 수가 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럴 때 사용하는 게 do - while이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용법은 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1627826480236&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    int x = 10;
    
    printf(&quot;1 : %d\n&quot;, x);
    
    do {
        printf(&quot;++x!!\n&quot;);
        ++x;
    } while(x &amp;lt; 1);
    
    printf(&quot;2 : %d\n&quot;, x);

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간--단..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;do { } 에 실행할 코드를 적고 뒤에 while의 조건을 적으면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모양새는 if - else와 비슷한 구조를 띄고 있는 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if - else와 마찬가지로 do와 while 사이에는 ';' 을 넣으면 안 되고 while 조건을 쓴 뒤에는 꼭 ';' 을 붙여줘야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 코드가 길어져도 보기 편할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 강좌에서는 for에 대해 알아볼 것이다.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>for</category>
      <category>if</category>
      <category>while</category>
      <category>제어문</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/24</guid>
      <comments>https://deepprogramming.tistory.com/24#entry24comment</comments>
      <pubDate>Sun, 1 Aug 2021 23:03:40 +0900</pubDate>
    </item>
    <item>
      <title>Logitech G603 마우스 언박싱!!</title>
      <link>https://deepprogramming.tistory.com/23</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;매우 초라하고 짧은 언박싱&lt;/s&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;새 마우스 G603이 도착했다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터를 새로 맞추느라 주변기기까지 샀는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 장치들은 포스팅하는 걸 깜빡해서.. 마우스만^^&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;585&quot; height=&quot;788&quot; data-origin-width=&quot;2250&quot; data-origin-height=&quot;3032&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcON8v/btq99n5YOq9/yWXjfVThygAM0HDxYF0i31/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcON8v/btq99n5YOq9/yWXjfVThygAM0HDxYF0i31/img.jpg&quot; data-alt=&quot;인상적인 상자&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcON8v/btq99n5YOq9/yWXjfVThygAM0HDxYF0i31/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcON8v%2Fbtq99n5YOq9%2FyWXjfVThygAM0HDxYF0i31%2Fimg.jpg&quot; width=&quot;585&quot; height=&quot;788&quot; data-origin-width=&quot;2250&quot; data-origin-height=&quot;3032&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;인상적인 상자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;G703과 G603 중 무엇을 살까 고민을 굉장히 많이 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;G703의 최대 장점인 파워플레이는 먼~ 미래에 사용하게 될 것 같아&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;G603을 골랐다.(G703은 충전 방식인데 건전지인 G603이 편할 것 같아서..)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;2250&quot; width=&quot;629&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XRtkc/btq93oFji1M/ai3KaRrm4XbHYjRzIo7nH0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XRtkc/btq93oFji1M/ai3KaRrm4XbHYjRzIo7nH0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XRtkc/btq93oFji1M/ai3KaRrm4XbHYjRzIo7nH0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXRtkc%2Fbtq93oFji1M%2Fai3KaRrm4XbHYjRzIo7nH0%2Fimg.jpg&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;2250&quot; width=&quot;629&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AA 건전지는 많이 무겁다고 해서 AAA와 AAA to AA 홀더를 구매할까 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같이 동봉되는 줄 몰랐..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이왕 온 거 그냥 AA쭉 쓸 생각임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뭐 많이 무겁지 않고 무게도 쓸만하다.&lt;/p&gt;
&lt;figure data-ke-type=&quot;image&quot; data-ke-style=&quot;alignLeft&quot; data-origin-width=&quot;3803&quot; data-origin-height=&quot;1667&quot; data-image-src=&quot;https://blog.kakaocdn.net/dn/plnL1/btq96EVfHCJ/FXVdcTy4pLV2EX6UAVhF1k/img.jpg&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;3803&quot; data-origin-height=&quot;1667&quot; width=&quot;646&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/plnL1/btq96EVfHCJ/FXVdcTy4pLV2EX6UAVhF1k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/plnL1/btq96EVfHCJ/FXVdcTy4pLV2EX6UAVhF1k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/plnL1/btq96EVfHCJ/FXVdcTy4pLV2EX6UAVhF1k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FplnL1%2Fbtq96EVfHCJ%2FFXVdcTy4pLV2EX6UAVhF1k%2Fimg.jpg&quot; data-origin-width=&quot;3803&quot; data-origin-height=&quot;1667&quot; width=&quot;646&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;먼저 온 체리 저적 키보드.. 크으 보기 좋당&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;곧 사용기도 올라갈 듯?&lt;/p&gt;</description>
      <category>IT 담소 나눔터</category>
      <category>G603</category>
      <category>마우스</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/23</guid>
      <comments>https://deepprogramming.tistory.com/23#entry23comment</comments>
      <pubDate>Wed, 21 Jul 2021 11:25:30 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 9.1강 - 제어문에서 논리 연산자 사용하기 (if의 사용법)</title>
      <link>https://deepprogramming.tistory.com/22</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 조건 여러 개 사용하기&lt;/h2&gt;
&lt;pre id=&quot;code_1626146715479&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int a, b;
  a = 3, b = 5;

  if (a == 3) {
    if (b == 5) {
      printf(&quot;a는 3, b는 5입니다\n&quot;);
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저번 강좌에서 이렇게 if문 여러 개를 겹쳐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 조건을 동시에 만족하는 경우에 코드를 실행할 수 있다고 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이것보다 더 편리하고 직관적으로 여러 개의 조건을 사용하는 방법이 있는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그것이 바로 논리 연산자이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 논리 연산자란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논리 연산자란, 연산자 파트에서도 말했지만 다시 말하자면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관계 연산자로 판단한 결과를 다시 논리적으로 비교하는 연산자이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 종류는 아래와 같다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 32.6744%; height: 221px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 27px;&quot;&gt;
&lt;td style=&quot;width: 24.0933%; text-align: center; height: 27px;&quot;&gt;연산자&lt;/td&gt;
&lt;td style=&quot;width: 75.9067%; text-align: center; height: 27px;&quot;&gt;용도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 27px;&quot;&gt;
&lt;td style=&quot;width: 24.0933%; text-align: center; height: 27px;&quot;&gt;&amp;amp;&amp;amp;(AND)&lt;/td&gt;
&lt;td style=&quot;width: 75.9067%; text-align: center; height: 27px;&quot;&gt;양쪽이 모두 참일 때 참을 반환함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 47px;&quot;&gt;
&lt;td style=&quot;width: 24.0933%; text-align: center; height: 47px;&quot;&gt;||(OR)&lt;/td&gt;
&lt;td style=&quot;width: 75.9067%; text-align: center; height: 47px;&quot;&gt;양쪽 중 하나만이라도 참일 때 참을 반환함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 66px;&quot;&gt;
&lt;td style=&quot;width: 24.0933%; text-align: center; height: 66px;&quot;&gt;!(NOT)&lt;/td&gt;
&lt;td style=&quot;width: 75.9067%; text-align: center; height: 66px;&quot;&gt;참-&amp;gt;거짓&lt;br /&gt;거짓-&amp;gt;참&lt;br /&gt;으로 반전시켜줌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(3) 논리 연산자 사용하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 &amp;amp;&amp;amp; 연산자를 사용해보자&lt;/p&gt;
&lt;pre id=&quot;code_1626146877975&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int a, b;
  a = 3, b = 5;

  if (a == 3 &amp;amp;&amp;amp; b == 5) {
    printf(&quot;a는 3, b는 5입니다&quot;);   
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 a == 3, b == 5을 모두 비교해서 둘 다 참일 때만 출력이 될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 위에 코드는 printf가 실행된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 이런 식으로 b = 7;로 고쳐주면&lt;/p&gt;
&lt;pre id=&quot;code_1626147187975&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int a, b;
  a = 3, b = 7;

  if (a == 3 &amp;amp;&amp;amp; b == 5) {
    printf(&quot;a는 3, b는 5입니다&quot;);   
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a == 3은 참이지만 b == 5가 거짓이므로&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무것도 출력되지 않고 프로그램이 종료된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 여기서 연산자를 || 로 바꿔주면&lt;/p&gt;
&lt;pre id=&quot;code_1626744552001&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int a, b;
  a = 3, b = 7;

  if (a == 3 || b == 5) {
    printf(&quot;a는 3 또는 b는 5입니다&quot;);   
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;337&quot; data-origin-height=&quot;233&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Aiw85/btq9Xcrq6D9/XAJhkyrFUQmRXWXJJuDmM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Aiw85/btq9Xcrq6D9/XAJhkyrFUQmRXWXJJuDmM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Aiw85/btq9Xcrq6D9/XAJhkyrFUQmRXWXJJuDmM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAiw85%2Fbtq9Xcrq6D9%2FXAJhkyrFUQmRXWXJJuDmM0%2Fimg.png&quot; data-origin-width=&quot;337&quot; data-origin-height=&quot;233&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;b == 5가 거짓이지만 a == 3이 참이기에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if문이 작동했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 전체 조건을 괄호로 묶어준 후, ! 연산자를 사용하여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 조건을 반전시킬 수도 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1626153391510&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int a, b;
  a = 3, b = 5;

  if (!(a == 3 &amp;amp;&amp;amp; b == 5))/*이렇게 연산자의 우선 순위를 바꿔주거나 하나로 묶을 수 있다*/ {
  //a != 3 &amp;amp;&amp;amp; b != 5 와 같은 논리
    printf(&quot;a는 3, b는 5입니다&quot;);   
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 마지막에 연산되는 &amp;amp;&amp;amp; 연산자의 결과가 참이면 거짓으로, 거짓이면 참으로 반전시켜준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드에서는 a가 3이고 b가 5라서 참이 되면 거짓, a가 3이지만 b가 5가 아닌 등의 경우에서 거짓이 되면 참으로 반전시켜주므로,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;a가 3이고 b가 5인 경우가 아닌 모든 경우&lt;/b&gt; 코드를 실행하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(4) 조건으로 들어갈 수 있는 값&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if와 같은 제어문에서 조건식에 들어갈 수 있는 값은 무수히 많다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그중에서 0은 거짓, 0이 아닌 모든 값은 참이 되는데 이걸 이용하면 이런 식이 가능하다.&lt;/p&gt;
&lt;pre id=&quot;code_1626153752974&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int x = 0;
  
  if (x == 0) {
    printf(&quot;x is zero~~\n&quot;);
  }
  if (!x) {
    printf(&quot;x is zero!!\n&quot;);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행해보면 이렇다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;352&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IKhd3/btq9uA6qvE7/VmTsgkcz1hZ7ilphGfiS1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IKhd3/btq9uA6qvE7/VmTsgkcz1hZ7ilphGfiS1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IKhd3/btq9uA6qvE7/VmTsgkcz1hZ7ilphGfiS1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIKhd3%2Fbtq9uA6qvE7%2FVmTsgkcz1hZ7ilphGfiS1k%2Fimg.png&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;352&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 if문이 모두 작동한 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;x == 0&lt;/b&gt; : 가 0인지 체크했으니 당연히 출력이 된 것이고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 x가 1, 2, 3.. 등의 값이라면 출력되지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;!x&lt;/b&gt; : 위에서 조건식으로 들어가는 식은 그 값이 0일 경우 거짓, 0이 아닌 다른 모든 값은 참이라고 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 ! 연산자는 참/거짓을 서로 반전시켜주는 역할을 하므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;x = 0 일 때 거짓 -&amp;gt; 참이 되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;x = 1,2,3,4.... 일 때&amp;nbsp; 참 -&amp;gt; 거짓이 되어 x == 0과 !x 는 같은 표현이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 강좌에서는 while문을 알아볼 것이다.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>for</category>
      <category>if</category>
      <category>while</category>
      <category>논리연산자</category>
      <category>제어문</category>
      <category>조건</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/22</guid>
      <comments>https://deepprogramming.tistory.com/22#entry22comment</comments>
      <pubDate>Tue, 20 Jul 2021 10:31:22 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 9강 - 제어문, 조건 관리하기 (if의 사용법)</title>
      <link>https://deepprogramming.tistory.com/21</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 제어문이란&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제어문이란, 프로그램의 흐름을 특정 조건과 함께 관리하는 도구를 말한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입출력과 동시에 프로그램의 기본이 되는 것이 제어문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 모든 프로그램은 입출력, 조건을 다루는 제어문으로만 이루어진다고 해도 과언이 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 그 형태가 조금씩 다를 뿐이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그만큼 제어문을 잘 다룰 수 있어야하고 제어문을 잘 다룬다면 더 좋은 알고리즘을 따를 수 있을 것이고, 이는 곧 프로그램의 성능과도 직결되는 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대충 제어문이 중요한 이유를 주절댔으니 이제 본격적으로 알아보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 제어문의 종류&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 제어문은 크게 두 종류로 나뉜다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 조건에 따라 코드를 실행함, 조건문&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 조건에 따라 코드를 반복 실행함, 반복문&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이중 이번 강좌에서 다룰 것은 1번, 조건에 따라 코드를 실행하는 조건문 &lt;b&gt;if&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2번에 해당하는 &lt;b&gt;while&lt;/b&gt;과&amp;nbsp;&lt;b&gt;for&lt;/b&gt;에도 조건은 포함되지만 반복문이라고 불린다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if의 사용법은 다음과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1626009543538&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if(조건1) {
	//조건 1이 참일 경우 실행할 코드
}
else if (조건1이 거짓일 경우 다시 비교할 조건2) {
	//조건2가 참일 경우(조건1은 거짓이면서) 실행할 코드
}
else {
	//조건1과 조건2가 모두 거짓일 경우 최후의 수단으로 실행할 코드
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 조건들은 관계 연산자로 생성할 수 있고, 그 종류는 아래와 같다. 반환값은 모두 참/거짓이다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 45.1307%; height: 291px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.7282%; text-align: center;&quot;&gt;연산자&lt;/td&gt;
&lt;td style=&quot;width: 74.2718%; text-align: center;&quot;&gt;용도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.7282%; text-align: center;&quot;&gt;==&lt;/td&gt;
&lt;td style=&quot;width: 74.2718%; text-align: center;&quot;&gt;왼쪽 값과 오른쪽 값이 같은가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.7282%; text-align: center;&quot;&gt;!=&lt;/td&gt;
&lt;td style=&quot;width: 74.2718%; text-align: center;&quot;&gt;왼쪽 값과 오른쪽 값이 같지 않은가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.7282%; text-align: center;&quot;&gt;&amp;gt;&lt;/td&gt;
&lt;td style=&quot;width: 74.2718%; text-align: center;&quot;&gt;왼쪽 값이 오른쪽 값보다 큰가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.7282%; text-align: center;&quot;&gt;&amp;lt;&lt;/td&gt;
&lt;td style=&quot;width: 74.2718%; text-align: center;&quot;&gt;왼쪽 값이 오른쪽 값보다 작은가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.7282%; text-align: center;&quot;&gt;&amp;gt;=&lt;/td&gt;
&lt;td style=&quot;width: 74.2718%; text-align: center;&quot;&gt;왼쪽 값이 오른쪽 값보다 크거나 같은가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25.7282%; text-align: center;&quot;&gt;&amp;lt;=&lt;/td&gt;
&lt;td style=&quot;width: 74.2718%; text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #f9f9f9;&quot;&gt;왼쪽 값이 오른쪽 값보다 작거나 같은가&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;== &lt;/b&gt;연산자 대신 &lt;b&gt;= &lt;/b&gt;를&amp;nbsp;사용하는 것은 흔히들 하는 실수인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 연산자는 완전 다른 연산자이므로 헷갈리지 않도록 주의하자.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 활용하면 이렇게 할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1626009982795&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int a, b;
	a = 10;
	b = 20;

	if (a &amp;gt; b) {
		printf(&quot;a는 b보다 크다\n&quot;);
	}
	else if(a &amp;lt; b) {
		printf(&quot;a는 b보다 작다\n&quot;);
	}
	else {//작지도 않고 크지도 않다면 같을 것이므로 else
		printf(&quot;a와 b는 같다\n&quot;);
	}
	//즉 이런 식으로도 할 수는 있다
	/*
	else if (a==b) {
		printf(&quot;a와 b는 같다&quot;);
	}
	*/
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 a = 10, b = 20 이므로 출력은 &quot;a는 b보다 작다&quot;가 나올 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;printf말고 다른 코드를 넣어봐도 좋다. 강좌에서는 불필요하다고 판단하여 생략한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 if를 제외한 else와 else if는 생략할 수도 있고, 그중에서 else if는 여러 번 쓸 수 있으며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;else는 단 한 번만 가능하다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1626010646765&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int a = 2;

	if (a == 1) {
		printf(&quot;a는 1입니다\n&quot;);
	}
	else if (a == 2) {
		printf(&quot;a는 2입니다\n&quot;);
	}
	else if (a == 3) {
		printf(&quot;a는 3입니다\n&quot;);
	}
	else {
		printf(&quot;a의 값을 알 수 없습니다\n&quot;);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;details&gt;
&lt;summary style=&quot;color:gray;&quot;&gt;▼ 여담&lt;/summary&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;이게 공식적으로 맞는 내용인지는 모르겠으나&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;C에서는 if와 else만 지원한다고 필자는 생각한다 (else if는 없음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;그저 else 가 또 다른 if를 실행하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;반면 파이썬 언어에서는 elif 라는 별도의 키워드가 존재한다.&lt;/p&gt;
&lt;/details&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 if 안에서 또 if를 사용하는 것도 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a, b 수에 따라 다른 연산을 거친 결과를 산출하는 코드이다.&lt;/p&gt;
&lt;pre id=&quot;code_1626011461266&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int a = 4, b = 7;
	int result = 0;

	if (a % 2 == 1)/*2로 나눈 나머지가 1, 즉 홀수라면 */ {
		if (b % 2 == 1) {//b가 홀수라면
			result = a + b;//더하기
			printf(&quot;a + b = %d\n&quot;, result);
		}
		else {//b가 홀수 아니면 무조건 짝수
			result = a - b;//빼기
			printf(&quot;a - b = %d\n&quot;, result);
		}
	}
	else {//a가 짝수이면서
		if (b % 2 == 1) {//b가 홀수면
			result = a * b;//곱하기
			printf(&quot;a * b = %d\n&quot;, result);
		}
		else {//b가 짝수면
			result = a * b * 2;//곱의 두 배
			printf(&quot;a * b * 2= %d\n&quot;, result);
		}
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드에선 a = 4, b = 7로 짝수 + 홀수 조합이므로 두 수의 곱이 나올 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 줄의 코드도 가능하다는 것을 보이기 위해 result 변수를 추가하였는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 if-else로 실행되는 코드가 한 줄이라면? { } 가 생략이 가능하다.&lt;/p&gt;
&lt;pre id=&quot;code_1626011571771&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int a = 10;
	if (a == 10) printf(&quot;a는 10입니다\n&quot;);//실행할 코드가 printf 하나이므로
	else printf(&quot;a는 10이 아닙니다\n&quot;);//중괄호 삭제 가능
	//else if(a != 10) printf(&quot;a는 10이 아닙니다\n&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 강좌에서는 제어문에서 사용되는 또 다른 연산자인 논리 연산자에 대해서 알아볼 것이다.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>for</category>
      <category>if</category>
      <category>while</category>
      <category>제어문</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/21</guid>
      <comments>https://deepprogramming.tistory.com/21#entry21comment</comments>
      <pubDate>Sun, 11 Jul 2021 23:05:39 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 8강 - printf의 다양한 사용법 (소수점, 접두사, 여백)</title>
      <link>https://deepprogramming.tistory.com/20</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 강좌는 printf 서식 문자의 여러 사용법을 알아볼 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 소수점 지정하기&lt;/h2&gt;
&lt;pre id=&quot;code_1624854096315&quot; class=&quot;c++ arduino&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    double a = 3.14;

    printf(&quot;%lf\n&quot;, a);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래는 이렇게 소수점을 출력했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이렇게만 출력하면 아래와 같은 일이 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;268&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3xxuH/btq8f9vAiap/qdM6HABNnwC3CrFWDMXWek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3xxuH/btq8f9vAiap/qdM6HABNnwC3CrFWDMXWek/img.png&quot; data-alt=&quot;필요없는 뒷자리까지 출력 !&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3xxuH/btq8f9vAiap/qdM6HABNnwC3CrFWDMXWek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3xxuH%2Fbtq8f9vAiap%2FqdM6HABNnwC3CrFWDMXWek%2Fimg.png&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;268&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;필요없는 뒷자리까지 출력 !&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 깔끔하게 셋째 자리까지만 출력하려면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서식 문자를 이렇게 쓰면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;%.3lf&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%와 lf 사이에 .(소수점자릿수) 를 적으면 해당 자릿수까지만 반올림되어 출력된다.(float을 출력할 땐 f...)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3을 썼더니 반올림되어 3.142가 출력됐다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;314&quot; data-origin-height=&quot;263&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csF5yI/btq8hmu4ZhX/MV3KZuUtbF55YiFdjklHkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csF5yI/btq8hmu4ZhX/MV3KZuUtbF55YiFdjklHkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csF5yI/btq8hmu4ZhX/MV3KZuUtbF55YiFdjklHkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsF5yI%2Fbtq8hmu4ZhX%2FMV3KZuUtbF55YiFdjklHkk%2Fimg.png&quot; data-origin-width=&quot;314&quot; data-origin-height=&quot;263&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 더 긴 자릿수까지 출력할 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;280&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLMssx/btq8lDo6fwg/A46HCnS8qfkWt4FMxyphS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLMssx/btq8lDo6fwg/A46HCnS8qfkWt4FMxyphS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLMssx/btq8lDo6fwg/A46HCnS8qfkWt4FMxyphS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLMssx%2Fbtq8lDo6fwg%2FA46HCnS8qfkWt4FMxyphS0%2Fimg.png&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;280&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 접두사 붙이기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 주로 사용하는 진법체계는 0~9를 사용하는 10진법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 C언어에서는 2진법, 8진법, 16진법을 사용할 수도 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1625659123692&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    int a = 10;
    int b = 0x10;
    int c = 010;
    int d = 0b1010;

    printf(&quot;a : %d, b : %d, c : %d, d : %d\n&quot;, a, b, c, d);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 진법에 맞는 접두사를 적어줘야 하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10진법은 늘 해왔던대로인 아무것도 없는 것,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8진법은 0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;16진법은 0x&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2진법은 0b이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;int a, b, c, d에 각각 진법을 다르게 하여 값을 대입해보았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;322&quot; width=&quot;489&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8Ync3/btq805zOPYs/YUiTnk9InNK26DtYEYlKWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8Ync3/btq805zOPYs/YUiTnk9InNK26DtYEYlKWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8Ync3/btq805zOPYs/YUiTnk9InNK26DtYEYlKWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8Ync3%2Fbtq805zOPYs%2FYUiTnk9InNK26DtYEYlKWK%2Fimg.png&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;322&quot; width=&quot;489&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%d는 10진법 정수를 출력하는 서식 문자이므로 b, c, d가 10진법으로 변환되어 출력됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8진법과 16진법은 각각 %o와 %x로 출력할 수 있는데, 이때 %와 문자 사이에 #을 쓰면 '접두사'를 붙일 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1625659532832&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    int b = 0x10;
    int c = 010;
    
    printf(&quot;b : %x, c : %o\n&quot;, b, c);//접두사 없이 출력하기
    printf(&quot;b : %#x, c : %#o\n&quot;, b, c);//접두사와 함께 출력하기
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;309&quot; width=&quot;409&quot; height=&quot;280&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3wzbn/btq80yQbTjr/6hByhhZaKUhmzsA40sp5Gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3wzbn/btq80yQbTjr/6hByhhZaKUhmzsA40sp5Gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3wzbn/btq80yQbTjr/6hByhhZaKUhmzsA40sp5Gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3wzbn%2Fbtq80yQbTjr%2F6hByhhZaKUhmzsA40sp5Gk%2Fimg.png&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;309&quot; width=&quot;409&quot; height=&quot;280&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아쉽게도 2진법은 C언어에서 지원하는 서식 문자가 없다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 직접 2진법으로 출력해주는 코드를 작성해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10진법을 2진법으로 변환할 때는 2로 나눈 나머지를 이용하곤 하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순 출력에는 조금 더 간단한 비트 연산을 써도 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 이는 어쨌든 아직 강좌를 쓰지 않은 제어문을 사용하므로 나중에 포스팅하겠다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(3) 여백&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가끔 어떤 코드들을 보면 이러한 코드를 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;246&quot; data-origin-height=&quot;272&quot; width=&quot;207&quot; height=&quot;229&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czPxS3/btq806lcO67/WHND0OIgZdgw3rhu6xd1wK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czPxS3/btq806lcO67/WHND0OIgZdgw3rhu6xd1wK/img.png&quot; data-alt=&quot;사진에서는 변수 이름들의 길이가 달라서&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czPxS3/btq806lcO67/WHND0OIgZdgw3rhu6xd1wK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczPxS3%2Fbtq806lcO67%2FWHND0OIgZdgw3rhu6xd1wK%2Fimg.png&quot; data-origin-width=&quot;246&quot; data-origin-height=&quot;272&quot; width=&quot;207&quot; height=&quot;229&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;사진에서는 변수 이름들의 길이가 달라서&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가독성을 위해 Tab으로 열을 맞춰주는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 주석과 비교해보면 확연한 차이가 보일 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 걸 콘솔창에서도 적용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숫자 하나는 두 자릿수, 하나는 세 자릿수, 하나는 다섯 자릿수인데 최소 너비를 8로 설정해주면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모자란 공간은 공백으로 채워진다. 백문이불여일견..&lt;/p&gt;
&lt;pre id=&quot;code_1625660461771&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int age		= 17;
	int foot	= 260;
	int balance = 10823;

	printf(&quot;%8d\n&quot;, age);
	printf(&quot;%8d\n&quot;, foot);
	printf(&quot;%8d\n&quot;, balance);
    
	printf(&quot;--------\n&quot;);
	printf(&quot;12345678\n&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;362&quot; data-origin-height=&quot;210&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqACfw/btq85lg7Mye/jyBsDJ7SDKeXdmj3riQIJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqACfw/btq85lg7Mye/jyBsDJ7SDKeXdmj3riQIJk/img.png&quot; data-alt=&quot;출력 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqACfw/btq85lg7Mye/jyBsDJ7SDKeXdmj3riQIJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqACfw%2Fbtq85lg7Mye%2FjyBsDJ7SDKeXdmj3riQIJk%2Fimg.png&quot; data-origin-width=&quot;362&quot; data-origin-height=&quot;210&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출력 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;17은 6칸, 260은 5칸, 10823은 3칸이 밀려난 상태로 출력이 된 걸 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 앞에 숫자 앞에 0을 붙여주면,&lt;/p&gt;
&lt;pre id=&quot;code_1628602767020&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int age = 17;
	int foot = 260;
	int balance = 10823;

	printf(&quot;%08d\n&quot;, age);
	printf(&quot;%08d\n&quot;, foot);
	printf(&quot;%08d\n&quot;, balance);
	//%8d -&amp;gt; %08d

	printf(&quot;--------\n&quot;);
	printf(&quot;12345678\n&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 여백이 0으로 채워지는 걸 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;259&quot; data-origin-height=&quot;140&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cX1R3p/btrbP9SjDor/twYzkxy2Iak1Ksf2Qtaymk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cX1R3p/btrbP9SjDor/twYzkxy2Iak1Ksf2Qtaymk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cX1R3p/btrbP9SjDor/twYzkxy2Iak1Ksf2Qtaymk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcX1R3p%2FbtrbP9SjDor%2FtwYzkxy2Iak1Ksf2Qtaymk%2Fimg.png&quot; data-origin-width=&quot;259&quot; data-origin-height=&quot;140&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 강좌에서는 제어문에 대해 알아볼 것이다.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>printf</category>
      <category>서식문자</category>
      <category>소수점</category>
      <category>접두사</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/20</guid>
      <comments>https://deepprogramming.tistory.com/20#entry20comment</comments>
      <pubDate>Wed, 7 Jul 2021 21:27:28 +0900</pubDate>
    </item>
    <item>
      <title>Windows 11 Insider Preview 살펴보기</title>
      <link>https://deepprogramming.tistory.com/19</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;인텔 7세대 이하 프로세서에서는 윈도즈 11을 지원하지 않는다길래..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용하는 랩탑이 i5-7200U인 나는 못하는 줄 알았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 Windows Terminal과 WSL 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Insider Preiview에 등록했었는데 그걸로 Windows 11 업데이트가 가능..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 업데이트 했고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바뀐 점을 살펴보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 가장 먼저 창 모서리&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;294&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVm5Iq/btq8ytM6EFa/KkNKXLrhST0pFvUdKQKkY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVm5Iq/btq8ytM6EFa/KkNKXLrhST0pFvUdKQKkY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVm5Iq/btq8ytM6EFa/KkNKXLrhST0pFvUdKQKkY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVm5Iq%2Fbtq8ytM6EFa%2FKkNKXLrhST0pFvUdKQKkY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;618&quot; height=&quot;294&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;294&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;창 모서리들이 둥글게 변했다. 만족 1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업표시줄도 눈에 띄는데, 진짜 옆동네랑 비슷해보이긴함..ㅋㅋ 아무튼 만족 2&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPBIdu/btq8weciasc/RLQkqYihmBWCZqhK5rUpxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPBIdu/btq8weciasc/RLQkqYihmBWCZqhK5rUpxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPBIdu/btq8weciasc/RLQkqYihmBWCZqhK5rUpxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPBIdu%2Fbtq8weciasc%2FRLQkqYihmBWCZqhK5rUpxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;158&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작 화면도 바뀌었다. &lt;s&gt;처음엔 어색해서 그런지 불편&lt;/s&gt;했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쓰다보니 또 적응이 되더라. 만족 3&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;963&quot; data-origin-height=&quot;947&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHIFE2/btq8wdqVMMY/IKv38xrhSLdgVxBmejciW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHIFE2/btq8wdqVMMY/IKv38xrhSLdgVxBmejciW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHIFE2/btq8wdqVMMY/IKv38xrhSLdgVxBmejciW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHIFE2%2Fbtq8wdqVMMY%2FIKv38xrhSLdgVxBmejciW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;554&quot; height=&quot;947&quot; data-origin-width=&quot;963&quot; data-origin-height=&quot;947&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;SE-2475d185-9ca9-43c9-b6aa-c9818ec56188&quot; data-ke-size=&quot;size16&quot;&gt;그 다음 발견한 건 우클릭 메뉴&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;539&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVptHv/btq8ubglnUl/tYcDSx8GxAmaLXvWvZBKjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVptHv/btq8ubglnUl/tYcDSx8GxAmaLXvWvZBKjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVptHv/btq8ubglnUl/tYcDSx8GxAmaLXvWvZBKjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVptHv%2Fbtq8ubglnUl%2FtYcDSx8GxAmaLXvWvZBKjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;301&quot; height=&quot;342&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;539&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존과 비교해 많이 바꼈는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;덕분에 '여기서 콘솔 열기'는 없어졌다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가 아니라 Show more options를 누르니 &lt;s&gt;레거시(?)로 남아있나보다.&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정식 출시 이후에도 남아있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언제쯤 통합될련지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매번 저거 누르는 거 귀찮 ㅜㅜ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;385&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EgaDW/btq8wJDazlY/UOFwaA5RniNITF4SfBl9zK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EgaDW/btq8wJDazlY/UOFwaA5RniNITF4SfBl9zK/img.png&quot; data-alt=&quot;정말 많다.. 저게 은근 편함&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EgaDW/btq8wJDazlY/UOFwaA5RniNITF4SfBl9zK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEgaDW%2Fbtq8wJDazlY%2FUOFwaA5RniNITF4SfBl9zK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;251&quot; height=&quot;683&quot; data-origin-width=&quot;385&quot; data-origin-height=&quot;683&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;정말 많다.. 저게 은근 편함&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;탐색기!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운로드, 문서, ... 이런 아이콘들 새 디자인은 기존 Win 10 Insider Preivew에서도 있었기에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;별로 새롭진 않았고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 화면 분할 기능은 정말 반가웠음~&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;496&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EVBPZ/btq8ujTtUCD/TRkQI8v558XeoBlgVYYIRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EVBPZ/btq8ujTtUCD/TRkQI8v558XeoBlgVYYIRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EVBPZ/btq8ujTtUCD/TRkQI8v558XeoBlgVYYIRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEVBPZ%2Fbtq8ujTtUCD%2FTRkQI8v558XeoBlgVYYIRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;673&quot; height=&quot;496&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;496&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p id=&quot;SE-3872a5a6-576d-4bb0-b966-749cdbc75231&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;유사한 기능을 기존에는 PowerToys라는 유틸리티를 이용했는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;SE-63fdf239-591f-4377-b12c-d4816d66a56f&quot; data-ke-size=&quot;size16&quot;&gt;이젠 기본 기능으로 탑재가 됐음. &lt;s&gt;아직 탐색기만 되는 것 같다.&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 서드파티 앱들도 지원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Alt + Tab 메뉴도 개편됐다. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Win + Tab 이제 잘 안 쓸 듯&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이유는 Alt + Tab이 더 누르기 편한데 비슷하기 때문..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Alt + Tab은 캡쳐가 잘 안돼서 Win + Tab으로 대체한다, 거의 비슷하다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1881&quot; data-origin-height=&quot;863&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kQX9b/btq8v24foQX/IK9E9dai6wUn0hkwRRBa90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kQX9b/btq8v24foQX/IK9E9dai6wUn0hkwRRBa90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kQX9b/btq8v24foQX/IK9E9dai6wUn0hkwRRBa90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkQX9b%2Fbtq8v24foQX%2FIK9E9dai6wUn0hkwRRBa90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;801&quot; height=&quot;863&quot; data-origin-width=&quot;1881&quot; data-origin-height=&quot;863&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 설정에서 '작은 작업 표시줄 사용'이 안보암 ㅜㅜ 굉장히 좋아하는 기능이었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 없어진 건지 잘 모르겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1322&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGDRM2/btq8xEg6EVG/QBns6H5OkR0irbAkPQhml1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGDRM2/btq8xEg6EVG/QBns6H5OkR0irbAkPQhml1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGDRM2/btq8xEg6EVG/QBns6H5OkR0irbAkPQhml1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGDRM2%2Fbtq8xEg6EVG%2FQBns6H5OkR0irbAkPQhml1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1322&quot; height=&quot;169&quot; data-origin-width=&quot;1322&quot; data-origin-height=&quot;169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 이게 참 거슬린다. 아마 앞에서 얘기한 CPU 세대 때문인 것 같은데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;곧 데스크탑 장만하면 되겠지..&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장만해서 바로 윈11 쓰는 중 ,,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속 업데이트 할 예정이다.&lt;/p&gt;</description>
      <category>IT 담소 나눔터</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/19</guid>
      <comments>https://deepprogramming.tistory.com/19#entry19comment</comments>
      <pubDate>Wed, 30 Jun 2021 22:14:22 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 문자의 ASCII 번호 출력하는 프로그램 만들기</title>
      <link>https://deepprogramming.tistory.com/18</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;강좌를 작성하면서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 잘 따라와줬다면 &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;충분히 작성할 수 있을&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;초간단한 프로그램들을 연습하는&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'과제'를 올릴 생각이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 포스팅은 그 첫 번째로, &lt;b&gt;입력한 문자의 ASCII 코드를 알려주는 그런 프로그램&lt;/b&gt;을 만들어보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;힌트를 주자면, 정수를 %c로 출력하거나 문자를 %d로 출력하면 해당 숫자, 문자가 ASCII에서 대응되는 것이 무엇인지 찾을 수 있다 :D&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답은 아래 팝업을 누르자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;details&gt;
&lt;summary style=&quot;color: blue;&quot;&gt;▼ 정답 보기&lt;/summary&gt;
&lt;pre id=&quot;code_1624800626388&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    char ch;

    scanf_s(&quot;%c&quot;, &amp;amp;ch, 1); //Visual Studio에서 실행할 땐 이렇게..

    printf(&quot;%d\n&quot;, ch);//문자를 정수로(ASCII에서 대응하는 숫자로)

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 정말 간단하게 만들 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 여기서 좀 더 바꿔보면&lt;/p&gt;
&lt;pre id=&quot;code_1624801056151&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;conio.h&amp;gt;//_getch()를 위해

int main() {
    char ch = _getch();
    printf(&quot;%d\n&quot;, ch);
	
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;getch는 조금 특별하게 문자를 입력받는 함수이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scanf와의 차이점은 버퍼를 통해 입력받지 않는다는 것인데,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버퍼에 저장되지 않는다는 것은 거쳐가는 메모리 공간이 없다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 키보드를 누르는 즉시 값이 반환되어 ch에 저장된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그걸 %d로 출력하면 ASCII 코드 숫자가 나오게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bx2KZ2/btq8iwXLMCg/VYEVVsjpYxlktxY6WJKQ61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bx2KZ2/btq8iwXLMCg/VYEVVsjpYxlktxY6WJKQ61/img.png&quot; data-alt=&quot;A를 입력했을 때 나오는 숫자,, 97이 나온다면 a를 입력한 것&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bx2KZ2/btq8iwXLMCg/VYEVVsjpYxlktxY6WJKQ61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx2KZ2%2Fbtq8iwXLMCg%2FVYEVVsjpYxlktxY6WJKQ61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;384&quot; height=&quot;332&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;A를 입력했을 때 나오는 숫자,, 97이 나온다면 a를 입력한 것&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 강좌를 쓰지 않은 제어문을 사용하면 이런 코드도 가능한데&lt;/p&gt;
&lt;pre id=&quot;code_1624801706286&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;conio.h&amp;gt;//_getch()를 위해

int main() {
    char ch;
    while (1) {//무한 반복한다는 뜻
        ch = _getch();
        if (ch == '0')//입력된 게 '0'이면
            return 0;//종료한다는 뜻
        else if (ch != ' ')//스페이스바가 아니면
            ch++;//다음 알파벳을 출력하도록 + 1을 한다는 뜻
        printf(&quot;%c&quot;, ch);
    }
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;281&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDfjMo/btq8dtPrDL0/FzTkikHL0nLjTasQaRfdkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDfjMo/btq8dtPrDL0/FzTkikHL0nLjTasQaRfdkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDfjMo/btq8dtPrDL0/FzTkikHL0nLjTasQaRfdkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDfjMo%2Fbtq8dtPrDL0%2FFzTkikHL0nLjTasQaRfdkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;203&quot; height=&quot;71&quot; data-origin-width=&quot;281&quot; data-origin-height=&quot;71&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 입력한 문자의 다음 알파벳이 출력된다 &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/details&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가끔 이렇게라도 간단한 코드를 작성하는 게 코딩 실력 향상에 큰 도움이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쓸모없는 것처럼 보이지만 종종 그 과정에서 쓸모있는 지식을 얻을 수 있기 때문.. :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ 참고로 저 예제에 있는 conio.h 헤더파일은 표준 라이브러리가 아니기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 환경에서 동작하지 않는다는 것도 알아두자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/18</guid>
      <comments>https://deepprogramming.tistory.com/18#entry18comment</comments>
      <pubDate>Sun, 27 Jun 2021 22:53:27 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 7.1강 - 상수, C언어에서 상수 사용하기 (2) (enum, 열거형)</title>
      <link>https://deepprogramming.tistory.com/17</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 열거형이 필요한 이유&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래밍 언어의 문법이나 기능을 잘 활용하려면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 기능이 왜 생겨났고 언제 사용해야하는지 이해하는 것이 중요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;enum&lt;/b&gt;도 마찬가지이므로 먼저 &lt;b&gt;enum &lt;/b&gt;없이 작성한 코드로 불편함(?)이 뭔지 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드 내부적으로는 각각을 식별할 수만 있다면 문제가 없는 요소들을&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;효율을 위해 문자열보단 정수로 저장하는 경우가 많은데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들면 통신 관련 프로그램에서 패킷의 종류를 구분하는 경우 등이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 코드는 그러한 것들 중 색을 위한 변수들을 만든 것입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1624617918002&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

const int RED = 0;
const int ORANGE = 1;
const int YELLOW = 2;
const int GREEN = 3;
const int BLUE = 4;
const int PURPLE = 5;
const int BLACK = 6;
const int WHITE = 7;

int main() {
	int MyColor = YELLOW;

	printf(&quot;My Color : %d\n&quot;, MyColor);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 색들마다 다 다른 값들을 할당해주고 그 변수들을 사용하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;const로 선언했으니 안심하고 값을 서로 구분하는 용도로 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 이것은 불편한 점이 몇 가지 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 자료형을 매번 적어줘야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 값을 일일이 할당해줘야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 해결하기 위한 것이 바로&amp;nbsp;&lt;b&gt;enum&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 열거형 사용하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;enum&lt;/b&gt;을 우리말로 열거형이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용방법도 아래처럼 기호들을 '열거'하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;enum (열거형 이름) {&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;값1,값2,값3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;};'&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;','로 값들을 구분하며 마지막에는 붙이지 않고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 enum을 선언한 후 중괄호 뒤에는 ';'를 붙여줘야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가독성을 위해 한 줄에 값 하나만 적기도 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1624620884198&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

enum Color {
	RED,//콤마로 구분하는데
	ORANGE,
	YELLOW,
	GREEN,
	BLUE,
	PURPLE,
	BLACK,
	WHITE//마지막은 쓰지 않고
};//세미콜론으로 끝낸다

int main() {
	enum Color MyColor = YELLOW;
    //C에서는 enum 키워드를 반드시 붙여야 한다

	printf(&quot;My Color is  %d\n&quot;, MyColor);//2가 출력된다.
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 맨 처음에 있는 RED부터 마지막 WHITE까지 &lt;b&gt;0부터&lt;/b&gt; 차례대로 &lt;b&gt;자동으로 &lt;/b&gt;값을 할당해주게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YELLOW는 Color에 선언된 열거형 값이므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자료형이 Color여야 하는데, 이때 C언어에서는 enum을 꼭 붙여줘야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;enum 값 자체는 4Bytes 정수형이므로 %d로 출력해주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;754&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w0wXp/btq79M8EUnb/u6CvkM1gKp8809XHwA20AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w0wXp/btq79M8EUnb/u6CvkM1gKp8809XHwA20AK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w0wXp/btq79M8EUnb/u6CvkM1gKp8809XHwA20AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw0wXp%2Fbtq79M8EUnb%2Fu6CvkM1gKp8809XHwA20AK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;517&quot; height=&quot;387&quot; data-origin-width=&quot;754&quot; data-origin-height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%d로 출력이 된다는 것은, int에도 저장이 된다는 뜻이다.&lt;/p&gt;
&lt;pre id=&quot;code_1624768648757&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int ColorN = GREEN;//작동이 잘 된다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++에서는 enum 키워드 생략이 가능하기 때문에 cpp 확장자를 사용한다면 생략해도 컴파일이 될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 여기선 C를 공부하는 것이기에 enum 키워드를 표기했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아 물론 값을 임의로 지정해줄 수도 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1624621696303&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;enum Color  {
	RED = 1,
	ORANGE,
	YELLOW,
	GREEN,
	BLUE,
	PURPLE = 10,
	BLACK,
	WHITE
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 지정된 값은 그대로 할당되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 값들은 (이전 값) + 1; 이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 위 enum의 값들을 차례대로 출력하면 아래와 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;428&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAN6tH/btq76IMVuZX/esQSL4xhTyZYFUVXkO6dl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAN6tH/btq76IMVuZX/esQSL4xhTyZYFUVXkO6dl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAN6tH/btq76IMVuZX/esQSL4xhTyZYFUVXkO6dl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAN6tH%2Fbtq76IMVuZX%2FesQSL4xhTyZYFUVXkO6dl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;370&quot; height=&quot;259&quot; data-origin-width=&quot;428&quot; data-origin-height=&quot;299&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 출력한 결과와 비교하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 1로 시작해서 차례대로 증가하다가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중간에 10을 만나 다시 10에서 증가하기 시작하는 걸 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 enum요소에 값을 명시하여 대입하는 일은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불규칙적인 값을 할당해야 할 때에 직접 지정해주기도 하지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 협업이 필요하거나 제3자도 코드를 사용하는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오픈소스 프로젝트 같은 곳에서 가독성을 위해 연속적인 값임에도 일일이 지정해주기도 하는 경우가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그때는 enum을 굳이 써야 하나..? 싶기도 하겠지만 enum을 쓰는 이유는 자동으로 값을 할당해주는 편리함 때문만이 아니라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'이 값들은 같은 류의 값들이다'라는 것을 알려주기도 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한마디로, 코드를 쉽게 이해하기 위함이라고 할 수 있는 것..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>enum</category>
      <category>상수</category>
      <category>열거형</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/17</guid>
      <comments>https://deepprogramming.tistory.com/17#entry17comment</comments>
      <pubDate>Fri, 25 Jun 2021 21:03:43 +0900</pubDate>
    </item>
    <item>
      <title>Markdown 연습</title>
      <link>https://deepprogramming.tistory.com/16</link>
      <description>&lt;h1&gt;혼자 연습하는 포스팅임&lt;/h1&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부동소수점의 구조&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;기울임&lt;/i&gt; &lt;i&gt;기울임2&lt;/i&gt;&lt;br /&gt;&lt;b&gt;굵음&lt;/b&gt; &lt;b&gt;굵음&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;i&gt;둘다 가능&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;밑줄 긋기&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목록&lt;/li&gt;
&lt;li&gt;순서
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Hello&lt;/li&gt;
&lt;li&gt;World&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;목록은 이렇게&lt;/li&gt;
&lt;li&gt;사용할 수 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서브 목록&lt;/li&gt;
&lt;li&gt;들도 이렇게&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;순서 X 목록들
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서브도 가능&lt;/li&gt;
&lt;li&gt;별포로 쓴 것&lt;/li&gt;
&lt;li&gt;플러스로 쓴 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;deepprogramming.tistory.com&quot;&gt;내 블로그&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이 문서 내 일반 URL이나 꺾쇠 괄호(&lt;code&gt;&amp;lt; &amp;gt;&lt;/code&gt;, Angle Brackets)안의 URL은 자동으로 링크를 사용합니다.&lt;br /&gt;구글 홈페이지: &lt;a href=&quot;https://google.com&quot;&gt;https://google.com&lt;/a&gt;&lt;br /&gt;네이버 홈페이지: &lt;a href=&quot;https://naver.com&quot;&gt;https://naver.com&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네이버&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://www.naver.com&quot;&gt;www.naver.com&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;](&lt;a href=&quot;https://naver.com&quot;&gt;https://naver.com&lt;/a&gt;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;pirntf(&quot;HelloWorld\n&quot;)&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;cpp&quot;&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;

int main() {
    std::cout &amp;lt;&amp;lt; &quot;HelloWorld&quot; &amp;lt;&amp;lt; std::endl;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://songyujin.com&quot;&gt;&lt;img src=&quot;https://cafeskthumb-phinf.pstatic.net/MjAyMTA1MjdfMTIx/MDAxNjIyMTAxMzI4MjI3.Y1lF298RYL8ddTn_LObO1ocxLU25V5en2GXxQxS7Kskg.3l5xeaw5N7gmTTdVtULI1Z763p7I9qea5WBxNpAq80cg.JPEG/1.jpg?type=w1080&quot; alt=&quot;송유진&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;자료형&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;용도&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;정수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;실수&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸로 포스팅할까 했는데 좀 더 고민해봐야겠다..&lt;/p&gt;</description>
      <category>IT 담소 나눔터</category>
      <category>markdown</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/16</guid>
      <comments>https://deepprogramming.tistory.com/16#entry16comment</comments>
      <pubDate>Wed, 23 Jun 2021 20:38:58 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 7강 - 상수, C언어에서 상수 사용하기 (1) (const,#define)</title>
      <link>https://deepprogramming.tistory.com/15</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 상수란&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램에는 '변수'라는 것이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수는 값을 저장하기 위해 할당된 메모리로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 값이 언제든 변경될 수 있는 특성이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;그러나 그 값이 절대 바뀌어서는 안 되는 경우들도 있는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원주율, &lt;b&gt;파이(\(\pi\))&lt;/b&gt; 나,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국제 단위계서 질량의 표준을 규정하는 새 기준 &lt;b&gt;플랑크 상수&lt;/b&gt; 등등 말이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 것들은 절대 변해서는 안 되는 수들이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 상수들을 관리할 때 그냥 프로그래머가 = 연산자를 쓰지 않기로만 약속한다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언제 실수가 있을지 모르니 불안하기도 하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디버깅을 할 때도 고려해야할 문제가 더 생긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 프로그래밍 언어에서는 언어적 차원에서 상수에는 값을 변경시킬 수 없도록 하는 문법이 존재하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 포스팅에서는 C에서 그러한 상수 문법을 살펴볼 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 상수를 사용하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램에 \(\pi\)의 값이 필요할 때는 매번 3.141592... 를 적는 것보다 변수에 저장해서 사용하는 게 훨씬 쓰기가 편하다.&lt;/p&gt;
&lt;pre id=&quot;code_1624163683372&quot; class=&quot;c++ arduino&quot; style=&quot;display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;float PI = 3.141592;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 여기엔 중요한 문제가 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 말했듯이 변수는 언제든 값이 바뀔 수 있다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 극단적인 예시를 들어보자면&lt;/p&gt;
&lt;pre id=&quot;code_1624163966891&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* ... Some codes ...*/

float PI = 3.141592;

/* ... Some codes ...*/

PI = 5;

/* ... Some codes ... */&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 코드를 생각해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래머가 PI = 5;라는 어이없는 실수를 해서 PI가 5가 된다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후에 PI를 사용하는 코드들은 모두 엉망이 될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 상황을 방지하기 위해서 만들어진 것이 계속 말하는 '상수'이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상수를 사용하는 방법엔 여러가지가 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㄱ)&lt;/b&gt; 상수를 의미하는 constant의 &lt;b&gt;const&lt;/b&gt;를 자료형 앞에 붙여 &lt;b&gt;const 상수&lt;/b&gt;로 선언하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 const로 정의된 상수를&amp;nbsp;&lt;b&gt;기호 상수&lt;/b&gt;라고 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1624164328452&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const float PI = 3.141592;
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면&amp;nbsp; 더 이상 PI = 5; 와 같은 식을 사용할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PI라는 변수는&lt;b&gt; const&lt;/b&gt;화 되었기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드를 포함해 컴파일을 시도한다면 에러가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZVqm9/btq7Ez2UhSJ/K52BylMoOOKrdGunHtOXNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZVqm9/btq7Ez2UhSJ/K52BylMoOOKrdGunHtOXNK/img.png&quot; data-alt=&quot;&amp;quot;const인 변수에 할당할 수 없습니다&amp;quot;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZVqm9/btq7Ez2UhSJ/K52BylMoOOKrdGunHtOXNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZVqm9%2Fbtq7Ez2UhSJ%2FK52BylMoOOKrdGunHtOXNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;472&quot; height=&quot;442&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&quot;const인 변수에 할당할 수 없습니다&quot;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㄴ) &lt;/b&gt;두 번째 방법은 #define이라는 것인데, #include처럼 #이 붙은 전처리기이고, '매크로'라고도 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매크로를 지원하는 언어는 소스코드 차원에서 간단한 언어 '확장'이 가능해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;s&gt;이런 걸 우스갯소리로 매크로 흑마법이라고도 한다는..ㅋㅋ&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;전처리기란 최종 코드를 실행 파일로 번역하기 전에 미리 처리하는 작업들이라고 했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그중 #define은 매크로를 정의할 수 있는데, 사용법은 간단하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#define (매크로 이름) (값)&lt;/p&gt;
&lt;pre id=&quot;code_1624165299133&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#define PI 3.141592
//관례적으로 상수의 이름은 모두 대문자로 작성합니다

int main() {
	const double vPI = PI;
}
//#include는 헤더 파일의 모든 내용을 복사하는 전처리기라 출력되는 결과의 내용이 너무 길어져 생략합니다
//따라서 printf도 사용할 수 없습니다&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 해당 소스코드 파일에서 PI 는 모두 3.141592로 '&lt;b&gt;치환&lt;/b&gt;'되어 작동하며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 용도로는 (문자열 리터럴 제외) PI라는 이름을 &lt;b&gt;절대&lt;/b&gt; 사용할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 치환된다는 게 무엇이냐면, 말그대로 코드 내에서 PI 라는 문자열이 3.141592 대체된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것에 define 전처리기의 역할이다. &lt;b&gt;매크로&lt;/b&gt;&amp;nbsp;&lt;b&gt;이름이 사용된 곳을 지정된 값으로 치환하는 것&lt;/b&gt;!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;백문이불여일견&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gcc라는 컴파일러에서 -E 옵션을 사용하면 전처리기만 일차적으로 처리한 결과를 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드를 그대로 적용한 모습이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEdzNw/btq7I1RFBjY/uHmk1ZT5yKKfmgIk5FT2A0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEdzNw/btq7I1RFBjY/uHmk1ZT5yKKfmgIk5FT2A0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEdzNw/btq7I1RFBjY/uHmk1ZT5yKKfmgIk5FT2A0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEdzNw%2Fbtq7I1RFBjY%2FuHmk1ZT5yKKfmgIk5FT2A0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;365&quot; height=&quot;246&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;344&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;const double vPI = PI; 의 PI가 3.141592로 치환된 걸 볼 수 있다. 이렇게 모든 전처리기가 처리된 후 실행 파일로 컴파일 되는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㄷ) &lt;/b&gt;사실 &lt;b&gt;3.141592&lt;/b&gt;도 상수이다. 왜? 일단 3.141592 가 변수는 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 3.141592는 변할 수 없으며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;int 3.141592 = 100; 이런 코드가 불가능하다는 건 이미 모두가 알고 있는 사실이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 숫자 자체를 '&lt;b&gt;리터럴 상수&lt;/b&gt;'라고 합니다. (literal)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(3) l-value와 r-value&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C/C++에서 여러 값들은 크게 두 가지 종류로 나뉠 수 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로&lt;b&gt; l-value&lt;/b&gt;와 &lt;b&gt;r-value&lt;/b&gt;입니다. 각각 left-side-value, right-side-value 라는 의미인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등호(=)를 기준으로 왼쪽에 둘 수 있으면 &lt;b&gt;l-value&lt;/b&gt;이고 오른쪽에만 둘 수 있으면 &lt;b&gt;r-value&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 주의해야할 것은 &lt;b&gt;l-value&lt;/b&gt;들도 오른쪽에 둘 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만, 오른쪽에&quot;&lt;b&gt;도&lt;/b&gt;&quot; 둘 수 있을 뿐이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 것들은 &lt;b&gt;l-value&lt;/b&gt;라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.141592 같은 리터럴이나 PI같은 상수는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽에&quot;&lt;b&gt;만&lt;/b&gt;&quot; 올 수 있기 때문에 r-value에 속한다.&lt;/p&gt;
&lt;pre id=&quot;code_1639198861232&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//이것은 상수가 아니다
//따라서 이는 l-value이다.
double PI_1 = 3.141592;
//PI_1 = 3.1415; 이러한 식이 허용된다는 얘기다.

//그러나 이것은 상수이다.
//따라서 이는 r-value이다.
const double PI_2 = 3.141592;
//PI_2 = 3.1415; 이러한 식이 허용되지 않는다는 얘기다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 강좌에서는 상수를 표현하는 또 다른 방법인 enum에 대해 포스팅한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>define</category>
      <category>enum</category>
      <category>gcc</category>
      <category>lValue</category>
      <category>RValue</category>
      <category>매크로</category>
      <category>상수</category>
      <category>전처리기</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/15</guid>
      <comments>https://deepprogramming.tistory.com/15#entry15comment</comments>
      <pubDate>Sun, 20 Jun 2021 14:11:41 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 6.1강 - C언어에서 형변환 하기(리터럴 접미사)</title>
      <link>https://deepprogramming.tistory.com/14</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;지난 포스팅에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수들을 형변환하는 법을 설명했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 C에서는 기본적인 숫자 자체(literal)를&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형변환 하는 경우에는 더 편리하게 변환할 수 있는 수단이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 리터럴 접미사를 붙이는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 리터럴 접미사&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C에서는&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 정수형, 실수형은 특별히 지정해준 타입이 없을 경우(&lt;b&gt;접미사&lt;/b&gt;를&amp;nbsp;&lt;b&gt;생략&lt;/b&gt;할 경우)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동을 각각 int, double로 인식한다. (컴파일러마다 다를 수도)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 대부분의 경우 이것이 큰 문제가 되지 않지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일부 특수한 경우에서는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것들을 다 구분해주어야 (short, int, long long | float, double)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하는 경우가 생길 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 사실 매번&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(타입이름)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 적기에는 번거로웠는지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;편의 문법들이 생겼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숫자 뒤에 리터럴 접미사(suffix)를 붙여주는 방식인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 자료형들도 결국엔 정수/실수 두 부류로 나뉘는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이에 따라 접미사들도 정수형, 실수형을 위한 접미사가 따로 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 정수형 접미사들 : U, L, LL, UL, ULL ...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 실수형 접미사들 : F, L&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 용도는 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정수형 접미사 )&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 41.1601%; height: 344px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 45px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 45px;&quot;&gt;접미사&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 45px;&quot;&gt;자료형&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 45px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 45px;&quot;&gt;u, U&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 45px;&quot;&gt;unsigned&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 45px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 45px;&quot;&gt;l, L&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 45px;&quot;&gt;long&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 45px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 45px;&quot;&gt;ll, LL&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 45px;&quot;&gt;long long&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 46px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 46px;&quot;&gt;ul, UL&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 46px;&quot;&gt;unsigned long&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 46px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 46px;&quot;&gt;ull, ULL&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 46px;&quot;&gt;unsigned long long&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실수형 접미사 )&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 41.0465%; height: 92px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;접미사&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;자료형&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;f, F&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;float&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;l, L&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;long double&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;float a = 3.14f;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;int b = 1206LL;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.14f는 double이 아닌 float으로 생성된 리터럴이 a에 대입됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1206은 int가 아닌 long long으로 생성된 리터럴이 b에 대입됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의할 점은 실수형 접미사에서 L이 의미하는&lt;b&gt; long double&lt;/b&gt;과 &lt;b&gt;double&lt;/b&gt;은 다른 자료형이라는 점,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 정수형에 붙이는 L과 실수형에 붙이는 L이 서로 다르게 작동한다는 점이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정수형에서는 L이 &lt;b&gt;long&lt;/b&gt; 타입이지만, 실수형에서는 L이 &lt;b&gt;long&lt;/b&gt; &lt;b&gt;double&lt;/b&gt;로서 작동한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 정수형 접미사&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 실제로 바뀐 건지 아닌지 굳-이 눈으로 확인해보고 싶다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sizeof 연산자를 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sizeof는 자료형 뿐만 아니라 변수나 상수를 넣었을 때 그 값의 자료형의 크기를 반환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 입력한 값이 어떤 타입인지를 유추할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;285&quot; data-origin-height=&quot;311&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lkrnC/btq7kkrTHRK/PaVzgLxtIoxfC5jm7GDvQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lkrnC/btq7kkrTHRK/PaVzgLxtIoxfC5jm7GDvQK/img.png&quot; data-alt=&quot;접미사는 소문자, 대문자 모두 가능하지만 한번에 하나로 통일해야 한다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lkrnC/btq7kkrTHRK/PaVzgLxtIoxfC5jm7GDvQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlkrnC%2Fbtq7kkrTHRK%2FPaVzgLxtIoxfC5jm7GDvQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;285&quot; height=&quot;311&quot; data-origin-width=&quot;285&quot; data-origin-height=&quot;311&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;접미사는 소문자, 대문자 모두 가능하지만 한번에 하나로 통일해야 한다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 위에서부터 차례대로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sizeof(int), sizeof(unsigned int), sizeof(long), sizeof(long long), sizeof(unsigned long long)이 출력됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;signed - unsigned 간의 sizeof의 차이는 없으니까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서부터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4, 4, 4, 8, 8 이 출력돼야 하고, 그렇게 잘 나왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 12라는 정수 값이 접미사에 따라 그 자료형이 달라진 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 sizeof의 결과는 컴파일러마다 다를 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것은 GCC라는 오픈 소스 컴파일러를 사용하는 &lt;a href=&quot;https://www.onlinegdb.com/online_c_compiler&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;온라인 컴파일러&lt;/span&gt;&lt;/a&gt;에서 실행한 결과인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;295&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbCBrO/btq7peDKCNI/CRztND3iDqdTiYLon7t2Qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbCBrO/btq7peDKCNI/CRztND3iDqdTiYLon7t2Qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbCBrO/btq7peDKCNI/CRztND3iDqdTiYLon7t2Qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbCBrO%2Fbtq7peDKCNI%2FCRztND3iDqdTiYLon7t2Qk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;357&quot; height=&quot;295&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;295&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보다시피 long의 크기가 Visual Studio에서 4와 다르게 8로 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* %ld를 쓴 이유는 저 컴파일러에서 sizeof는 long타입으로 반환하기 때문이다. (경고 메시지를 없애기 위해)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(3) 실수형 접미사&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실수형은 지난 강좌와 아주 비슷한 예제를 사용하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지난 강좌를 읽지 않았다면 &lt;a href=&quot;https://deepcode.kr/13&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;예제만라도 읽어보길&lt;/span&gt;&lt;/a&gt; 바란다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(여기서는 자세한 설명을 생략)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bo71qP/btq7iv1OWd3/KSAacTiHKYGrRdNErthMr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bo71qP/btq7iv1OWd3/KSAacTiHKYGrRdNErthMr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bo71qP/btq7iv1OWd3/KSAacTiHKYGrRdNErthMr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo71qP%2Fbtq7iv1OWd3%2FKSAacTiHKYGrRdNErthMr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;402&quot; height=&quot;210&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드를 보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정수 25와 정수 10을 나누려고 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정말 그런가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아니다, 이 코드는 정수 25와 실수 10을 나누는 코드이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜냐하면 소수점을 .0이라도 적어주었기 때문에 저것은 실수형 double이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 sizeof(10.0);을 출력해보면 8이 나온다..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;267&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LCTCl/btrmXjyhvTw/LEk56VIS3aArap9jLd0RKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LCTCl/btrmXjyhvTw/LEk56VIS3aArap9jLd0RKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LCTCl/btrmXjyhvTw/LEk56VIS3aArap9jLd0RKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLCTCl%2FbtrmXjyhvTw%2FLEk56VIS3aArap9jLd0RKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;267&quot; height=&quot;169&quot; data-origin-width=&quot;267&quot; data-origin-height=&quot;169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실수형 역시&amp;nbsp;정수처럼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접미사를 붙여 다른 실수형으로 변환할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;float으로 변환할 경우에는 접미사 f만 붙이면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;285&quot; data-origin-height=&quot;173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xe6Sf/btrmZ1JuObC/tJV2T37Ykh2Xa5VyoXxRjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xe6Sf/btrmZ1JuObC/tJV2T37Ykh2Xa5VyoXxRjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xe6Sf/btrmZ1JuObC/tJV2T37Ykh2Xa5VyoXxRjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxe6Sf%2FbtrmZ1JuObC%2FtJV2T37Ykh2Xa5VyoXxRjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;333&quot; height=&quot;202&quot; data-origin-width=&quot;285&quot; data-origin-height=&quot;173&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이렇게 4로 출력이 되죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1623773453250&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 25;

printf(&quot;%d / %f = %f\n&quot;, a, 10.0f, a / 10.f);	//꼭 소수점을 쓸 필요는 없고
						//이렇게 소수점 부분이 0이라면 f만 붙여도 됨&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v6XIl/btq7n1rmMjz/Xbg4OGKAycM3v086WVcQX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v6XIl/btq7n1rmMjz/Xbg4OGKAycM3v086WVcQX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v6XIl/btq7n1rmMjz/Xbg4OGKAycM3v086WVcQX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv6XIl%2Fbtq7n1rmMjz%2FXbg4OGKAycM3v086WVcQX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;677&quot; height=&quot;208&quot; data-origin-width=&quot;768&quot; data-origin-height=&quot;236&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 접미사 L을 붙여서 long double로 변환을 하는 코드이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아까도 사용한 온라인 컴파일러에서는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;long double의 sizeof가 16으로 나온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;459&quot; data-origin-height=&quot;235&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uKaoy/btq7iuPmaXg/nHxCI8nJ4FxmUaxCvUtSyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uKaoy/btq7iuPmaXg/nHxCI8nJ4FxmUaxCvUtSyK/img.png&quot; data-alt=&quot;컴파일러마다 size는 다를 수 있다는 것이다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uKaoy/btq7iuPmaXg/nHxCI8nJ4FxmUaxCvUtSyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuKaoy%2Fbtq7iuPmaXg%2FnHxCI8nJ4FxmUaxCvUtSyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;459&quot; height=&quot;235&quot; data-origin-width=&quot;459&quot; data-origin-height=&quot;235&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;컴파일러마다 size는 다를 수 있다는 것이다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 Visual Studio에서는?&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nnvyz/btrmYcSJU3E/pSevsaGmwePUpZZYhCsuck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nnvyz/btrmYcSJU3E/pSevsaGmwePUpZZYhCsuck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nnvyz/btrmYcSJU3E/pSevsaGmwePUpZZYhCsuck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNnvyz%2FbtrmYcSJU3E%2FpSevsaGmwePUpZZYhCsuck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;292&quot; height=&quot;251&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8로 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일부 타입들은 컴파일러마다 그 size가 다를 수 있다는 걸 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+++++++++++&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Visual Studio에서 각 자료형마다의 크기를 확인해보았다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1623774056794&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	printf(&quot;sizeof(int) : \t\t\t%d\n&quot;, sizeof(int));//생략
	printf(&quot;------------------------------------\n&quot;);
	printf(&quot;sizeof(long) : \t\t\t%d\n&quot;, sizeof(long));//l
	printf(&quot;------------------------------------\n&quot;);
	printf(&quot;sizeof(long long) : \t\t%d\n&quot;, sizeof(long long));//ll
	printf(&quot;------------------------------------\n&quot;);
	printf(&quot;sizeof(unsigned long long) : \t%d\n&quot;, sizeof(unsigned long long));//ull
	printf(&quot;------------------------------------\n&quot;);
	printf(&quot;sizeof(float) : \t\t%d\n&quot;, sizeof(float));//f
	printf(&quot;------------------------------------\n&quot;);
	printf(&quot;sizeof(double) : \t\t%d\n&quot;, sizeof(double));//생략
	printf(&quot;------------------------------------\n&quot;);
	printf(&quot;sizeof(long double) : \t\t%d\n&quot;, sizeof(long double));//l
	printf(&quot;------------------------------------\n&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 결과 :&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;322&quot; data-origin-height=&quot;266&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ETBXV/btq7nzaPKck/4c3Hrgbmyr8hrIwYrfV49k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ETBXV/btq7nzaPKck/4c3Hrgbmyr8hrIwYrfV49k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ETBXV/btq7nzaPKck/4c3Hrgbmyr8hrIwYrfV49k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FETBXV%2Fbtq7nzaPKck%2F4c3Hrgbmyr8hrIwYrfV49k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;322&quot; height=&quot;266&quot; data-origin-width=&quot;322&quot; data-origin-height=&quot;266&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>리터럴</category>
      <category>온라인컴파일러</category>
      <category>접미사</category>
      <category>형변환</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/14</guid>
      <comments>https://deepprogramming.tistory.com/14#entry14comment</comments>
      <pubDate>Wed, 16 Jun 2021 01:22:48 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 6강 - C언어에서 형변환 하기 (형변환 연산자)</title>
      <link>https://deepprogramming.tistory.com/13</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래밍을 하다보면 종종 형변환(type casting)이란 것이 필요하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형변환이란, 말그대로 자료형끼리 서로 변환한다는 것인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 경우에 그것이 필요한지 아래 코드를 살펴보자.&lt;/p&gt;
&lt;pre id=&quot;code_1623770408489&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    int a = 10;
    int b = 25;

    printf(&quot;%d / %d = %d\n&quot;, a, b, b / a);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드를 실행했을 때 출력되는 결과를 추측해볼 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10 / 25 = 2.5 라 생각하실 수 있지만 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;235&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/di0ppK/btq7jDryPiE/Yt092BMKK0MuY3e2Vvvij1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/di0ppK/btq7jDryPiE/Yt092BMKK0MuY3e2Vvvij1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/di0ppK/btq7jDryPiE/Yt092BMKK0MuY3e2Vvvij1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdi0ppK%2Fbtq7jDryPiE%2FYt092BMKK0MuY3e2Vvvij1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;333&quot; height=&quot;226&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;235&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보다시피 2로 출력이 됐는데 그 이유는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a, b가 모두 정수이기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정수&lt;/b&gt; / &lt;b&gt;정수&lt;/b&gt;는 결과가 무조건 정수로 나오게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니까, 25 / 10에서 2가 나온 것처럼 그 '몫'만 나온다는 뜻이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 저것을 2.5로 출력되게 하려면 a나 b 둘 중 하나를 float으로 &lt;b&gt;형변환&lt;/b&gt; 해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 방법은 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1623771061002&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 10;
int b = 25;

float result;

result = (float)b / a; //float 타입으로 형변환 하는 연산자는 (float), int는 (int)
//또는 b / (float)a&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 특정 자료형으로 형변환 해줄 때는 &lt;b&gt;형변환 연산자&lt;/b&gt;를 이용하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;자료형 이름에 괄호&lt;/b&gt;를 씌워주면 그것이 해당 자료형에 대한 형변환 연산자가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행해보면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqSMKc/btq7p8wyapT/27ctECXysXHGdcLOeRW0j0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqSMKc/btq7p8wyapT/27ctECXysXHGdcLOeRW0j0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqSMKc/btq7p8wyapT/27ctECXysXHGdcLOeRW0j0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqSMKc%2Fbtq7p8wyapT%2F27ctECXysXHGdcLOeRW0j0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;342&quot; height=&quot;312&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 2.5로 출력이 된 걸 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(float)b == 25.0f 이기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;25.0f / 10 = 2.5f 가 된 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 이와 반대로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;float to int 형태의 형변환도 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tZLuV/btq7nFWmLmt/queZFR5IrA3L7SsrNstgA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tZLuV/btq7nFWmLmt/queZFR5IrA3L7SsrNstgA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tZLuV/btq7nFWmLmt/queZFR5IrA3L7SsrNstgA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtZLuV%2Fbtq7nFWmLmt%2FqueZFR5IrA3L7SsrNstgA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;275&quot; height=&quot;168&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;float -&amp;gt; int 변환에서는 소수점이 모두 버려지게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이외에 (char), (long long), (unsigned int) 등등 많은 자료형들을&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상황에 맞게 변환하여 쓸 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지는 변수에 대한 형변환이었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 마지막 사진처럼 3.141592 같은 숫자 자체(리터럴 상수)를 변환할 때는 더 편리하게 변환할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;힌트를 주자면 바로 위에서 말한&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;25.f, 2.5f 같은 표현인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그것은 다음 포스팅에서 얘기한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>연산자</category>
      <category>형변환</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/13</guid>
      <comments>https://deepprogramming.tistory.com/13#entry13comment</comments>
      <pubDate>Wed, 16 Jun 2021 00:44:22 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 5.2강 - 시프트 연산자가 작동하는 방법</title>
      <link>https://deepprogramming.tistory.com/12</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;주제 : 비트 연산 중 시프트 연산&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요구사항 : 시프트 연산의 기능에 대한 이해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 버려지는 비트&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;283&quot; data-origin-height=&quot;275&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkgH6J/btq64w7bk1s/3Vo2BLCezi9OdYlzY7cMhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkgH6J/btq64w7bk1s/3Vo2BLCezi9OdYlzY7cMhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkgH6J/btq64w7bk1s/3Vo2BLCezi9OdYlzY7cMhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkgH6J%2Fbtq64w7bk1s%2F3Vo2BLCezi9OdYlzY7cMhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;283&quot; height=&quot;275&quot; data-origin-width=&quot;283&quot; data-origin-height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드에서 a는 char로 선언됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;char는 범위가 -128 ~ 127 까지라고 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떻게 1024가 출력된 것일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 이유는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;&amp;lt; 연산자는 오른쪽으로 밀린 비트가 버려지지 않고 그대로 유지&lt;/b&gt;되기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니까 (4bits) a = 1; 일때 a &amp;lt;&amp;lt; 3; 은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 71.5116%; height: 33px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 형태가 된다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러면 4bits가 7bits가 되었죠?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;똑같이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8bits로 char형이었던 것이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10칸 이동하면서 더 큰 자료형이 된 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 %d로 출력을 하니 1024가 문제없이 출력이 됐죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 &amp;gt;&amp;gt; 연산자는 다릅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왼쪽으로 밀린 것은 얄짤없이 버려&lt;/b&gt;집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 채워지는 비트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진법에 대한 이해가 충분하다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이진법에서 자릿수가 하나씩 늘어나거나 줄어든다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그것은 십진법으로 표현했을 때 2배, 1/2배 된다는 것을 알고 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(십육진법도 마찬가지로 16배, 1/16배)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 위에서도 확인했다시피 이것은 시프트 연산과 관련이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시프트 연산으로 &amp;lt;&amp;lt; 1이나 &amp;gt;&amp;gt; 1을 해버리면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 정수의 값이 2배, 또는 1/2배가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) 예제에서 1 &amp;lt;&amp;lt; 30 을 했더니 \(2^{30}\) 이 출력된 것처럼 말이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드를 다시 실행해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1623471424756&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int a;
	
	a = 16;
	printf(&quot;%d\n&quot;, a &amp;gt;&amp;gt; 3);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccwoYT/btq66jFPTgD/4k8nXpcT0lJkqVYlkgicSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccwoYT/btq66jFPTgD/4k8nXpcT0lJkqVYlkgicSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccwoYT/btq66jFPTgD/4k8nXpcT0lJkqVYlkgicSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccwoYT%2Fbtq66jFPTgD%2F4k8nXpcT0lJkqVYlkgicSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;306&quot; height=&quot;318&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;318&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 그림으로 한번 그려보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a = 16&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;a &amp;gt;&amp;gt; 3&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 a &amp;gt;&amp;gt; 3은 2가 나온다는 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보다시피 왼쪽으로 3칸 밀리고 빈 자리는 0으로 채워진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아! 시프트 연산으로 빈 공간이 생기면 그 비트는 0으로 채워지는 것이구나!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반은 맞고, 반은 틀리다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜냐하면 항상 0으로 채워지는 것이 아니기 때문인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드에서 a를 -16으로 바꾸고 실행해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1623471538092&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int a;
	
	a = -16;
	printf(&quot;%d\n&quot;, a &amp;gt;&amp;gt; 3);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vLkc3/btroT45uayV/OdpRHMXypAhOExsjZMvME1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vLkc3/btroT45uayV/OdpRHMXypAhOExsjZMvME1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vLkc3/btroT45uayV/OdpRHMXypAhOExsjZMvME1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvLkc3%2FbtroT45uayV%2FOdpRHMXypAhOExsjZMvME1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;352&quot; height=&quot;245&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수학적으로 생각했을 때 결과는 정상이다. \(-16\times\frac{1}{2^{3}}\) 이니 -2가 맞다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 꼼꼼히 생각해보면 어딘가 이상한 점이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 한번 그림으로 그려보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a = -16&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a &amp;gt;&amp;gt; 3&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-16 &amp;gt;&amp;gt; 3 을 했더니 빈 공간 3bits가 0으로 채워져 &lt;b&gt;00011110&lt;/b&gt;이 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-16 &amp;gt;&amp;gt; 3을 한다면 반환값은 -2가 나와야하는데,&amp;nbsp;&lt;b&gt;00011110&lt;/b&gt;은 최상위 비트가 0이므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;음수가 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 변환해보아도 30이라는 엉뚱한 숫자가 나온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x1Smc/btq69SgpHjM/z92EjOU0j4NShoB7VW7kxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x1Smc/btq69SgpHjM/z92EjOU0j4NShoB7VW7kxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x1Smc/btq69SgpHjM/z92EjOU0j4NShoB7VW7kxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx1Smc%2Fbtq69SgpHjM%2Fz92EjOU0j4NShoB7VW7kxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;509&quot; height=&quot;254&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것이 바로 밀려난 비트가 항상 0으로 채워질 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생기는 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;음수는 &lt;b&gt;부호가 유지되지 않는다&lt;/b&gt;는 문제..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 C언어에서는 시프트 연산을 할 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무조건 0으로 채워지는 것이 아니라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최상위 비트가 1이었다면, 즉 원래 정수가 음수라면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;밀려나서 채워지는 비트도 1로 채워지게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 11110000(2)은 3칸 밀렸을 때 빈 자리가 1로 채워져 11111110(2)이 되죠&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-16 &amp;gt;&amp;gt; 3&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 12.5%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것을 변환해보면 -2가 잘 나오는 걸 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;515&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEXB19/btq64hvJbXf/rULGKaCVfwZUcIuCsH8cJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEXB19/btq64hvJbXf/rULGKaCVfwZUcIuCsH8cJ0/img.png&quot; data-alt=&quot;두 번째가 signed일 때 값이다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEXB19/btq64hvJbXf/rULGKaCVfwZUcIuCsH8cJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEXB19%2Fbtq64hvJbXf%2FrULGKaCVfwZUcIuCsH8cJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;470&quot; height=&quot;344&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;515&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;두 번째가 signed일 때 값이다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 0으로 채워지도록 시프트하는 것은 못하는 걸까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유감스럽게도 C에서는 언어적 차원에서 지원하는 연산자는 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 Java 등 다른 일부 프로그래밍 언어에서는 이를 위해 또 다른 시프트 연산자가 존재한다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 C에서 그러한 연산을 원한다면 `logical shift in c` 같은 검색어로 찾아보면 나올 것..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>버려지는비트</category>
      <category>비트연산자</category>
      <category>시프트연산자</category>
      <category>채워지는비트</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/12</guid>
      <comments>https://deepprogramming.tistory.com/12#entry12comment</comments>
      <pubDate>Sat, 12 Jun 2021 13:31:27 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 5.1강 - C의 다양한 연산자(사칙대입연산자,증감연산자,sizeof,비트연산자)</title>
      <link>https://deepprogramming.tistory.com/11</link>
      <description>&lt;p data-ke-size=&quot;size14&quot;&gt;(이 포스팅은 지난 5강과 이어짐)&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(5) 사칙 대입 연산자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 이것이 정확한 명칭인지는 모르겠지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 사칙 연산 결과를 바로 대입하는 연산자이기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 마음대로 이름을 붙임 ㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종류는 사칙 연산자의 개수와 같으며 형태도 굉장히 직관적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. +=&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. -=&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. *=&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. /=&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. %=&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용법은 아래를 보면 바로 이해가 갈 정도로 쉽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1623425501885&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 10;

a += 1;//이것과
a = a + 1;//이것은 같은 표현임

//마찬가지로
a = a * 3;//이것과
a *= 3;//이것은 같은 표현임&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ (더하기) 연산을 수행한 결과를 = (대입)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* (곱하기) 연산을 수행한 결과를 = (대입)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이제 아래 코드를 실행해보면&lt;/p&gt;
&lt;pre id=&quot;code_1623425637543&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main()
{
    int a = 10;
    a+=1;//1을 더함, 10 + 1 = 11
    a%=3;//3으로 나눈 나머지, 11 % 3 = 2
    a*=2;//2를 곱함, 2 * 2 = 4
    printf(&quot;a is %d\n&quot;, a);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 결과가 나온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;315&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d5Yhjn/btq64SaVfWz/RXcvfjDigzLbigydBdPr71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d5Yhjn/btq64SaVfWz/RXcvfjDigzLbigydBdPr71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d5Yhjn/btq64SaVfWz/RXcvfjDigzLbigydBdPr71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd5Yhjn%2Fbtq64SaVfWz%2FRXcvfjDigzLbigydBdPr71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;465&quot; height=&quot;315&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;315&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(6) 증감 연산자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사칙 대입 연산자로 연산이 굉장히 편리해진 것을 느낄 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 여기서 코드를 더 줄이기 위해 만들어진 연산자들이 또 있는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 단순히 1을 더하거나, 1을 빼는 것만을 위한 연산자들이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 역시 굉장히 기억하기 쉬운 형태로 돼있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. ++&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. --&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;++은 해당 변수에 1을 더하는 연산자,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--은 해당 변수에 1을 빼는 연산자이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 이것은 호출되는 위치에 따라서 작동 방식이 달라지는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 증감 연산자는 두 가지 방식으로 호출할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1623425795771&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int x;

x = 5;

x++;//변수 뒤에 붙이기, 후위 연산자

--x;//변수 앞에 붙이기, 전위 연산자&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 가지 방식의 차이는?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하지만, 이러한 차이를 이용해 여러 기법들이 만들어지곤 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전위 연산자는 호출되면 즉시 x에 + 1 을 하고, 증가된 값을 반환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 후위 연산자는 일단 x에는 아무 일도 일어나지 않고 코드를 실행하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 작업이 끝나면 그제서야 x에 + 1을 하게 된다. 즉, 반환되는 값은 1만큼 증가되기 전 값이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 예제를 보자.&lt;/p&gt;
&lt;pre id=&quot;code_1623426005767&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    int x;
    x = 5;
    
    printf(&quot;#1 : %d\n&quot;, x++);//일단 5가 출력된다
    //그러고 나서 5 + 1이 된다.
    
    printf(&quot;#2 : %d\n&quot;, x);//따라서 여기서 출력해야 6이 나온다.
    
    printf(&quot;#3 : %d\n&quot;, --x);//그러나 전위 연산자는
    //먼저 1을 뺀다
    //따라서 #3은 6 - 1 = 5가 다시 출력된다.
    
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;542&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dKtMNO/btq65rqDzJV/vekjGOyykOX4U2NmIhQCRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dKtMNO/btq65rqDzJV/vekjGOyykOX4U2NmIhQCRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dKtMNO/btq65rqDzJV/vekjGOyykOX4U2NmIhQCRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdKtMNO%2Fbtq65rqDzJV%2FvekjGOyykOX4U2NmIhQCRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;497&quot; height=&quot;386&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;542&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#1은 후위 연산자라 출력된 후 값이 변경됐지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#3은 전위 연산자라 변경된 값이 출력된 걸 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 변수에 대입을 해본다면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;435&quot; data-origin-height=&quot;496&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckpiQK/btq67OkPrJ3/ZF35Ytylbsa00xx8qyqWSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckpiQK/btq67OkPrJ3/ZF35Ytylbsa00xx8qyqWSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckpiQK/btq67OkPrJ3/ZF35Ytylbsa00xx8qyqWSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckpiQK%2Fbtq67OkPrJ3%2FZF35Ytylbsa00xx8qyqWSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;343&quot; height=&quot;392&quot; data-origin-width=&quot;435&quot; data-origin-height=&quot;496&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 결과가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 x = 0인데, y에 대입하고 나서 x + 1을 했으므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 줄에는 x : 1, y : 0 이 출력되는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 y = ++x; 를 하면 먼저 x + 1이 되어 x = 2가 되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그것이 y에 대입되어 x, y 둘다 2로 출력되는 것을 볼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(7) 비트 연산자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트 연산자는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름 그대로 비트를 다룰 수 있는 연산자이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C언어에서 가장 작은 size를 가진 자료형인 char, 이 크기가 1Byte여서 다른 언어에서는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;char라는 이름 대신 byte라는 이름을 사용하기도 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 Byte가 모든 값의 기본이 되지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 역시 나눠보면 8Bits로 이루어져있기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 Bit들을 잘 활용해서 효율적인 연산을 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 정수 50을 비트로 저장하면 다음과 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;00&lt;/b&gt;&lt;b&gt;110010&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 비트를 가지고 여러 연산을 할 수 있는 건데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 종류는 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &amp;amp; (AND)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. | (OR)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. ^ (XOR)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. &amp;gt;&amp;gt;, &amp;lt;&amp;lt; (Shift)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. ~ (NOT)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각 AND 연산자, OR 연산자, XOR 연산자, Shift 연산자, NOT 연산자라고 불린다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㄱ)&lt;/b&gt; AND 연산자부터 살펴보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AND 연산자는 비트를 하나씩 비교해서 둘 다 1이면 1, 하나만 1이거나 둘 다 1이 아니면 0으로 반환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시를 들어서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정수 3은 바이너리 형태로&amp;nbsp;&lt;b&gt;0011&lt;/b&gt;이고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정수 5는 바이너리 형태로 &lt;b&gt;0101&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림을 그려보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3 &amp;amp; 5)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;darr;&amp;darr;&amp;darr;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0011&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0101&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;-------&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0001&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3, 5 모두 마지막 비트만 양쪽 값이 1이기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과가 0001이 나왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 3 &amp;amp; 5는 1과 같습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1623426723944&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;printf(&quot;%d\n&quot;, 3 &amp;amp; 5);//1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㄴ)&lt;/b&gt; OR 연산자는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AND와 다르게 둘 중 하나만 1이어도 결과가 1이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 3 | 5 는 이렇게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3 | 5)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;darr;&amp;darr;&amp;darr;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0011&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0101&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;-------&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0111&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘 중 하나만 1일 때 1이 되는 것이 아니라, 둘 중 하나라도 1이면 1이 되기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세 비트가 1이 되었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 printf로 출력하면 7이 출력된다.&lt;/p&gt;
&lt;pre id=&quot;code_1623426837282&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;printf(&quot;%d\n&quot;, 3 | 5); //7&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㄷ)&lt;/b&gt; XOR 연산자가 좀 흥미로운데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OR과 비슷하지만, 차이점은 반드시 두 비트가 달라야 한다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 둘 중 하나만 1일 때 1이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3 ^ 5)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;darr;&amp;darr;&amp;darr;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0011&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0101&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;-------&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0110&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 최종 결과는 6이 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1623426981077&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;printf(&quot;%d\n&quot;, 3 ^ 5) //6&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㄹ)&lt;/b&gt; Shift 연산자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Shift의 사전적 의미가?&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1001&quot; data-origin-height=&quot;251&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mVo3J/btq63NuFZuD/aHn7NwggTeYac7LocgYCl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mVo3J/btq63NuFZuD/aHn7NwggTeYac7LocgYCl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mVo3J/btq63NuFZuD/aHn7NwggTeYac7LocgYCl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmVo3J%2Fbtq63NuFZuD%2FaHn7NwggTeYac7LocgYCl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;432&quot; height=&quot;108&quot; data-origin-width=&quot;1001&quot; data-origin-height=&quot;251&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이동이라고 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 번역처럼 쉬프트 연산자는 비트를 이동시키는 기능을 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쉬프트 연산자는 &amp;lt;&amp;lt;, &amp;gt;&amp;gt; 로 두 가지가 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;&amp;lt; 는 왼쪽, &amp;gt;&amp;gt;는 오른쪽으로 이동시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 3은 바이너리로 0011 인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3 &amp;lt;&amp;lt; 1을 하면 0011을 왼쪽으로 한 칸 이동시킨다는 의미이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 50.1163%; height: 19px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 19px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 19px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 19px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 19px;&quot;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 왼쪽으로 이동시키면&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 50.1163%; height: 36px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 된다. (굵은 0은 자리가 이동해서 채워진 비트로, 기본적으로 &amp;lt;&amp;lt; 연산자는 빈 자리를 0으로 채운다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 3 &amp;lt;&amp;lt; 1은 6과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 반대로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3 &amp;gt;&amp;gt; 2를 하면 왼쪽으로 두 칸 이동하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽으로 두 칸 이동하면&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 50%; height: 29px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이 되서 결국엔 결과가 0이 된다. 그런데 &amp;gt;&amp;gt; 연산자는 언제나 0으로 채워지는 것이 아니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;그 이유는 다음 포스팅에서 비트 연산자에 대한 내용을 조금 더 깊게 얘기할 때 다룰 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㅁ)&lt;/b&gt; ~ (NOT) 연산자&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;~ 은 &lt;b&gt;모든 비트를 반전&lt;/b&gt;시켜준다. 0은 1로, 1은 0로 말이다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;~3 은 이진법으로 표기했을 때 &lt;b&gt;1100&lt;/b&gt;과 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;~0 은 이진법으로 표기했을 때 &lt;b&gt;1111&lt;/b&gt;과 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;~1 은 이진법으로 표기했을 때 &lt;b&gt;1110&lt;/b&gt;과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1623428937597&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 3;
~a; // 0011 --&amp;gt;&amp;gt; 1100&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ㅂ)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;비트 연산자들도 사칙 대입 연산자처럼&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;대입 연산자와 결합될 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;예시는 &amp;lt;&amp;lt; 와 | 만 들었지만 다른 연산자들도 원리는 똑같다.&lt;/p&gt;
&lt;pre id=&quot;code_1623428791249&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 3;

a &amp;lt;&amp;lt;= 1;//a = a &amp;lt;&amp;lt; 1;과 같음
//3 &amp;lt;&amp;lt; 1은 6이므로 a = 6이 됨

a = 3;//다시 a = 3
a |= 5;//3 ^ 5가 7이므로 a = 7이 됨 &lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;(8) sizeof 연산자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sizeof 연산자는 대상의 size, 크기를 얻을 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sizeof 연산자는 크기를 정수형태로 표현(반환)하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이때 쓰이는 자료형은 size_t이다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;size_t는 별 거 없이 그저 정수형 타입이다. 예를 들어&amp;nbsp;&lt;b&gt;size_t&lt;/b&gt;는 그저&lt;b&gt; int&lt;/b&gt;를 기반으로&amp;nbsp;&lt;b&gt;tyepdef&lt;/b&gt; 된 것인데 typedef는 간단히 말해서 새로운 자료형을 정의할 때 사용된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;size_t라는 정수형 자료형을 새로 정의한 것이다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;사용법은 이렇다.&lt;/p&gt;
&lt;pre id=&quot;code_1623428115742&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sizeof(int);
sizeof(&quot;HelloWorld&quot;);
sizeof(30);
sizeof(3.2);
sizeof(3.2f);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 강좌에서 HelloWorld를 출력할 때 printf 처럼 ( ) 가 붙는 걸&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수라고 했는데 sizeof는 특이하게 함수가 아닌 &lt;b&gt;연산자&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 자료형을 넣어줄 수도, 값들을 넣어줄 수도 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자료형을 넣어준다면 해당 자료형의 크기가, 값을 넣어준다면 그 값의 자료형의 크기를 알 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;440&quot; data-origin-height=&quot;365&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1xdfe/btq63MJfXwm/UQ8Y2y4oho5Y35YTxPTE0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1xdfe/btq63MJfXwm/UQ8Y2y4oho5Y35YTxPTE0k/img.png&quot; data-alt=&quot;%lu를 쓴 이유는 size_t를 출력하기 위해서이다. size_t는 매번 int인 것이 아니고 컴파일러의 구현마다 다를 수 있다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1xdfe/btq63MJfXwm/UQ8Y2y4oho5Y35YTxPTE0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1xdfe%2Fbtq63MJfXwm%2FUQ8Y2y4oho5Y35YTxPTE0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;440&quot; height=&quot;365&quot; data-origin-width=&quot;440&quot; data-origin-height=&quot;365&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;%lu를 쓴 이유는 size_t를 출력하기 위해서이다. size_t는 매번 int인 것이 아니고 컴파일러의 구현마다 다를 수 있다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;int 타입의 크기는 32bits, 즉 4Bytes라서 4가 출력됐고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;30은 정수형이니 기본적을 int로 인식해 4가 출력됐고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.5는 double형으로 인식해 8Bytes,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.5f는 뒤에 f가 붙어 float형으로 인식해 4Bytes가 출력됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 포스팅에서 비트 연산자 중 Shift 연산자에 대해 이어간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝..&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>sizeof</category>
      <category>비트연산자</category>
      <category>산술연산자</category>
      <category>전위</category>
      <category>전치</category>
      <category>증감연산자</category>
      <category>후위</category>
      <category>후치</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/11</guid>
      <comments>https://deepprogramming.tistory.com/11#entry11comment</comments>
      <pubDate>Sat, 12 Jun 2021 01:31:56 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 5강 - C의 다양한 연산자(사칙연산자,관계연산자,논리연산자)</title>
      <link>https://deepprogramming.tistory.com/10</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 연산자란 무엇인가&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연산자란&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;말 그대로 연산을 위한 키워드들이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연산자에는 여러 종류가 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 사칙 연산자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 관계 연산자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 논리 연산자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 비트 연산자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;... 등이 있다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연산자에는 연산 결과에 대한 '반환값'이란 게 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 HelloWorld를 작성할 때 썼던 return 0; 그 반환과 같은 의미,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 사칙 연산자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사칙 연산자는 정말 우리가 아는 그 사칙 연산자가 맞다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 곱셈 연산자와 나눗셈 연산자의 경우 모양이 살짝 다른데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;교과서에 나오는 '\(\times\)' 와 '\(\div\)' 대신 &lt;b&gt;*&lt;/b&gt; 와&amp;nbsp;&lt;b&gt;/&lt;/b&gt; 를 쓴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1623240095270&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;float a = 10;
float b = 5;

printf(&quot;%.1f\n&quot;, a + b);//10 + 5
printf(&quot;%.1f\n&quot;, a - b);//10 - 5
printf(&quot;%.1f\n&quot;, a * b);//10 * 5
printf(&quot;%.1f\n&quot;, a / b);//10 / 5&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드를 실행하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사칙 연산 결과가 '반환'되어, 위에서부터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;15.0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5.0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;50.0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 출력될 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;397&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGRAKo/btq6VsC50FC/OvcWa5lIrFuVsrKOXLr5Qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGRAKo/btq6VsC50FC/OvcWa5lIrFuVsrKOXLr5Qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGRAKo/btq6VsC50FC/OvcWa5lIrFuVsrKOXLr5Qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGRAKo%2Fbtq6VsC50FC%2FOvcWa5lIrFuVsrKOXLr5Qk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;433&quot; height=&quot;397&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;397&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 나머지 연산도 수행할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지 연산자는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;% 이다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfsRqT/btq64w0hDJM/bFaR2pBmYrj4rij2wiox4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfsRqT/btq64w0hDJM/bFaR2pBmYrj4rij2wiox4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfsRqT/btq64w0hDJM/bFaR2pBmYrj4rij2wiox4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfsRqT%2Fbtq64w0hDJM%2FbFaR2pBmYrj4rij2wiox4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;319&quot; height=&quot;328&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5 / 3은 몫이 1, 나머지가 2 !&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(3) 관계 연산자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 값을 비교하는 데 사용된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초과, 미만, 이상, 이하, 일치, 불일치의 연산을 수행할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &amp;gt;&amp;nbsp; &amp;nbsp; - 왼쪽이 오른쪽 초과인가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &amp;lt;&amp;nbsp; &amp;nbsp; - 왼쪽이 오른쪽 미만인가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &amp;gt;=&amp;nbsp; - 왼쪽이 오른쪽 이상인가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. &amp;lt;=&amp;nbsp; - 왼쪽이 오른쪽 이하인가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. ==&amp;nbsp; - 왼쪽과 오른쪽이 같은가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. !=&amp;nbsp; &amp;nbsp;- 왼쪽과 오른쪽이 같지 않은가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 연산자들은 제어문에서 거의 쓰이지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 제어문을 공부하지 않은 상태에서는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%d로 출력함으로써 연산자들의 반환값을 확인할 수 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 관계 연산자는 Boolean 이라고 하는 참/거짓을 저장하는 1Byte 짜리 타입을 반환하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C/C++에서는 참 true는 1, 거짓 false는 0으로 인식해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관계 연산자의 반환값을 %d로 출력하면 0 또는 1로 출력된다.&lt;/p&gt;
&lt;pre id=&quot;code_1623240526890&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 1;
int b = 3;

printf(&quot;%d\n&quot;, a == b);//false
printf(&quot;%d\n&quot;, a != b);//true

printf(&quot;%d\n&quot;, a &amp;gt; b);//false
printf(&quot;%d\n&quot;, b&amp;lt;=3);//true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;a와 b는 값이 불일치하므로 처음 두 줄은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 출력이 되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막 두 줄은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a는 b보다 작으므로 0 (false)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;b는 3 이므로 '3보다 작거나 같다'에 성립하므로 1 (true)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가 나오게 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;382&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRcCP0/btq6VITf5wI/mHrQC1j2OxTKXz1wNjpXIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRcCP0/btq6VITf5wI/mHrQC1j2OxTKXz1wNjpXIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRcCP0/btq6VITf5wI/mHrQC1j2OxTKXz1wNjpXIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRcCP0%2Fbtq6VITf5wI%2FmHrQC1j2OxTKXz1wNjpXIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;382&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;382&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대입 연산자인 = 와 관계 연산자인 == 을 헷갈리지 않게 주의해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현실의 수학에서는 = 가 '같다'라는 의미로도 쓰이기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간혹 ==를 = 로 잘못 입력할 때가 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 컴파일은 아주 정상적으로 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜냐하면 = 연산자도 대입된 값을 반환하기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문법적으로 오류가 나지 않기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 0을 대입하지 않는 이상 무조건 true로 인식을 하기 때문에 코드가 의도한대로 작동하지 않으니 특별히 주의해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(4) 논리 연산자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 Boolean 값을 이용하여 최종 결과를 판단한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &amp;amp;&amp;amp; - AND, 논리곱, 둘 다 참인가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. || - OR, 논리합, 둘 중 하나라도 참인가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. ! - NOT, 부정, 참이면 거짓, 거짓이면 참&lt;/p&gt;
&lt;pre id=&quot;code_1623241094616&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 0;
int b = 1;

printf(&quot;%d\n&quot;, a == 0 &amp;amp;&amp;amp; b == 1); //a가 0이면서도 b가 1인가? true
printf(&quot;%d\n&quot;, a == 0 || b == 0); //a가 0이거나 b가 0인가? true
printf(&quot;%d\n&quot;, !(a==0));//a가 0인지의 여부의 반대, false&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;769&quot; data-origin-height=&quot;370&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1mJ7u/btq6V3QxBVW/ce1JwWKemth4bGmYY8vhS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1mJ7u/btq6V3QxBVW/ce1JwWKemth4bGmYY8vhS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1mJ7u/btq6V3QxBVW/ce1JwWKemth4bGmYY8vhS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1mJ7u%2Fbtq6V3QxBVW%2Fce1JwWKemth4bGmYY8vhS1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;318&quot; data-origin-width=&quot;769&quot; data-origin-height=&quot;370&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a != b&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;!(a == b)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;는 완전히 동일한 결과를 가진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(5) 비트 연산자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자료형의 최소 단위는 Byte이지만 (sizeof(char)), 비트 연산자를 사용하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트 단위로도 연산을 수행할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;때문에 특정 상황에서는 메모리를 절약할 수도 있다. (비트 플래그)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트 연산자에 대해서는 다른 포스팅에서 자세히 얘기하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝..&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>관계연산자</category>
      <category>논리연산자</category>
      <category>비트연산자</category>
      <category>사칙연산자</category>
      <category>연산자</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/10</guid>
      <comments>https://deepprogramming.tistory.com/10#entry10comment</comments>
      <pubDate>Wed, 9 Jun 2021 21:21:34 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 2.1강 - 변수 이름 규칙, 변수 이름 표기법 (카멜,파스칼,스네이크)</title>
      <link>https://deepprogramming.tistory.com/9</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이 글에서는 변수 이름을 정할 때 지키는 규칙들에 대해 얘기한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴파일러 차원에서 방지하는 표기도 있지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;협업을 하거나, 오픈소스 프로젝트를 진행할 때 변수 이름을 이해하기 쉽게 작성하는 것은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 매너(?)이기 때문에 잘 숙지하는 것이 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) 변수명에서 허용되지 않는 것들&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 변수명의 첫 글자는 무조건 문자여야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 아래와 같은 선언은 허용되지 않는다.&lt;/p&gt;
&lt;pre id=&quot;code_1623238194630&quot; class=&quot;c++ arduino&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int 1x = 3;//Error&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 변수명에는 띄어쓰기가 존재할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어찌보면 당연한 것이.. 만약 가능해진다면 이게 변수명인지 뭔지 알기 힘들 꺼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 변수명에 포함할 수 있는 특수문자는 '@', '$' 뿐입니다. 그 둘만 연산자로써 쓰이지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 예약어는 절대 사용할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예약어&lt;/b&gt;란 이미 컴파일러가 사용하려고 '예약'해놓은 단어들로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;프로그래머는 사용할 수 없는 단어들이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 자료형 이름들, 키워드 'return', 키워드 'class', 등이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 띄어쓰기의 대안&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 말한 띄어쓰기가 안되는 것 때문에&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 흔히 쓰이는 표기법들이 있는데,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;서론에 말한 '매너'가 여기서 시작된다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1623238194630&quot; class=&quot;c++ arduino&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int myVariableName = 1;//카멜 표기법
float MyVariableName = 2;//파스칼 표기법
char my_varaible_name = 3;//스네이크 표기법&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서부터 차례대로 카멜, 파스칼, 스네이크 표기법이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 카멜 표기법은 첫 단어의 앞글자는 소문자로, 이어지는 띄어쓸 단어의 앞글자는 대문자로 쓰는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 개발자가 애용하는 방식이기도하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;변수 이름&lt;/b&gt;에 자주 쓰인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 파스칼 표기법, 카멜 표기법과 같은데, 다만 첫 단어의 앞글자도 대문자로 적는다는 차이점이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무래도 첫 글자가 대문자인 건 실제 영어에서 단어의 첫 글자를 대문자로 표기하는 경우와&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비슷한 이치인 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;typedef&lt;/b&gt;나&amp;nbsp;&lt;b&gt;클래스 이름&lt;/b&gt;, &lt;b&gt;함수 이름&amp;nbsp;&lt;/b&gt;자주 쓰이는 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 스네이크 표기법, 보시다시피 띄어쓰기가 필요한 곳에 '_' 문자를 넣는다.(underscore?)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(아마 범용적인 가독성 때문에) &lt;b&gt;표준 헤더&lt;/b&gt;&amp;amp;&lt;b&gt;라이브러리&lt;/b&gt;에서 쓰이는 것을 많이 봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 위에서 말한 것들 말고 표기법이 한 가지가 더 있는데, 헝가리안 표기법이라고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 요즘엔 거의 쓰이지 않는다고 하니 굳이 다 기억할 필요는 없을 듯.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대부분 접두사로 붙여진다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 52.7907%; height: 133px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 22.5581%; text-align: center; height: 19px;&quot;&gt;접두사&lt;/td&gt;
&lt;td style=&quot;width: 30.2326%; text-align: center; height: 19px;&quot;&gt;의미&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 22.5581%; text-align: center; height: 19px;&quot;&gt;str (string)&lt;/td&gt;
&lt;td style=&quot;width: 30.2326%; text-align: center; height: 19px;&quot;&gt;문자열 (std::string 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 22.5581%; text-align: center; height: 19px;&quot;&gt;ch (char)&lt;/td&gt;
&lt;td style=&quot;width: 30.2326%; text-align: center; height: 19px;&quot;&gt;char 형 변수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 22.5581%; text-align: center; height: 19px;&quot;&gt;p (pointer)&lt;/td&gt;
&lt;td style=&quot;width: 30.2326%; text-align: center; height: 19px;&quot;&gt;포인터 변수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 22.5581%; text-align: center; height: 19px;&quot;&gt;sz (string-zero)&lt;/td&gt;
&lt;td style=&quot;width: 30.2326%; text-align: center; height: 19px;&quot;&gt;문자열 (char[], NULL을 이용하는)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 22.5581%; text-align: center; height: 19px;&quot;&gt;arr (array)&lt;/td&gt;
&lt;td style=&quot;width: 30.2326%; text-align: center; height: 19px;&quot;&gt;배열&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통상적으로 이런 의미라고 하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검색해보면 굉장히 많이 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 카멜 표기법을 함수나 클래스이름에 쓰거나, 파스칼 표기법을 변수에 써도 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만, 적어도 한 프로젝트 내에선 각 표기법의 뉘앙스(?)를 유지하거나 방식을 통일시키는 것이 중요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하다보면 같은 변수나 함수라도 어떤 표기법을 쓰는 게 관례적인지 감이 올 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>규칙</category>
      <category>낙타표기법</category>
      <category>변수이름</category>
      <category>스네이크표기법</category>
      <category>카멜표기법</category>
      <category>파스칼표기법</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/9</guid>
      <comments>https://deepprogramming.tistory.com/9#entry9comment</comments>
      <pubDate>Wed, 9 Jun 2021 20:48:24 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 4강 - 자료형에 대하여&amp;middot;&amp;middot;&amp;middot; (부동 소수점, ASCII, signed &amp;amp; unsigned)</title>
      <link>https://deepprogramming.tistory.com/8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 글은 C언어에서 사용되는 자료형에 대해 자세히 얘기하는 내용이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이전의 강좌들에 넣기엔 분량이 너무 많아져 생략했던 것들을 모았다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(1) 정수 타입&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;C언어에서 사용할 수 있는 정수 타입 종류 아래와 같다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622973299950&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;short 		//2Bytes
int 		//4Bytes
long	  	//4Bytes
long long 	//8Bytes&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;저 중에서 int를 가장 많이 쓰게 될 것이다.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;각 타입의 size는 개발 환경마다 상이할 수 있다는 걸 알아두자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;정수 타입의 범위를 구하는 법은&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;지난 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;a style=&quot;color: #006dd7;&quot; href=&quot;https://deepcode.kr/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;강좌 2강(변수)&lt;/a&gt;&lt;/span&gt;에서 다뤘으므로 생략함.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(2) 고정 소수점과 부동 소수점 (float, double)&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;컴퓨터에서 실수를 표현하는 방식은 크게 두 가지로 나눌 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1. 고정 소수점 (Fixed Point)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2. 부동 소수점 (Floating Point)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;고정 소수점은 말그대로 &lt;b&gt;소수점이 고정&lt;/b&gt;된 것이고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;부동 소수점도 말그대로 &lt;b&gt;소수점이 움직인다&lt;/b&gt;는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ㄱ) 고정 소수점&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;예를 들어 32Bits 중 절반16개는 정수, 나머지 절반16개는 소수점 부분의 숫자를 저장하는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1177&quot; data-origin-height=&quot;383&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXmMqR/btq6AO1o1TG/rpV8WDPhc4dQ44RUPG4DXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXmMqR/btq6AO1o1TG/rpV8WDPhc4dQ44RUPG4DXK/img.png&quot; data-alt=&quot;실제로 정확한 고정 소수점의 형태는 아니고 보고 이해하기 쉽게 그린 것&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXmMqR/btq6AO1o1TG/rpV8WDPhc4dQ44RUPG4DXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXmMqR%2Fbtq6AO1o1TG%2FrpV8WDPhc4dQ44RUPG4DXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;571&quot; height=&quot;186&quot; data-origin-width=&quot;1177&quot; data-origin-height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실제로 정확한 고정 소수점의 형태는 아니고 보고 이해하기 쉽게 그린 것&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2.3이 고정소수점 형태로 저장된 것을 그림으로 그렸는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;어렵지 않으니 금방 이해할 수 있을 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그런데 고정 소수점엔 치명적인 단점이 하나 있는데, 바로&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;소수점이 고정되기 때문에 비트 낭비가 있을 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를들어서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;위에서 그린 2.3의 소수점은 3이라서 비트 두 개만으로도 표현할 수 있는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트를 네 개나 쓰고 있으니, 낭비라고 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;또한 2보다 훨씬 큰 정수를 표현하고 싶을 때&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그리고 소수점 부분은 비트가 많이 필요하지 않을 때&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;만약 소수 부분은 비트를 두 개만 쓰고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;나머지를 정수 부분에 양보할 수 있다면 메모리를 더 효율적으로 사용할 수 있을 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이것을 해결하기 위해 나온 것이 바로 부동 소수점(floating point)이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ㄴ) 부동 소수점&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;C언어에서 사용하는 실수 자료형인 float과 double이 바로 IEEE754 표준에서 정의하는 부동 소수점을 따른다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;부동 소수점이 실수를 표현하는 방식은 생각보다 복잡하니 꼼꼼히 읽어야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 포스팅만으로 이해가 안 간다면 다른 자료라도 찾아봐서 이해한다면&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 좋을 듯하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;12.345으로 예를 들자면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;먼저 이를 과학적표기법으로 표기해야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;12.345은 과학적 표기법으로&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;\(1.2345 \times 10^{1}\)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;같이 표기할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이때 소수점의 위치의 따라 10의 지수도 변할 수 있는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;\(1.2345 \times 10^{1}\)처럼 소수점 앞에 자리가 0이 아닌 한 자릿수라면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그것을 정규화(normalization)라고 한다. 즉, 12.345를 정규화로 표기하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;\(1.2345 \times 10^{1}\)가 되는 것!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IEEE754을 따라서 부동 소수점이 저장될 때는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 수를 2진수로 변환하고 정규화식으로 표현하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8.5 에 그 과정을 적용하면 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;\(8.5 =&amp;gt; 1000.10_2 =&amp;gt; 1.00010 \times 2^3\)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 여기서 다음 세 가지를 뽑아내는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 부호 : 0 (0이면 +, 1이면 -)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 지수 : 130 (지수는 3이지만 IEEE754표준에서는 지수 + 127 을 저장하는데, 이 127을 bias라고 함, 이 bias를 더하는 이유는 지수가 음수일 때 연산을 쉽게 하기 위해서..)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 가수 : 00010000000000000000000 (정규화식에서 소수점 뒷부분, 모자라는 부분은 0으로 채움)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 세 가지를 아래 그림과 같은 구조로 저장하여 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUPcDU/btq6AQFaRsj/SrvLMvjnxicNa5Dq3SwrE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUPcDU/btq6AQFaRsj/SrvLMvjnxicNa5Dq3SwrE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUPcDU/btq6AQFaRsj/SrvLMvjnxicNa5Dq3SwrE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUPcDU%2Fbtq6AQFaRsj%2FSrvLMvjnxicNa5Dq3SwrE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;351&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론적으로 8.5를 부동소수점에 저장한다면 아래와 같이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(부호)&amp;nbsp; &amp;nbsp; (지수 \(130_2\))&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (가수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10000010&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;00010000000000000000000&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그러나 슬프게도 부동 소수점에도 역시 단점은 존재하는데..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그것은 바로&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1. 정밀도&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2. 성능&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;부동 소수점은 고정 소수점에 비해 성능과 정밀도, 모두 뒤쳐진다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;정밀도가 떨어지는 이유는 컴퓨터가 이진법으로 계산하기 때문인데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8.5같은 경우 오차없이 이진법으로 표현할 수 있는 수라서 예시로 든 것이고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇지 않은 수들은 소수점이 무한대로 뻗어나간다. (무한소수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표적인 게 0.1인데, 0.1을 이진 정규화식으로 표현하면 무한소수가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 컴퓨터로 0.1 * 0.1 을 계산하면 0.01이 나오지 않는 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;285&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wvO91/btq6DSpzmA1/YMuDkVprZs5N2VQUikLa2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wvO91/btq6DSpzmA1/YMuDkVprZs5N2VQUikLa2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wvO91/btq6DSpzmA1/YMuDkVprZs5N2VQUikLa2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwvO91%2Fbtq6DSpzmA1%2FYMuDkVprZs5N2VQUikLa2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;324&quot; height=&quot;230&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;285&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보시다시피 오차를 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;(%.Nlf 이렇게 하면 출력할 소수점 자릿수를 지정할 수 있습니다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 설명한 것이 4Bytes의 크기인 float의 경우였고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;double은 float 비트 수의 정확히 2배, 따블로 되어있어서 double이라고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 부동 소수점의 정밀도는 float의 경우 약 5자리까지, double의 경우 약 10자리까지 오차 없이 표현할 수 있다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(3) unsigned와 signed&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;int 등 수를 저장하는 자료형은 모두 부호를 의미하는 비트를 가지고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;최상위 비트 하나가 부호를 의미하는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;0이면 양수, +&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1이면 음수, - 가 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1001 -&lt;/b&gt; 최상위 비트가 1이므로 음수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0001&amp;nbsp;&lt;/b&gt;- 최상위 비트가 0이므로 양수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;signed int의 범위는 지난 강좌에서 말했듯&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-2,147,483,648 ~ 2,147,483,647 이고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;unsigned int의 범위는 0 ~ 4,294,957,295 까지이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;usigned는&amp;nbsp;&lt;b&gt;1001&lt;/b&gt; 도 음수로 인식하는 게 아니라&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;01001&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;을 계산하듯이 한다. (비트가 늘어나는 것은 아니다, 다만 셈(count)을 그렇게 한다는 것이다)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;signed는 비트 하나를 부호를 위해 사용하기 때문에&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;표현할 수 있는 범위의 최대값의 절대값이 절반이 됐다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;전체 범위에서 절반을 나눠서 - 쪽으로 양보하는 것이다(수직선에서 왼쪽..).&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(4) char형과 ASCII&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;char형.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1바이트 크기를 가진 문자를 위한 자료형이라고 알고 있을 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그런데 범위를 논할 땐 꼭 -128~127로 얘기를 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이는 단순히 256가지 값을 표현할 수 있다는 것을 비유로 얘기하는 것이 아니라,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 그 숫자들을 저장하여 문자를 표현하기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;컴퓨터는 모든 문자를 정해진 숫자에 대응시켜서 표현(문자 인코딩)하는데&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;예를 들어&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;'A' : 65&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;'B' : 66&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;'Z' : 90&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;'a' : 97&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;'b' : 98&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;'z' : 122&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이런 식이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;대문자 A부터 65, 소문자 a부터 97에 대응시키는 인코딩 방식이 바로 ASCII라는 C언어에서 사용하는 표준이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 ASCII에서는 0~127의 숫자를 알파벳과 일부 특수문자와 대응시키게 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;아래는 위키백과에서 퍼온 ASCII 전체 표이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1724&quot; data-origin-height=&quot;1241&quot;&gt;&lt;a href=&quot;https://ko.m.wikipedia.org/wiki/ASCII&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVHEJO/btq6A9YDSYD/cL7tcYXw7Ztdn7NKxVqmG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVHEJO%2Fbtq6A9YDSYD%2FcL7tcYXw7Ztdn7NKxVqmG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;601&quot; height=&quot;1241&quot; data-origin-width=&quot;1724&quot; data-origin-height=&quot;1241&quot;/&gt;&lt;/a&gt;&lt;figcaption&gt;클릭 시 원본 이동&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;printf로 char형을 %d로 출력한다면 ASCII값을 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622980296597&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	printf(&quot;%d %d\n&quot;, 'A', 'c');
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;또 단일 문자 자체를 컴파일러가 숫자로 인식하기도 하기 때문에&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이런 것도 가능하다&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622980381130&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	printf(&quot;%d - %c\n&quot;, 'A' + 5, 'A' + 5);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;A부터 5번째 뒤, 즉 6번째 알파벳인 F와 F의 ASCII인 70이 출력된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7aunQ/btq6HjeDCf4/K23nDKYsi86MdTWMG8XkDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7aunQ/btq6HjeDCf4/K23nDKYsi86MdTWMG8XkDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7aunQ/btq6HjeDCf4/K23nDKYsi86MdTWMG8XkDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7aunQ%2Fbtq6HjeDCf4%2FK23nDKYsi86MdTWMG8XkDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;490&quot; height=&quot;307&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(5) 추가 서식 문자들&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이전 강좌에서 설명하지 못했던 서식 문자들이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;unsigned와 signed의 서식 문자를 구분하여 설명하는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;short 등 printf 강좌에서 설명하지 못한 것도 추가했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 46.5357%; height: 190px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4884%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;서식 문자&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.0232%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;용도&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4884%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%u&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.0232%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;unsigned int&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4884%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%e, %E&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.0232%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;실수를 지수표기법으로 출력함&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4884%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%g, %G&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.0232%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%f와 %e,%E 중 더 짧은 것을&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;알아서 선택해줌&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4884%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%hhd&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.0232%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;char형을 %d로 출력할 때 나오는 그 ASCII값으로 받아들임.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;scanf(&quot;%hhd&quot;,&amp;amp;ch); 이럴 때 65를 입력하면 ch에는 A가 저장됨.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4884%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%hd&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.0232%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;signed short&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4884%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%hu&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.0232%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;unsigned short&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4884%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%lu&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.0232%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;unsigned long&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4884%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%llu&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 28.0232%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;unsigned long long&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이것 말고도 더 많은 서식 문자들이 있지만.. 이정도만 알고 있어도 당장은 지장이 없기 때문에&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그때 그때 필요한 걸 찾아쓰면 된다! 구글에 검색하면 1초 만에 나오는..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>ascii</category>
      <category>C++</category>
      <category>char</category>
      <category>C언어</category>
      <category>Double</category>
      <category>float</category>
      <category>Signed</category>
      <category>unsigned</category>
      <category>고정소수점</category>
      <category>부동소수점</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/8</guid>
      <comments>https://deepprogramming.tistory.com/8#entry8comment</comments>
      <pubDate>Sun, 6 Jun 2021 21:07:25 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 3.1강 - scanf 사용 시 주의 사항!! (white-space 버그)</title>
      <link>https://deepprogramming.tistory.com/7</link>
      <description>&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(1) scanf 사용 시 주의 사항&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;[버퍼를 초기화 해야하는 경우]&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1. 여러 변수를 한 번에 입력하면 안되는 경우&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;아래 코드를 보자&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;c++ arduino&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;c++&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int a, b, c;
  printf(&quot;a를 입력하세요 : &quot;);
  scanf_s(&quot;%d&quot;, &amp;amp; a);
  printf(&quot;b를 입력하세요 : &quot;);
  scanf_s(&quot;%d&quot;, &amp;amp; b);
  printf(&quot;c를 입력하세요 : &quot;);
  scanf_s(&quot;%d&quot;, &amp;amp; c);
  printf(&quot;%d + %d + %d = %d\n&quot;, a, b, c, a + b + c);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 코드를 실행하면 이렇게 된다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;513&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tdn5B/btq6APlolJx/G3v0as4tCtb5niAIcIzuDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tdn5B/btq6APlolJx/G3v0as4tCtb5niAIcIzuDK/img.png&quot; data-alt=&quot;세 수를 더하는 코드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tdn5B/btq6APlolJx/G3v0as4tCtb5niAIcIzuDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftdn5B%2Fbtq6APlolJx%2FG3v0as4tCtb5niAIcIzuDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;513&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;513&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;세 수를 더하는 코드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;저번에 한 a, b를 더하는 것과 똑같이 작동하는 코드이다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그런데 여기서 scanf의 허점이 드러나는데.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;입력값을 이렇게 해보쟈ㅏ&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;898&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qEnMx/btq6A86slW7/dBF5MBgxiA5DtPXUAwhwMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qEnMx/btq6A86slW7/dBF5MBgxiA5DtPXUAwhwMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qEnMx/btq6A86slW7/dBF5MBgxiA5DtPXUAwhwMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqEnMx%2Fbtq6A86slW7%2FdBF5MBgxiA5DtPXUAwhwMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;898&quot; height=&quot;178&quot; data-origin-width=&quot;898&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;a먼저 입력받은 후&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;b를 입력하라는 메시지를 출력했고 c도 마찬가지인데&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이것은 a를 입력받고 나서 b, c도 함께 입력받았다는 의미이다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;어떻게 a, b, c가 동시에 입력된 것일까&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이유는 간단한데&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;바로 scanf가 &lt;b&gt;키보드로부터 직접 입력받는 게 아니기&lt;/b&gt; &lt;b&gt;때문&lt;/b&gt;이다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;우리가 키보드로 숫자를 입력하면 그 숫자는 os에 의해 &lt;b&gt;Buffer&lt;/b&gt;(버퍼)라 불리는 메모리 공간에 &lt;b&gt;저장&lt;/b&gt;이 되며,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;scanf는 그 &lt;b&gt;버퍼에 저장된 값&lt;/b&gt;을 변수에 다시 저장합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그런데 숫자를 2 3 5 이렇게 여러 개를 입력하면 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그 여러 개의 숫자가 버퍼에 저장되고&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2를 a에 입력하고 나서&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;b를 입력하라는 메시지를 출력한 후&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;이미 버퍼에 저장된&lt;/b&gt; 3을 b에 가져가는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이걸 해결하기 위해선 그 버퍼를 우리가 &lt;b&gt;직접 비워주면&lt;/b&gt; 된다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;c++ arduino&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;c++&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt; int main() { int a, b, c; printf(&quot;a를 입력하세요 : &quot;); scanf_s(&quot;%d&quot;, &amp;amp;a); rewind(stdin); printf(&quot;b를 입력하세요 : &quot;); scanf_s(&quot;%d&quot;, &amp;amp;b); rewind(stdin); printf(&quot;c를 입력하세요 : &quot;); scanf_s(&quot;%d&quot;, &amp;amp;c); printf(&quot;%d + %d + %d = %d\n&quot;, a, b, c, a + b + c); }&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;stdin&lt;/b&gt;이 바로 scanf가 값을 갖다쓰는 그 버퍼이고 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;rewind&lt;/b&gt; 함수가 버퍼를 초기화 해준다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;정확히 말하면 메모리를 초기화한다기보단&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;커서&lt;/b&gt;를 &lt;b&gt;초기화&lt;/b&gt; 하는 것인데.&lt;s&gt;(\r..?)&lt;/s&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;stdin&lt;/b&gt; 같은 버퍼를 &lt;b&gt;응용 &lt;/b&gt;&lt;b&gt;소프트웨어 - OS - 하드웨어&lt;/b&gt; 간의 정보 &lt;b&gt;흐름&lt;/b&gt;을 담당하는 메모리라고 해서&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;'&lt;b&gt;스트림&lt;/b&gt;'이라고 부르는데, 표준 스트림으로는 stdin 말고도 &lt;b&gt;stdout&lt;/b&gt;, &lt;b&gt;stderror&lt;/b&gt; 가 있고 이것들을 통틀어 &lt;b&gt;stdio&lt;/b&gt;라고 한답니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(이 표준 스트림과 관련된 함수들이 모여있는 게 우리가 항상 사용하는 stdio.h 헤더파일인 거죠.)&lt;/span&gt;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;stdin은 내부적으로 '&lt;b&gt;위치 지시자&lt;/b&gt;'라는 변수를 가지고 있다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;scanf가 어느 위치에 있는 값을 변수에 저장해야할지 알려주는 변수인데&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이걸 초기화해서 새로운 값을 입력받는 원리이다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2. char형으로 입력받는 경우&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;지금은 아니지만 나중에 %c로 char형 변수를 입력할 때&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;개행문자 '\n'도 같이 입력되는 버그를 언젠가는 만날 것인데&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;지금은 무슨 말일지 몰라도&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;부디 그때 이 포스팅을 기억하길 바란다,,ㅎㅎ&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;키보드로 123 을 입력하게 된다면 버퍼에는 이렇게 저장이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;285&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3jcC5/btq6BeyBCgu/mKlOmUvLyPkVSUrTNV67W1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3jcC5/btq6BeyBCgu/mKlOmUvLyPkVSUrTNV67W1/img.png&quot; data-alt=&quot;마지막은 개행 문자인데... 그림 못생겨서 죄송&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3jcC5/btq6BeyBCgu/mKlOmUvLyPkVSUrTNV67W1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3jcC5%2Fbtq6BeyBCgu%2FmKlOmUvLyPkVSUrTNV67W1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;878&quot; height=&quot;285&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;285&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;마지막은 개행 문자인데... 그림 못생겨서 죄송&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;여기서 \n은 &lt;b&gt;white-space&lt;/b&gt; 에 속하는데 이게 뭐냐면 scanf가 이건 입력받으면 안 되는구나... 하는 문자가 있다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;' ', '\n,'\t' 같은 거 말이다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이런 건 %d로 입력받을 때는 정수가 될 수 없으므로&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;알아서 필터링 하는데 반해&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%c로 char형을 입력받을 때는 조금 다르다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이것들도 하나의 문자이기 때문에 char에 저장될 수 있다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그 말이 무엇이냐하면..!!&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;c++ arduino&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;c++&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int a;
  char ch;
  scanf_s(&quot;%d&quot;, &amp;amp; a);
  printf(&quot;입력한 수는 %d\n&quot;, a);
  scanf_s(&quot;%c&quot;, &amp;amp; ch, 1) printf(&quot;입력한 문자는 %c\n&quot;, ch);
  return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 코드를 실행해보자.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;대충 내가 좋아하는 숫자인 1206을 입력해보면&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;241&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dd4uq7/btq6Adf54P2/eRQeRGRxkKFsQYKhFvIxK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dd4uq7/btq6Adf54P2/eRQeRGRxkKFsQYKhFvIxK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dd4uq7/btq6Adf54P2/eRQeRGRxkKFsQYKhFvIxK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdd4uq7%2Fbtq6Adf54P2%2FeRQeRGRxkKFsQYKhFvIxK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;241&quot; height=&quot;155&quot; data-origin-width=&quot;241&quot; data-origin-height=&quot;155&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;문자가 빈 문자가 나온다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이렇게 봐서는 잘 모르겠으니&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;printf를 이렇게 수정해보면&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;c++ arduino&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;c++&quot;&gt;&lt;code&gt;printf(&quot;입력한 문자는 ==%c==\n&quot;, ch);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;133&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbCYZI/btq6zVUjCbY/ouvAfwBA5uwpWngHpkxSz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbCYZI/btq6zVUjCbY/ouvAfwBA5uwpWngHpkxSz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbCYZI/btq6zVUjCbY/ouvAfwBA5uwpWngHpkxSz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbCYZI%2Fbtq6zVUjCbY%2FouvAfwBA5uwpWngHpkxSz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;336&quot; height=&quot;133&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;133&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그랬더니 이렇게 됐다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;== 와 == 사이에 줄바꿈이 생겼다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이게 바로 방금 설명한 현상인데&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;처음에 정수로 입력받았기 때문에 1206 뒤에 있던 '\n'이 ch에 입력받을 때가 돼서야&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;변수에 저장된 거다..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이걸 해결하려면 똑같이 rewind를 쓰면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;c++ arduino&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;c++&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
  int a;
  char ch;
  scanf_s(&quot;%d&quot;, &amp;amp; a);
  printf(&quot;입력한 수는 %d\n&quot;, a);
  rewind(stdin);
  scanf_s(&quot;%c&quot;, &amp;amp; ch, 1); //마지막에 1을 쓴 이유는,, 이게 3강에서 언급한 //scanf_s의 특별한 사용법인데 말한대로 포인터를 배울 때 다시 설명할 예정!!
  printf(&quot;입력한 문자는 ==%c==\n&quot;, ch);
  return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;사실 꼭 rewind가 아니더라도 scanf로 %*c로 입력받거나, 아니면 %c로 두 번 입력받거나 getchar로 입력받는 등&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;어떻게든 '\n'만 없애주면 상관없다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그러나 rewind가 가장 확실하고 속시원한 방법이라 생각해 rewind를 사용하는 방식만 소개했는데, 궁금하다면 다른 자료를 찾아보는 것도 좋다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;앞으로도 이렇게 보충 설명이 필요한 거나 같은 주제로 내용이 길어질 것 같으면 포스팅을 나눠서 쓰려고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;끝.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>%c</category>
      <category>C++</category>
      <category>C언어</category>
      <category>REWIND</category>
      <category>scanf</category>
      <category>scanf_s</category>
      <category>stdio</category>
      <category>white-space</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/7</guid>
      <comments>https://deepprogramming.tistory.com/7#entry7comment</comments>
      <pubDate>Sun, 6 Jun 2021 19:23:28 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 3강 - 변수를 출력하고 입력받는 법 (printf, scanf, scanf_s)</title>
      <link>https://deepprogramming.tistory.com/6</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;(1) printf로 변수 출력하기&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;지난 1강에서 문자열을 출력하는 것은 해보았다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622953732872&quot; class=&quot;c++ arduino&quot; style=&quot;display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	printf(&quot;Hello World!\n&quot;);
    
	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;앞으로는 예시를 들때 include와 main 등은 꼭 필요한 경우가 아니면 생략하는 일이 빈번할 것인데&amp;nbsp;&lt;br /&gt;여러분의 넓은 아량으로 이해를..&lt;br /&gt;쓰다보면 굉장히 귀찮아져서.. 허허&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;여기에 변수를 출력하고 싶을 땐 어떻게 해야할까&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;각 타입에 맞는 서식 문자를 이용하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;예를 들어 정수를 출력할 때는 %d 서식 문자를 이ㅣ용한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622953732877&quot; class=&quot;c++ arduino&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 10;

printf(&quot;%d\n&quot;, a);//10 출력&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이렇게 하면 10이 출력될 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a를 int형으로 선언하고 10을 대입했으니, int형에 해당하는 서식 문자인 %d를 사용한 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;%d&quot;가 위치한 자리에 a의 값 10을 문자열 형태로 치환해서 넣어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;참고로 printf 함수 이름에서 f는 format을 의미함.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;여러 &quot;형식&quot;의 변수를 하나의 문자열로 조합해 출력하는 함수.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;물론 %d는 int와 같이 4바이트 정수 타입을 출력할 때만 쓰고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;다른 타입은 다른 서식 문자를 사용해야한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 43.2242%; height: 171px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.7035%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ffffff;&quot;&gt;서식 문자&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ffffff;&quot;&gt;용도&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.7035%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%d&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;signed int 타입 10진법으로 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.7035%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%ld&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;signed&amp;nbsp;long 타입 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.7035%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%lld&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;signed&amp;nbsp;long long 타입 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.7035%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%f&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;float 타입 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.7035%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%lf&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;double 타입 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.7035%;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%c&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;char형 문자 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.7035%;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%s&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;문자열 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.7035%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%x, %X&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;정수를 16진법으로 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.7035%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%o, %O&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;정수를 8진법으로 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 16.7035%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;%p&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8532%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;포인터 타입을 16진법으로 출력&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;여기서 포인터는 많은 사람들이 아주 골치아파하는 타입인데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;지금은 아니어도 언젠가는 충분히 머리를 싸맬 것이니 지금은 눈길도 주지 말자&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;사실 사용할 수 있는 서식 문자는 방금 본 것보다 훨씬 더 다양한데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그러나 지금은 이 강좌에서 당장 필요한 것과 꼭 알아야할 것들 몇가지를 적었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;또 이 서식 문자들로 접두사를 붙인다든지, 여백 등을 설정할 수 있는데 이것들은&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;다른 서식 문자들과 함께 다음 강좌에서 소개하겠다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;간단하게 저 위에 있는 것들을 사용해보면&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622953732894&quot; class=&quot;c++ arduino&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
      int a = 32;
      double b = 3.1415;
      printf(&quot;a를 %%d로 : %d\n&quot;, a);
      printf(&quot;b를 %%lf로 : %lf\n&quot;, b);
      printf(&quot;a를 %%x로 : %x\n&quot;, a);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이 코드를 '디버그 하지 않고 시작'의 단축키&amp;nbsp;&lt;b&gt;Ctrl + F5&amp;nbsp;&lt;/b&gt;로 실행해보자.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_1.png&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;143&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ukRVW/btq6z5oErWs/Ozmvl5KDyZLnPZF3bCUFtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ukRVW/btq6z5oErWs/Ozmvl5KDyZLnPZF3bCUFtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ukRVW/btq6z5oErWs/Ozmvl5KDyZLnPZF3bCUFtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FukRVW%2Fbtq6z5oErWs%2FOzmvl5KDyZLnPZF3bCUFtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;332&quot; height=&quot;143&quot; data-filename=&quot;images_1.png&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;143&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이렇게 출력이 될 것.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;보다시피 '%' 자체를 출력할 때는 %%를 쓰면 되고..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;저번 강의부터 있던 저 '\n'은 뭘까? 분명 &quot; &quot; 안에 적긴 했는데 출력물을 보면&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;아무것도 보이지 않네요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;(글꼴 때문에 그런데 \과 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;\&lt;/span&gt; 는 같은 문자이다, 엔터키 위에 있는 키)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;저것은 바로 줄바꿈을 의미하는데, \n을 만나면 자동으로 줄바꿈을 해준다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이러한 특수 기능이 있는 문자들을 이스케이프 시퀀스라고 하는데,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;그 종류는 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 53.0313%; height: 114px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 21.683%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ffffff;&quot;&gt;이스케이프 시퀀스&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 49.9426%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ffffff;&quot;&gt;의미&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 21.683%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;\n&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 49.9426%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;개행 문자(줄바꿈)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 21.683%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;\t&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 49.9426%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;Tab&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 21.683%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;\b&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 49.9426%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;백스페이스, 커서를 왼쪽으로 옮긴다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;그 위치에서 다음 문자를 덮어씌우는 형식이라&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;\b만 쓰면 글씨가 지워지진 않는다&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 21.683%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;\r&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 49.9426%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;커서를 맨 왼쪽으로 옮긴다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;\b와 마찬가지로 옮긴 위치에서 덮어씌워진다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 21.683%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;\a&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 49.9426%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;경고음을 낸다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이 코드를 실행해봅시다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622953732910&quot; class=&quot;c++ arduino&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	printf(&quot;HelloWorld\b&quot;);
	printf(&quot;C language is great\rC++ supports OOP\a\n&quot;);
	printf(&quot;\tABC\n&quot;);
	printf(&quot;ABCD\tABC&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;출력 결과는 이렇다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_3.png&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coMAfW/btq6APsA0AI/pJTR39xagwRjQWp843ihR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coMAfW/btq6APsA0AI/pJTR39xagwRjQWp843ihR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coMAfW/btq6APsA0AI/pJTR39xagwRjQWp843ihR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoMAfW%2Fbtq6APsA0AI%2FpJTR39xagwRjQWp843ihR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;363&quot; height=&quot;106&quot; data-filename=&quot;images_3.png&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;하나씩 살펴보자면&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1. 처음에 HelloWorld를 출력하다가 \b가 나왔다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;그래서 커서는 마지막으로 출력했던 d를 가리키고 있는데, 여기서 &quot;C language is great&quot;가 나타나&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;d를 덮어씌워버려 &quot;HelloWorlC language is great&quot; 가 된다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 여기서 또&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2. \r을 만나 커서가 맨 왼쪽으로 이동했다가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&quot;C++ supports OOP&quot;을 출력한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이때 역시 &quot;C++ supports OOP&quot;가 먼저 출력했던 것을 덮어 씌우며 출력되기 때문에&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;결국 &quot;C++ supports OOPage is great&quot;가 출력이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;3. \t(Tab?)가 조금 특이한데. Tab은 8칸을 띄우는 이스케이프 시퀀스임.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;그런데 처음부터 \t을 하고 ABC를 출력한 것과&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;ABCD를 출력하고 \tABC를 한 것과 ABC의 위치가 같은 걸 볼 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;왜냐하면 사실 \t는 정확히 말하면 딱 8칸을 띄우는 것이 아니라&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;콘솔창(메모장 같은 텍스트 에디터 포함)에는 보이지 않는 단위로 8칸씩 나뉘어진 블록이 있는데 그 다음 블록으로 넘어가는 것입니다.(수평 탭).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&quot;ABCD\tABC&quot;를 할 때 이미 ABCD로 첫 블록에 4칸이 이미 채워졌기 때문에&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;\t를 만났을 때 4칸만 마저 띄운다는 뜻.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_4.png&quot; data-origin-width=&quot;375&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QNCVo/btq6DSOUhhg/8EBb5RLNj42fQneAS2oTCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QNCVo/btq6DSOUhhg/8EBb5RLNj42fQneAS2oTCk/img.png&quot; data-alt=&quot;모두 처음 블록에서 두 번째 블록으로 넘어가 ABC의 위치가 같다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QNCVo/btq6DSOUhhg/8EBb5RLNj42fQneAS2oTCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQNCVo%2Fbtq6DSOUhhg%2F8EBb5RLNj42fQneAS2oTCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;375&quot; height=&quot;306&quot; data-filename=&quot;images_4.png&quot; data-origin-width=&quot;375&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모두 처음 블록에서 두 번째 블록으로 넘어가 ABC의 위치가 같다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;C언어는 일부 다른 언어와 다르게 따옴표 ', &quot;의 구분을 명확히 해야한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;예를 들어 Python이라는 언어에서는 'A'와 &quot;A&quot;가 서로 일치하지만&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;C에서는 다릅니다. 'A' 는 ASCII 값으로 65, &quot;A&quot;는 &quot;A\0&quot; 을 의미합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;하나는 단일문자, 하나는 문자열로 타입 자체가 호환이 안 된다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;\0 는 문자열의 끝을 의미하는 Null 문자이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이렇게 널 문자를 이용해 문자열의 끝을 구분하는 방식을 Null-terminated string 이라고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이스케이프 시퀀스들은 \n,\t,\b로 눈으로 보기엔 두 글자인데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;그러나 각각이 줄바꿈, 탭을 의미하는 한 문자이기 때문에 '\n'과 같이 작은 따옴표로 묶어주어야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&quot;\n&quot; 처럼 쓴다면 &quot;A&quot;와 마찬가지로 &quot;\n\0&quot;이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;(3) scanf 사용법&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;scanf로 입력받는 법..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;지금까지는 직접 코드에서 변수에 값을 대입해 출력했는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;그러나 그것 뿐이면 그것은 좋은 프로그램이라 할 수 없다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;왜냐하면 사용자와 소통을 하지 않기 때문.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;소통이 없으면 사용자가 원하는 일을 할 수 없게 된다.&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;scanf의 사용 예시는 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622953732931&quot; class=&quot;c++ arduino&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#define _CRT_SECURE_NO_WARNINGS//scanf는 보안상의 이유로 대신 scanf_s 를 사용하는 것이 권장된다.
					//이 코드를 사용해 보안 경고를 무시한 것이다.
#include &amp;lt;stdio.h&amp;gt;

int main() {
	int a;	//아까 위에서 변수는 무조건 초기화 하라 했는데
    		//scanf로 입력받을 땐 = 로 초기화 해주지 않아도 된다            
	printf(&quot;값을 입력하시오 : &quot;);
	scanf(&quot;%d&quot;, &amp;amp;a);

	printf(&quot;%d\n&quot;, a);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_5.png&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byEOyY/btq6AuolMaM/r6hp8EA8wKBioAdB6urDPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byEOyY/btq6AuolMaM/r6hp8EA8wKBioAdB6urDPK/img.png&quot; data-alt=&quot;프로그램 실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byEOyY/btq6AuolMaM/r6hp8EA8wKBioAdB6urDPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyEOyY%2Fbtq6AuolMaM%2Fr6hp8EA8wKBioAdB6urDPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;344&quot; height=&quot;364&quot; data-filename=&quot;images_5.png&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;프로그램 실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;1. 이렇게 입력받을 값의 서식을 정해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이때 사용되는 서식 문자는 printf에서 사용되는 문자와 동일하다는 것을 알 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;2. 그리고 그 다음 값에는 변수의 '주소'라는 것을 알려줘야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;모든 변수는 메모리 상에 기억되는데, 메모리 위치마다 각각 주소를 가지고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;그리고 그 주소를 이용해서 변수에 접근할 수 있는데 scanf의 역할이 바로 이것이다. &lt;b&gt;알려준 주소에 값을 저장하는 것&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이것은 그 어렵다는 '포인터'의 개념이라서&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;지금은 scanf로 입력받을 땐 &amp;amp;를 붙여야 되는구나~만 알고 있으면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이걸 활용하면 이런 것도 가능한데&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622953732937&quot; class=&quot;c++ arduino&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
	int a, b;//참고로 이렇게 자료형을 한 번만 쓰고 변수 여러 개를 선언하는 것이 가능하다
			//int a = 10, b, c=10; 이렇게 일부 변수만 동시에 초기화하는 것도 가능
	printf(&quot;더할 두 수를 입력하세요 : &quot;);
	scanf_s(&quot;%d%d&quot;, &amp;amp;a, &amp;amp;b); //한 번에 여러 개 입력

	printf(&quot;%d + %d = %d\n&quot;, a, b, a + b);//한 번에 여러 개 출력
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;입력한 두 수와 두 수의 합이 출력되는 코드이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_6.png&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xZ6Ke/btq6As40wvT/kNnB0ysoKYD2IgwdnVt2qK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xZ6Ke/btq6As40wvT/kNnB0ysoKYD2IgwdnVt2qK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xZ6Ke/btq6As40wvT/kNnB0ysoKYD2IgwdnVt2qK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxZ6Ke%2Fbtq6As40wvT%2FkNnB0ysoKYD2IgwdnVt2qK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;483&quot; height=&quot;360&quot; data-filename=&quot;images_6.png&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 코드는 처음에 쓴 코드와 다르게 맨 첫 번째 줄에 #define _CRT~~~ 이게 사라지고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;scanf가 scanf_s로 바뀐 걸 볼 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;사실 scanf는 &lt;b&gt;버퍼 오버플로우&lt;/b&gt;라는 취약점을 가지고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;때문에 마이크로소프트는 해당 취약점을 개선한 scanf_s를 새로 만들어 추가하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;그리고 scanf는 컴파일 조차 안되게 막아버렸는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;위에서 설명했다시피 #define _CRT ~~ 이걸 추가해주면 보안 경고를 무시하고 scanf를 사용할 수 있게 된다.&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;그러나 역시 scanf_s를 사용하는 걸 강력 권장.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;(그래도 scanf_s가 표준은 아니기 때문에, gcc를 사용해 컴파일 한다면 scanf를 사용해야 한다.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;정수를 입력하는 데는 scanf_s의 사용법이 크게 다르지 않지만&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;문자열이란 것을 입력할 때는 사용법이 다른데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 역시 포인터를 설명할 때 같이 추가 설명을 하겠다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;s&gt;오늘 포인터 얘기만 세 번째...ㅋㅋㅋ 포인터 포스팅을 빨리 올려야겠..&lt;/s&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>printf</category>
      <category>scanf</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/6</guid>
      <comments>https://deepprogramming.tistory.com/6#entry6comment</comments>
      <pubDate>Sat, 5 Jun 2021 23:24:57 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 2강 - 프로그램의 필수 요소, 변수</title>
      <link>https://deepprogramming.tistory.com/5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;Welcome^^&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;우리가 사용하는 모-든 프로그램은 사용자가 제공하는 정보, 또는 프로그램이 사용자에게 제공하는 내용이 있음.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이 정보를 다른 말로 '변수'라고 하는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이번 강좌에서는 이 변수에 대해 알아본다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작하기 전에,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주석에 대한 내용이니 읽어보도록 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래밍에 없어서는 안 될 중요한 요소.&lt;/p&gt;
&lt;pre id=&quot;code_1622894407726&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    //이렇게 역슬래시 두 개를 붙이면 주석을 넣을 수 있다
    printf(&quot;HelloWorld&quot;);//어느 위치에 와도 그 위치부터는 그 줄이 몽땅 주석처리 된다.
    //주석은 코드 중간중간에 삽입할 수 있는 설명문으로
    /* 코드를 짜면서 아주 중요하다.
    주석 쓰는 걸 습관들여야 나중에 편하다.. (본인 코드도 못알아볼 수 있음 주의)
    눈치챘겠지만 쓰면 /*와 * /를 쓰면 여러 줄 주석도 가능하다 */
    return /*여러 줄뿐만 아니라 한 줄 사이에 넣을 수도 있음*/0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;(1) 변수와 자료형&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;프로그램이 구동하는데 필요한 정보를 컴퓨터는 '&lt;b&gt;변수&lt;/b&gt;'라는 곳에 &lt;b&gt;기억&lt;/b&gt;하게 되는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;변수는 값을 저장하기 위한 &lt;b&gt;메모리 공간&lt;/b&gt;으로, 변수는 &lt;b&gt;변수의 주기&lt;/b&gt;, 변수가 저장하는 &lt;b&gt;값의 종류&lt;/b&gt;, 변수의 &lt;b&gt;성격&lt;/b&gt;에 따라 종류가 여러 가지로 나뉘게 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;메모리 공간에 &lt;b&gt;기억된 값 자체&lt;/b&gt;를 변수라고 부르기도 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;C언어에서 변수를 사용하는 방법은 아래와 같다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622879823427&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main() {
    int a; //변수 선언
    a = 10;//변수 초기화

    float b = 3.7;//변수를 선언과 동시에 초기화

    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;(자료형) (변수 이름) = (대입할 값)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;위 코드는 두 가지 방식을 사용함.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;변수와 자료형을 보통 '그릇'에 비유하곤 하는데,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;변수는 하나의 그릇이고 변수의 값은 그 그릇에 들어있는 내용물이라고 이해하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;변수는 내용물이 변할 수 있는 그릇이라 언제든 값을 변경할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;382&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqM2wj/btq6zSpMEC3/5E6VPcpMoQT9g2SSsr3fq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqM2wj/btq6zSpMEC3/5E6VPcpMoQT9g2SSsr3fq0/img.png&quot; data-alt=&quot;int a = 10;을 실행한 후 메모리 상태를 그린 그림. 메모리의 Stack이라는 영역에 4Bytes만큼 할당하고 그곳에 10을 저장.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqM2wj/btq6zSpMEC3/5E6VPcpMoQT9g2SSsr3fq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqM2wj%2Fbtq6zSpMEC3%2F5E6VPcpMoQT9g2SSsr3fq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;489&quot; height=&quot;145&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;382&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;int a = 10;을 실행한 후 메모리 상태를 그린 그림. 메모리의 Stack이라는 영역에 4Bytes만큼 할당하고 그곳에 10을 저장.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;pre id=&quot;code_1622953393740&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 10
int b;
b = a;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;물론 이렇게 숫자 대신 변수를 넣어줄 수도 있는데, 이건 b에 a의 값을 '복사'한 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;참고로 10, 0x2000 이런 형태의 숫자 자체의 값을 리터럴 상수라고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;기호 상수, const 상수 등 여러 상수가 있는데 이것은 다른 포스팅에서 자세히 얘기할 거다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;첫 번째는 변수를 선언한 뒤, 다음 줄에서 변수에 값을 저장하는 것이고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;두 번째는 변수를 선언하고 바로 값을 저장하는 것인데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;둘 중 어느 방법을 사용해도 상관은 없으니&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;상황에 따라 잘 선택하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;변수를 초기화 하는 것은 리소스 비용이 비교적 크기 때문에 꼭 필요한 경우만 초기화를 해주는 것이 좋다. (ex. 선언 후 바로 입력을 받는다면 초기화할 필요 없음)&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;다만 주의할 점은 &lt;b&gt;무조건 값을 대입&lt;/b&gt;해주어야 한다는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;아무것도 저장되지 않은 변수에 값을 처음 넣는 것을 '&lt;b&gt;초기화&lt;/b&gt;'라고 하는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;초기화 되지 않은 변수&lt;/b&gt;에 어떠한 연산을 수행할 경우 프로그램에 오류가 발생하게 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;여느 언어들과 다르게 C/C++은 지역 변수를 자동으로 초기화해주지 않는다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;여기서 &lt;b&gt;int &lt;/b&gt;는 정수를 표현하는 변수의 &lt;b&gt;자료형&lt;/b&gt;이다. 변수에 저장되는 값은 여러 종류가 있는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;정수, 실수, 문자 등이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;(정수가 아닌 decimal, 프로그래밍에선 보통 실수라고 한다. 일반적으로 수학적인 의미로 쓰이는 실수(Real)와는 조금 다름..)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;(물론 float a = 3.0;이런 식으로 정수를 저장해도 되지만 a의 소수점이 항상 0인 것이 아닌 한 정수는 int, long 등을 쓰는 게 훨씬 효율적)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;각 자료형에 대한 설명은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 64.8838%; height: 172px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4503%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ffffff;&quot;&gt;자료형(type)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5465%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ffffff;&quot;&gt;용도&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.0801%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ffffff;&quot;&gt;크기(Byte)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.979%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ffffff;&quot;&gt;범위(signed)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4503%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;b&gt;char&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5465%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;단일 문자&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.0801%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;1U&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.979%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;-128 ~ 127&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4503%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;b&gt;short&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5465%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;정수&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.0801%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;2U&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.979%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;-32,768 ~ 32,767&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4503%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5465%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;정수&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.0801%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;4U&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.979%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;-2,147,483,648 ~ 2,147,483,647&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4503%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;b&gt;long&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5465%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;정수&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.0801%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;4U&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.979%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;-2,147,483,648 ~ 2,147,483,647&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4503%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;b&gt;long long&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5465%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;정수&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.0801%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;8U&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.979%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4503%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;b&gt;float&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5465%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;실수&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.0801%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;4U&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.979%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;3.4e-38 ~ 3.4e+38&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 18.4503%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;b&gt;double&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5465%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;실수&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.0801%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;8U&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.979%; text-align: center; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;1.79e-308&amp;nbsp;~&amp;nbsp;1.79e+308&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;변수나 자료형의 크기는 sizeof() 연산자를 이용해 Byte 단위로 구할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;sizeof(int)는 4,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;sizeof(double)은 8이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;정수 타입의 범위를 구하는 방법은 간단하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;b&gt;-2^(sizeof(Type) * 8) ~ 2^(sizeof(Type) * 8) - 1&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;.. 이렇게 보니 조금 복잡한가..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;다시 쓰자면&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;&lt;b&gt;-2^(비트 수) ~ 2^(비트 수) - 1&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;가 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;여기서 다시 표를 보면 int의 범위의 최대값은 2,147,483,647 이죠?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;2^32는 2,147,483,648인데 그 이유는&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;정수 범위에 0을 포함해야 하기 때문이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;음수는 절대값 1부터 절대값 2,147,483,648까지 꽉 채울 수 있지만 (-2,147,483,648 ~ -1)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;양수쪽에서는 0도 포함해야 하기 때문에 2,147,483,647 까지여야 총 2,147,483,648개의 경우를 표현할 수 있다. (0 ~ 2,147,483,647)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;int외의 다른 자료형도 마찬가지인데, char의 최대값은 2^8 - 1, short는 2^16 - 1 이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;그런데 뭔가 이상하지 않은가? char는 분명 문자를 저장하는 용도라고 했는데 범위가 숫자..?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;그 이유는 ASCII라는 것과 관련이 있는데 자세한 내용은 곧 올라갈 자료형 심화 포스팅에서 다루겠다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;다시 범위를 자세히 보면 괄호에 signed 라고 적혀있는 걸 볼 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이건 숫자에 부호가 존재하다는 의미다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;+ / -, 그 부호가 맞다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;반대로 부호가 없는 건 unsigned인데.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이들을 왜 구분하냐?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;가만 생각해보면 굳이 음수는 저장할 일이 절대 없을 때가 있는데&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;사람의 나이, 키, 몸무게, 아니면 게임에서 캐릭터의 레벨 등 같은 거 말이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이런 건 음수일 경우가 없는데 굳이 음수를 표현하자고 비트를 낭비하는 게 싫다면&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;변수 타입 unsigned를 붙이면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1622883771772&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;unsigned int a = 10;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이렇게 하면 a의 범위는 0~4,294,967,295가 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;그런데 웃기게도 unisigned를 붙여도 -10 같은 음수를 저장할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333;&quot;&gt;이 역시 곧 자료형 심화 포스팅에서 자세히 얘기하겠다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오늘 배운 예제는 단순히 변수를 메모리에 할당하기만 한 거라&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;아무리 실행해도 눈에 보이는 결과는 없을 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;끝.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>변수</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/5</guid>
      <comments>https://deepprogramming.tistory.com/5#entry5comment</comments>
      <pubDate>Sat, 5 Jun 2021 21:23:37 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 1강 - Hello, World!</title>
      <link>https://deepprogramming.tistory.com/4</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) Hello World! 의 유래&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hello World는 거의 모든 프로그래밍 강의나 서적에서 처음 시작하는 예제로 채택되는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 이유가&amp;nbsp;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;처음 C언어와 UNIX를 개발한 &lt;b&gt;데니스 리치&lt;/b&gt;와 &lt;b&gt;브라이언 커니핸&lt;/b&gt; 두 사람이 쓴 &quot;The C Program Language&quot; 책에서 처음 시작된 것이&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 내려져온 것이라는..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;(2) 프로젝트 생성하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 Visual Studio(이하 vs)를 실행해주고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 만드는 것이니 새 프로젝트 만들기 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_1.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pGcMY/btq6AswDVhW/EPM7GyhONP2iircCt3Zi60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pGcMY/btq6AswDVhW/EPM7GyhONP2iircCt3Zi60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pGcMY/btq6AswDVhW/EPM7GyhONP2iircCt3Zi60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpGcMY%2Fbtq6AswDVhW%2FEPM7GyhONP2iircCt3Zi60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;680&quot; data-filename=&quot;images_1.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빈 프로젝트를 선택,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;콘솔 앱으로 해도 되지만 빈 프로젝트를 권장함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_2.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Iplbl/btq6BCk1O89/Cl3MivnpPHkL9sZFZ6OKPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Iplbl/btq6BCk1O89/Cl3MivnpPHkL9sZFZ6OKPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Iplbl/btq6BCk1O89/Cl3MivnpPHkL9sZFZ6OKPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIplbl%2Fbtq6BCk1O89%2FCl3MivnpPHkL9sZFZ6OKPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;680&quot; data-filename=&quot;images_2.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 이름을 HelloWorld로 지정하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그대로 만들어주면 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 노란색 박스는 예제 작성 수준에서는 체크해도 상관 없는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경우에 따라 한 솔루션(sln) 내에서 여러 프로젝트(vcproj)가 존재하기도 함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_3.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TRR2R/btq6BEC9Kc1/Zc4hzKjxL3jYm6UxgoKJwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TRR2R/btq6BEC9Kc1/Zc4hzKjxL3jYm6UxgoKJwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TRR2R/btq6BEC9Kc1/Zc4hzKjxL3jYm6UxgoKJwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTRR2R%2Fbtq6BEC9Kc1%2FZc4hzKjxL3jYm6UxgoKJwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;680&quot; data-filename=&quot;images_3.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 소스파일을 만들어 줄건데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;솔루션 탐색기 -&amp;gt; 소스 파일 우클릭 -&amp;gt; 아래 경로를 따라도 되고&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_4.png&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FUfUt/btq6zq7ESYu/qoHnFakApWdYKzRdOzE4z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FUfUt/btq6zq7ESYu/qoHnFakApWdYKzRdOzE4z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FUfUt/btq6zq7ESYu/qoHnFakApWdYKzRdOzE4z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFUfUt%2Fbtq6zq7ESYu%2FqoHnFakApWdYKzRdOzE4z1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;688&quot; height=&quot;680&quot; data-filename=&quot;images_4.png&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;편하게 단축키 &lt;b&gt;Ctrl + Shift + A &lt;/b&gt;를 눌러도 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 명색이 컴퓨터 좀 배우겠다는 사람인데.. 단축키를 쓰는 게.. ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 뜨는 창에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++ 파일을 선택하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가를 해주면 끄-읕&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_5.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfcI9g/btq6BDYycVs/lmcIleD3BK1C66biGwTzak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfcI9g/btq6BDYycVs/lmcIleD3BK1C66biGwTzak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfcI9g/btq6BDYycVs/lmcIleD3BK1C66biGwTzak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfcI9g%2Fbtq6BDYycVs%2FlmcIleD3BK1C66biGwTzak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;941&quot; height=&quot;655&quot; data-filename=&quot;images_5.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일명을 보통 main.c, main.cpp로 많이 하던데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 강좌에서는 ex01, 02로 하도록 하겠다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;(확장자를 .c가 아닌 .cpp로 하는 이유는 지난 0강에서 설명한 바와 같다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;(앞으로의 강좌에서 cpp에서만 지원하는 기능 중에 편리한 기능들이 몇있는데 c 공부하면서 같이 알면 좋을 것 같은 것들을 같이 설명할 것이다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;(물론 c 프로그램을 작성할 때는 해당 기능들은 사용하지 않는다)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 짧은 코드를&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;복붙도 좋지만 직접 따라쳐서..&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1622815186389&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

int main(void) {
	printf(&quot;Hello, World!\n&quot;);

	return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상단 메뉴에서 디버그 -&amp;gt; 디버그하지 않고 시작&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;을 클릭하면 프로그램이 실행된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디버깅은 코드에 중단점이란 걸 잡고 프로그램을 한 줄씩 실행시키면서 버그를 고치는 행동인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러지 않을 거라면 디버그하지 않고 시작을 해도 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것도 단축키 &lt;b&gt;Ctrl + F5&lt;/b&gt; 가 몇배는 편하니 기억하기.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_7.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;473&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYNhXK/btq6zVzn5Wm/OooMdrjuSsK046kVDW1lj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYNhXK/btq6zVzn5Wm/OooMdrjuSsK046kVDW1lj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYNhXK/btq6zVzn5Wm/OooMdrjuSsK046kVDW1lj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYNhXK%2Fbtq6zVzn5Wm%2FOooMdrjuSsK046kVDW1lj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;734&quot; height=&quot;473&quot; data-filename=&quot;images_7.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;473&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_9.png&quot; data-origin-width=&quot;415&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KJHSg/btq6BdTk3vI/oTzaKpdOefqYAFuJIUgocK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KJHSg/btq6BdTk3vI/oTzaKpdOefqYAFuJIUgocK/img.png&quot; data-alt=&quot;실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KJHSg/btq6BdTk3vI/oTzaKpdOefqYAFuJIUgocK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKJHSg%2Fbtq6BdTk3vI%2FoTzaKpdOefqYAFuJIUgocK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;415&quot; height=&quot;242&quot; data-filename=&quot;images_9.png&quot; data-origin-width=&quot;415&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 코드를 리뷰하자면&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 101.008%; height: 80px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25.1162%; text-align: center; height: 20px;&quot;&gt;&lt;b&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75.9303%; text-align: center; height: 20px;&quot;&gt;이렇게 맨 앞에 &lt;b&gt;#&lt;/b&gt; 이 붙은 줄은 &lt;b&gt;전처리기&lt;/b&gt;라고 함.&lt;br /&gt;컴파일러가 &lt;b&gt;본격적으로 컴파일하기 전&lt;/b&gt;에 작업하는 일들을 명시해줌.&lt;br /&gt;include 전처리기는 뒤에 오는 파일에 정의된 것들을 사용하겠다는 뜻.&lt;br /&gt;위 코드에선 &lt;b&gt;다양한 입출력&lt;/b&gt;을 위한 함수, 타입 등이 정의된 stdio.h(&lt;b&gt;St&lt;/b&gt;an&lt;b&gt;d&lt;/b&gt;ard &lt;b&gt;I&lt;/b&gt;nput, &lt;b&gt;O&lt;/b&gt;utput)이 include 됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25.1162%; text-align: center; height: 20px;&quot;&gt;&lt;b&gt;int main(void) { }&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75.9303%; text-align: center; height: 20px;&quot;&gt;프로그램의 시작점(&lt;b&gt;Entry Point&lt;/b&gt;)이다. 프로그램이 &lt;b&gt;실행되면 이 main을 찾음&lt;/b&gt;.&lt;br /&gt;코드 내에서 main() 이렇게 괄호가 붙는다면 대부분 &lt;b&gt;함수&lt;/b&gt;라는 것을 &lt;b&gt;정의&lt;/b&gt;하거나 &lt;b&gt;호출&lt;/b&gt;하는 것이니 기억해두기.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25.1162%; text-align: center; height: 20px;&quot;&gt;&lt;b&gt;printf();&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75.9303%; text-align: center; height: 20px;&quot;&gt;위에서 말한&amp;nbsp;&lt;b&gt;stdio.h&lt;/b&gt; 에 정의되어 있는&amp;nbsp;&lt;b&gt;함수임.&lt;/b&gt; 콘솔창에 정해진 포맷대로 문자열을 출력함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25.1162%; text-align: center; height: 20px;&quot;&gt;&lt;b&gt;return 0;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75.9303%; text-align: center; height: 20px;&quot;&gt;return; 은 &lt;b&gt;함수의 끝&lt;/b&gt;을 의미함. 프로그램의 시작점인 &lt;b&gt;main이 return&lt;/b&gt;한다는 것은 곧 &lt;b&gt;프로그램의 종료&lt;/b&gt;를 의미하는 것.&lt;br /&gt;return 0;이라 하면 이 함수는 0을 돌려주면서(말그대로 return) 종료하게 되는데, 우리는 이걸 유식하게 &lt;b&gt;함수의 &lt;/b&gt;&lt;b&gt;반환&lt;/b&gt;이라고 부른다.&lt;br /&gt;main이 0을 리턴한다면 그것은 프로그램이 에러 없이 정상적으로 종료됐다는 의미.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 C언어에서 명령줄 한 줄이 끝나면 반드시 ; (세미콜론)을 붙여줘야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴파일러에게 '이 줄은 여기까지가 끝이야'라고 알려주는 것, 그렇지 않으면 오류가 발생하게 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>HelloWorld</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/4</guid>
      <comments>https://deepprogramming.tistory.com/4#entry4comment</comments>
      <pubDate>Fri, 4 Jun 2021 23:12:12 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 0강 - C언어 시작하기 (Visual Studio 설치)</title>
      <link>https://deepprogramming.tistory.com/3</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;(1) Visual Studio 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Visual Studio는 C/C++ 개발을 하는데 아주 좋은 도구이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_1.png&quot; data-origin-width=&quot;1010&quot; data-origin-height=&quot;209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0pnMg/btq6udAqZuC/EyIC2S4GHSTpag88fBuTKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0pnMg/btq6udAqZuC/EyIC2S4GHSTpag88fBuTKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0pnMg/btq6udAqZuC/EyIC2S4GHSTpag88fBuTKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0pnMg%2Fbtq6udAqZuC%2FEyIC2S4GHSTpag88fBuTKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1010&quot; height=&quot;209&quot; data-filename=&quot;images_1.png&quot; data-origin-width=&quot;1010&quot; data-origin-height=&quot;209&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cME5sl/btq6u2ea1OE/0wKXmx2JZtXn25Xbe7dZkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cME5sl/btq6u2ea1OE/0wKXmx2JZtXn25Xbe7dZkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cME5sl/btq6u2ea1OE/0wKXmx2JZtXn25Xbe7dZkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcME5sl%2Fbtq6u2ea1OE%2F0wKXmx2JZtXn25Xbe7dZkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1000&quot; height=&quot;350&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것이 넘나 귀찮다면 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;a style=&quot;color: #006dd7;&quot; href=&quot;https://visualstudio.microsoft.com/ko/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;여기&lt;/a&gt;&lt;/span&gt;로 가서 다운&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 다운로드 받은 파일을 실행하자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HIIJs/btq6uIG0BXY/C7MOr23rmHF1QxNYsds9f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HIIJs/btq6uIG0BXY/C7MOr23rmHF1QxNYsds9f1/img.png&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;420&quot; data-filename=&quot;images_3.png&quot; width=&quot;503&quot; height=&quot;293&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HIIJs/btq6uIG0BXY/C7MOr23rmHF1QxNYsds9f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHIIJs%2Fbtq6uIG0BXY%2FC7MOr23rmHF1QxNYsds9f1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJI2GZ/btq6uH9bhcP/LNLWxkR6KzKTyrfmeZleG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJI2GZ/btq6uH9bhcP/LNLWxkR6KzKTyrfmeZleG0/img.png&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;420&quot; data-filename=&quot;images_4.png&quot; width=&quot;477&quot; height=&quot;278&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJI2GZ/btq6uH9bhcP/LNLWxkR6KzKTyrfmeZleG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJI2GZ%2Fbtq6uH9bhcP%2FLNLWxkR6KzKTyrfmeZleG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'계속' 누르기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스톨러 설치가 완료되면 이제 저기 보이는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;C++을 사용한 데스크톱 개발 &lt;/b&gt;워크로드를 선택하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;images_5.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1034&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D6dbq/btq6u26jDuM/xUydQUxiD3xCKi1womNIyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D6dbq/btq6u26jDuM/xUydQUxiD3xCKi1womNIyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D6dbq/btq6u26jDuM/xUydQUxiD3xCKi1womNIyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD6dbq%2Fbtq6u26jDuM%2FxUydQUxiD3xCKi1womNIyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1034&quot; data-filename=&quot;images_5.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1034&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++은 C의 하위 호환이라 할 수 있기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++ 개발 도구를 설치해서 C를 사용할 수 있다.&lt;/p&gt;</description>
      <category>Programming/C &amp;amp; C++</category>
      <category>C++</category>
      <category>C언어</category>
      <category>visualstudio</category>
      <category>설치</category>
      <author>mdisprgm</author>
      <guid isPermaLink="true">https://deepprogramming.tistory.com/3</guid>
      <comments>https://deepprogramming.tistory.com/3#entry3comment</comments>
      <pubDate>Fri, 4 Jun 2021 15:29:12 +0900</pubDate>
    </item>
  </channel>
</rss>