반응형

전체 글 40

20. bool 자료형

C 언어는 bool 자료형이 없었다. 그래서 typedef enum {false, true} bool; 이렇게 정의해서 쓰거나 #define FALSE 0 #define TRUE 1 이렇게 정의 해서 썼다고 한다. 시간이 흘러 C++이 나왔고 C++에서는 bool 자료형과 true, false 값을 지원하였다. 그리고 결국 C 언어에서도 불 자료형의 필요성에 계속 제기되면서 C99표준부터는 stdbool.h 헤더파일이 추가되었고, 여기에서 bool 변수가 추가 되었다. // // stdbool.h // // Copyright (c) Microsoft Corporation. All rights reserved. // // The C Standard Library header. // #ifndef _STDB..

C언어(2020년) 2020.11.03

19. 연산자

1. ( ) 연산자 int a = 10; int b = 2; int c = 1; int d = a * (b+c); ( ) 연산자는 연산자 우선순위가 가장 높으므로 b+c 가 먼저 연산 된 후에 a 와 곱해지게 된다. 2. [ ] 연산자 int a[3] = { 0,1,2 }; int b = a[0] + a[1] + a[2]; 배열을 사용할 때 [ ] 연산자가 + 연산자 보다 우선된다는 의미이다. 3. -> . 연산자 새로운 자료형인 구조체를 만든다고 하면 struct A { int a; int b; }; 이와 같이 정의 할 수 있다. 이것은 A 라는 자료형을 새로 만들었다는 의미인데, 그 A 라는 자료형은 int a, int b 를 가지고 있기 때문에 sizeof(A) 로 자료형의 크기를 알아보면 8 바이..

C언어(2020년) 2020.11.03

18. 연산자 우선순위

연산자의 대해 먼저 하나씩 알아본 후에 연산자 우선순위를 다루어야 할까 고민도 했지만, 먼저 전체를 보여주고, 각각의 연산자에 대해 하나씩 알아가 보는것도 좋겠다 싶어서 먼저 연산자의 우선순위 를 언급하고자 한다. 연산자 우선순위란? int a = 10; int b = 20; int c = 30; int total = a + b + c; 가감 연산자 + 의 우선순위는 대입연산자 = 의 우선순위 보다 먼저라는 것이다. 또한 + 연산자와 = 연산자는 오른쪽에서 왼쪽으로 결합된다. int total = a + b + c; int total = a +50; int total = 60; 이렇게 처리 된다는 것이다. + 먼저 처리하고, = 을 처리 한다는 뜻이고, 오른쪽에서 왼쪽으로 결합된다는 뜻이다. 다른 예제를..

C언어(2020년) 2020.11.03

17. 포인터

#include int main() { int* pointer = 0; printf("%d\n", sizeof(pointer)); printf("%d\n", sizeof(int*)); } 포인터 변수를 선언할 때에는 (자료형) * (포인트변수명); 이렇게 선언되어진다. int* pointer; int * pointer; int *pointer; 모두 같은 의미 이다. sizeof() 함수는 크기를 byte 단위로 반환해주는 함수이다. Visual Studio 상단메뉴에서 x86 으로 설정한 후 실행하면 sizeof(pointer) 나 sizeof(int*) 의 값은 4가 된다. 4byte 를 의미한다. x64 로 설정후에 실행하면 sizeof(pointer) 나 sizeof(int*) 의 값은 8이 된다..

C언어(2020년) 2020.11.03

16. RAM 에 대한 고찰

메모리 카드를 RAM 이라고 하는데, RAM 은 Random Access Memory 의 약자이다. 임의 접근 기억 장치 라는 뜻인데, 만약 내 컴퓨터에 RAM 용량이 8Gbyte 라고 해보자. char 는 1byte, int 는 4byte 라고 알고 있는데, 과연 8GByte 는 어느정도일까? 1 bit (1비트) : 1개의 진공관 또는 트렌지스터를 의미함 1개의 전구라고 생각하면 됨. 1 Byte (1바이트) : 8 bit 를 의미함 1 KByte (1킬로바이트) : 1024 Byte를 의미함 1 MByte (1메가바이트) : 1024 KByte를 의미함 1 GByte (1기가바이트) : 1024 MByte를 의미함 1 TByte (1테라바이트) : 1024 GByte를 의미함 우리는 1000 미터를..

C언어(2020년) 2020.11.03

15. 주석

주석은 코드를 설명하기 위해서 필요하다. 주석처리가 되어 있으면, 컴파일러는 주석을 처리하지 않는다. #include int main() { // 배열 공부중... int numArr[10] = { }; for (int i = 0; i < 10; ++i) printf("%d\n", numArr[i]); return 0; } 위와 같은 코드에서 // 라고 주석을 처리해 놓은 줄은 컴파일 되지 않는다. 주석의 종류는 2가지가 있는데 하나는 // 이고 하나는 /* */ 이다. // 은 이 주석기호 이후에 나오는 그 줄을 모두 주석처리 하는것이라면, /* */ 은 /* 주석기호와 */ 주석기호 사이의 내용을 모두 주석처리 하는 것이라고 볼 수 있다. #include int main() { // 배열 공부중.....

C언어(2020년) 2020.11.03

14. 배열

배열은 변수 이름 뒤에 [ ](대괄호)를 붙인 뒤 크기를 설정한다. 그리고 배열을 선언하면서 값을 초기화할 때는 { } (중괄호)를 사용한다. 자료형 배열이름[크기]; 자료형 배열이름[크기] = {값,값,값}; // 크기가 3일경우 값이 3개, 크기가 n 일 경우 값도 n 개 #include int main() { int numArr[10] = { 0,1,2,3,4,5,6,7,8,9 }; printf("%d\n", numArr[0]); printf("%d\n", numArr[5]); printf("%d\n", numArr[9]); return 0; } int numArr[10] = { 0,1,2,3,4,5,6,7,8,9 }; (설명) 인트형 변수 numArr 의 배열 10개를 만들고, 그 내용을 각각 0..

C언어(2020년) 2020.11.02

13. for 문

그동안 if 문 if else 문 switch case 문 while 문 do while 문 등에 대하여 알아보았는데, 문법 설명없이 바로 예시로 설명했던 이유는 직관적으로 이해하기 쉽기 때문이였다. for 문은 알면 쉽지만, 처음에 이해하기가 조금 어려 울 수 있겠다는 생각이 들어서 먼저 문법을 설명하려고 한다. for( 초기화식 ; 조건식 ; 증감식 ) { 처리내용 } 위와 같이 for 문을 사용하는데 (초기화식, 조건식, 증감식 사이에 ; (세미콜론) 이 있음에 주의) 1) 초기화식 2) 조건식 (여기에서 조건이 거짓이면 블럭을 벗어난다) 3) 처리내용 4) 증감식 의 순으로 실행이 된다. (처리내용이 먼저이고, 증감식이 나중임에 주의) 그런 후에 다시 1) 조건식 (여기에서 조건이 거짓이면 블럭을..

C언어(2020년) 2020.11.02
반응형