#include #include int main() { printf("%u\n", sizeof(_Bool)); // 1 byte _Bool b1; b1 = 0; // false b1 = 1; // true printf("%d\n", b1); bool b2, b3; b2 = true; b3 = false; printf("%d %d\n", b2, b3) return 0; } 고전적인 C types엔 Boolean Types이 없었다. 최근에 불타입이 추가되면서 대문자 B를 사용하는 '_Bool'을 사용 할 수 있게 됐다. 불리언형은 false, true 두가지 결과만 있다. 내부적으론 정수형이기 때문에 0과 1로 표시된다. 0은 false, 1은 true이다. 2가지 값만 있는만큼 크기도 가장 작은 사이즈인..
프로그래밍언어/C언어
ASCII Chart 컴퓨터는 문자도 tntwk로 바꿔서 처리하기 때문에 문자도 정수형처럼 취급하는데 이때 문자형을 숫자로 대응시키는 규칙을 ASCII Chart이다. #include int main() { char c = 'A'; char d = 65; // d ='A' printf("c %hhd\n", c, c); printf("c %hhd\n", d, d); printf("%c \n", c + 1); char a = '\a'; printf("%c", a); return 0; } c 65 c 65 B char a = '\a'; printf("%c", a); printf("\07"); // \a는 숫자 7에 대응하고, 07은 8진수로 7이다. printf("\x7"); // 16진수로 7은 x7 flo..
각 자료형의 최소크기만을 규정짓고 있기 때문에 어떤 경우에는 여러 시스템에서 자료형의 크기가 모두 다를 수 있다. 즉 한 시스템에서 만든 코드가 다른 시스템에서는 잘 작동하지 않을 수 있다. 이식성이 높지 않다는 뜻이다. 이럴때 변수, 자료형의 자료형을 명확하게 고정 할 수 있도록 사용하는게 고정 너비 정수형이다. #include // #include // also included in inttypes.h #include int main() { int i; int32_t i32;// 32 bit integer / 사이즈를 명확하게 정의 int_least8_t i8;// smallest 8 bit / 최소 크기 지정 int_fast8_t f8;// fastest minimum / 크기 중 가장 빠른 것 i..
10진수 Decimal Numbers 2진수 Binary Numbers 8진수 Octal Numbers 16진수 Hexadecimal Numbers 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 16진수의 경우는 0~9 뒤에 A~F를 빌려서 16개를 사용한다. 의외로 16진수는 색상표 같은곳 등등에서 은근히 자주 만나 볼 수 있다. #include int main() { unsigned int decimal = 4..
정수 자료형 최소 크기(Byte) 값의 범위 형식 지정자 (Format Specififer) signed char 1 -128 ~ 127 hhu 또는 c(문자) unsigned char 1 0 ~ 255 hhu 또는 c(문자) signed short int 2 -32,768 ~ 32,767 hd unsigned short int 2 0 ~ 65,535 hd signed int 또는 signed int 2 또는 4 -32,768 ~ 32,767 or -2,147,483,648 ~ 2,147,483,647 d 또는 i unsigned int 2 또는 4 0 ~ 65,535 or 0 ~ 4,294,967,295 u long int 4 -2,147,483,648 ~ 2,147,483,647 ld unsigned..
sizeof() unsigned int i = 0; printf("%u\n", sizeof(unsigned int)); printf("%u", sizeof(i)); 자료형의 크기를 알아보는 연산자로 사용하는 형식은 함수하고 비슷하다. sizeof(자료형 or 변수) VS(통합개발환경)에서는 sizeof(unsigned int);라고 입력하고 마우스를 가져가면 크기를 알려주지만 컴파일러를 통해 알고 싶으면 printf함수를 사용해야한다. 이 때 printf함수에 형식 지정자를 선택 할 때, 우변에 나오는 자료형과 맞춰줘야 한다.(unsigned int의 형식 지정자는 unsigned의 약자인 u) 다른 형식 지정자를 사용하면 범위에 벗어난 값을 요구하는 경우 오류가 난다. 범위에 포함되는 값은 오류가 나지..
정수(integers) * 음의 정수(..., -3, -2, -1), 0, 양의정수(1,2,3, ...) * 2, -15, 3697 등등 * 사람들은 10진수로 사용하지만 컴퓨터는 내부적으로 2진수 사용 * 8비트(32비트) 부호 없는(Unsigned) 정수 / 8비트(32비트) 부호 있는(signed) 정수 int형이 32비트 signed 정수 부호가 있는 정수는 앞에 한 칸을 부호 표시로 사용. 맨 앞칸에 0이 들어가면 양수, 1이 들어가면 음수. 음수를 표현 할 때 2의 보수 표현법을 사용. 부호 있는 정수와 부호 없는 정수의 범위가 다르다. (부호 표현을 위해 맨 앞 비트를 사용하기 때문이다) 실수(Real numbers) * 정수들 사이의 값들 : 2.0, 3.16, 2.74, 0.123 등..
숫자 2개의 입력을 받고 2개를 더한 값을 출력하는 프로그램 사용하는 함수 - scanf(), printf() /* 홍정모의 따라하며 배우는 C언어 간단한 입출력 프로그램 만들기 */ #include int main() { int i = 0, j = 0, sum = 0; // 변수는 무조건 초기화하는것을 권장 printf("Input two integers\n"); scanf("%d%d", &i, &j); sum = i + j; printf("Your numbers are %d and %d\n", i, j); printf("%d \+ %d = %d\n", i, j, sum); return 0; } 원을 입력 받으면 달러로 변환해서 출력하는 프로그램 사용하는 함수 - scanf(), printf() /* ..
scanf() 함수 - 콘솔창으로부터 사용자의 입력을 받아오는 함수 #include int main() { int i = 0; scanf("%d", &i); // & : ampersand printf("Value is %d\n", i); return 0; } * 콘솔창에 아무숫자나 입력하면 printf()함수가 출력해준다. * f : formatted의 약자로 형식을 맞춰 나타낸다는 뜻 * 포매팅(formating) : %~, ~ 부분에 뭐가 들어가는지 형식을 지정해주는 것. "%d" : scanf 함수에서는 입력을 어떻게 받을지, printf함수에서는 출력을 어떻게 할지 formating 해주고 있다.입력과 출력을 d(decimal, 10진수)로 받겠다고 포매팅해주고 있다. * &(ampersand) ..
- 변하는 값인 변수(Variable). 변하지 않는 값인 상수(Constants). - 변수와 리터럴상수 자료형 변수(variable) = 리터럴상수;(literal constant) int angel = 1004; 변수는 어떤 값이 저장 될 수 있는 메모리 공간을 의미한다. 메모리 공간에 담기는 값의 바뀌면 변수의 값도 바뀐다. 반면에 리터럴상수는 문자 그대로의 의미를 갖고 값의 바뀔 수 없다. - 기호적상수와 리터럴상수 한정자(제한자, Qualifier) 자료형 기호적상수(Symbolic constant) = 리터럴상수(literal constant); const int angel = 1004; 자료형과 const라는 키워드를 함께 사용하면 변수의 값을 바꿀 수 없다. 값을 못 바꾸는 변수는..