1. for, while, if 문으로 별찍기

 1.1 중첩 루프 사용하기

for ( 초기식 i ; 조건식 i ; 변화식 i ) {

for ( 초기식 j ; 조건식 j ; 변화식 j ) {

가로 처리 코드

}        // 가로 처리 코드

코드

}        // 세로 처리 코드


for ( int i = 0 ; i < 5 ; i++ ) {

for ( int j = 0 ; j < 5 ; j++) {

printf( " j : %d ", j );

}

printf( " i : %d ", i );

printf( " \n " );

}


 j : 0  j : 1  j : 2  j : 3  j : 4  i : 0

 j : 0  j : 1  j : 2  j : 3  j : 4  i : 1

 j : 0  j : 1  j : 2  j : 3  j : 4  i : 2

 j : 0  j : 1  j : 2  j : 3  j : 4  i : 3

 j : 0  j : 1  j : 2  j : 3  j : 4  i : 4


2. 계단식으로 별 출력하기

 2.1 사각형으로 별 출력

for ( int i = 0 ; i < 5 ; i ++) {

for ( int j = 0 ; j < 5 ; j++ ){

printf ( "*" );

}

printf("\n");

}


 2.2 출력되지 않아야 할 별 제거

for ( int i = 0 ; i < 5 ; i++) {

for ( int j = 0 ; j < 5 ; j++ ) {

if ( 조건식 ) {

printf("*");

}

}

printf("\n");

}

  * 기본 사각형 출력에 필요없는 부분을 조건문을 통해 필요한 부분만 출력한다.


1번

*

**

***

****

*****



for ( int i = 0 ; i < 5 ; i ++ ) {

for ( int j = 0 ; j < 5 ; j ++) {

if ( j <= i ) {

printf("*");

}

}

printf("\n");

}

for (int i = 1 ; i <= 5 ; i++) {

for (int j = 1; j <= i; j++) {

printf("*") ;

}

printf("\n") ;

}




 

2번 *

    *

   **

  ***

 ****

*****


i와 j 둘다 증가식인 경우를 생각하기



3번

*****

****

***

**

*



for ( int i = 0; i < 5; i++ ) {

for ( int j = 0; j < 5; j++ ) {

if ( j >= i ) {

printf("*");

}

}

printf("\n");

}

 for ( int i = 1 ; i < 5 ; i++ ) {

for (int j = 5 ; j >= i ; j-- ) {

printf("*") ; 

}

printf("\n") ;

}


4번

*****

 ****

  ***

   **

    *


for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

if ( j >= i ) {

printf("*");

}

else {

printf(" ");

}

}

printf("\n");

}


5번

    *

   ***

  *****

 *******

*********


for ( int i = 0 ; i < 5 ; i++) {

for ( int j = 5 ; j > i ; j-- ) {

printf( " " );

}

for ( int j = 1 ; j <= 2 * i - 1 ; j++ ) {

printf("*");

}

printf("\n");

}


3. 대각선으로 별 출력하기


4. 역삼각형 모양으로 별 출력하기


5. 산 모양으로 별 출력하기



'Basic > C' 카테고리의 다른 글

07. C언어 기초 보기7  (0) 2016.08.30
06. C언어 기초 보기6  (0) 2016.08.30
05. C언어 기초 보기5  (0) 2016.08.30
04. C언어 기초 보기4  (0) 2016.08.29
03. C언어 기초 보기3  (0) 2016.08.29

12. switch문

  - switch

switch ( 조건 ) {

case 1:


break;

case 2:


break;

case 3:


break;

default:


break;

}


 - break 없는 조건문

int num1;


scanf("%d", &num1);    // 값을 입력받음

  // switch의 case에서 break 삭제

switch (num1) {

case 1:                // 1일 때는 아래 case 2, default가 모두 실행됨

printf("1입니다.\n");

case 2:                // 2일 때는 아래 default까지 실행됨

printf("2입니다.\n");

default:

printf("default\n");

}


 - break 사용한 조건문

int num1;


scanf("%d", &num1);    // 값을 입력받음


switch (num1) {

case 1:        // 1 또는

case 2:    // 2일 때 코드 실행

printf("1 또는 2입니다.\n");

break;

case 3:    // 3 또는

case 4:    // 4일 때 코드 실행

printf("3 또는 4입니다.\n");

break;

default:

printf("default\n");

}


 - switch 조건식에서 판별할 수 있는 자료형


char c1;


scanf("%c", &c1);     // 값을 입력받음


switch (c1) {  // c1의 값에 따라 분기

case 'a':    // 문자 a일 때

printf("a입니다.\n");

break;

case 'b':    // 문자 b일 때

printf("b입니다.\n");

break;

default:    // 아무 case에도 해당되지 않을 때

printf("default\n");

break;

}




 13. for문

 - for 문 기본

for ( 초기식 ; 조건식 ; 변화식 ) {

코드


 - for 문 사용하기

//        ↓ 반복에 사용할 변수 i를 선언하고 0으로 초기화

for (int i = 0; i < 100; i++) {

        //             ↑      ↖  한 번 반복할 때마다 i를 1씩 증가시킴

// i가 100보다 작을 때까지만 반복

printf("Hello, world!\n");

}


 - for 문의 다양한 사용법

int count ;

scanf ( "%d", &count ) ;


for ( ; count > 0 ; count-- ) {

printf ("Hello, world! %d\n", count ) ;

}


for (scanf( "%d", &count ); count > 0 ; count-- ) 


for ( int i = 0, j = 0 ; i < 10 ; i++, j+=2 ) {

printf( "i: %d, j: %d", i, j ) ;

}


for ( ; ; ) {

printf( "hi" ) ;

}




14. while 문

  - while 문 기본

초기식

while ( 조건식 ) { // <- 루프 선언문 (loop statement)

반복할 코드

( 조건식, 값 지정 ) 

변화식

}

// 루프 본체 (loop body)


// 초기식

int i = 0 ;

while ( i < 100 ){

   // 조건식

printf( " Hello, world" ) ;

i++;

// 변화식

}


#include <stdio.h>

#include <stdlib.h> // srand, rand 함수가 선언된 헤더 파일

#include <time.h> /./ time 함수가 선언된 헤더 파일


int main() {

srand( time ( NULL ) ); // 현재 시간값으로 시드 설정 ( 랜덤 값 ) 


int i = 0;

while ( i != 3 ) {        // i 가 3이 아닐 때 계속 반복 ( false가 루프 종료 ) 

i = rand() % 10 ;    // rand 함수를 사용하여 무작위로 정수를 생성한 뒤

printf( "%d", i ) ;

}


 - while문 무한 루프

while (1){                // while에 1을 지정하면 무한 루프

printf( " Hello, world! " );

}


#include <stdio.h>

#include <stdbool.h>    // bool, true, false가 정의된 헤더 파일


void main ( ) {

while ( true ) {        // while에 true를 지정하면 무한 루프

printf ( " ㅋ " );

}

}



15. do while 반복문 사용하기


 - do while 문 기본 형태


int i = 0 ;


do {

printf ( "Hello, world! \n " ) ;

i++ ;

} while ( i < 100 ) ;


 - do while 문 입력 받은 값만큼 반복


int count ;


scanf ("%d", &count );


do {

printf ( " %d  " , count) ;

count--;

} while ( count > 0 );


 - 무작위 생성된 값에 따라 반복

#include < stdio.h >

#include < stdlib.h >

#include < time.h >


srand( time ( NULL ) );


int i = 0 ;

do {

i = rand ( ) % 10 ;

printf ("%d", i );

} while ( i != 3 ) ;


 - do while 무한 루프

do {

printf ( " z " ) ;

} while ( 1 ) ;        // while에 1을 지정하면 무한 루프


 - do while 한번만 출력


do {

printf ( " z " ) ;

} while ( 0 ) ;            // while에 0을 지정하면 한번만 실행



 16. break, continue로 반복문 제어하기

  -  

'Basic > C' 카테고리의 다른 글

08. C언어 기초 보기 연습문제  (0) 2016.08.30
06. C언어 기초 보기6  (0) 2016.08.30
05. C언어 기초 보기5  (0) 2016.08.30
04. C언어 기초 보기4  (0) 2016.08.29
03. C언어 기초 보기3  (0) 2016.08.29

11. bool 자료형 사용하기

 - boolean

  * #include <stdbool.h>

bool b1 = true;

if ( b1 == true )

printf ( 참 ) ;

else

printf( 거짓 ) ;


 - bool 자료형의 크기

printf(" bool의 크기 : %d", sizeof(bool));


 - bool 자료형과 논리 연산자

 - true, false를 문자열로 출력

 - if 조건문에서 bool 자료형 사용




핵심 정리

 1. 비교 연산자

 2. 삼항 연산자

  - 조건식 ? 값1 (true) : 값2 (false) ;

 3. 논리 연산자

 4. bool 연산자




12. 비트 연산자

연산자설명
&비트 AND
|비트 OR
^비트 XOR (배타적 OR, Exclusive OR)
~비트 NOT
<<비트를 왼쪽으로 시프트
>>비트를 오른쪽으로 시프트
&=비트 AND 연산 후 할당
|=비트 OR 연산 후 할당
^=비트 XOR 연산 후 할당
<<=비트를 왼쪽으로 시프트한 후 할당
>>=비트를 오른쪽으로 시프트한 후 할당


 - 부호 있는 자료형의 비트 연산

  1000 0000 ( -128 )

                 >> 2

---------------------

  1110 0000 ( - 32 )


 - 연산자 우선순위

우선순위연산자설명결합 법칙(방향)
1




x++
x--
()
[]
->
증가 연산자(뒤, 후위)
감소 연산자(뒤, 후위)
함수 호출
배열 첨자
포인터로 요소 선택





2









++x
--x
+x
-x
!
~
(자료형)
*x
&x
sizeof
증가 연산자(앞, 전위)
감소 연산자(앞, 전위)
단항 덧셈(양의 부호)
단항 뺄셈(음의 부호)
논리 NOT
비트 NOT
자료형 캐스팅
포인터 x 역참조
x의 주소
자료형의 크기










3


*
/
%
곱셈
나눗셈
나머지



4

+
-
덧셈
뺄셈


5

<< 
>> 
비트를 왼쪽으로 시프트
비트를 오른쪽으로 시프트


6




<=

>=
작음
작거나 같음

크거나 같음




7

==
!=
같음
다름


8&비트 AND
9^비트 XOR
10|비트 OR
11 &&논리 AND
12||논리 OR
13? :삼항 연산자
14










=
+=
-=
*=
/=
%=
<<=
>>=
&=
^=
|=
할당
덧셈 후 할당
뺄셈 후 할당
곱셈 후 할당
나눗셈 후 할당
나머지 연산 후 할당
비트를 왼쪽으로 시프트한 후 할당
비트를 오른쪽으로 시프트한 후 할당
비트 AND 연산 후 할당
비트 XOR 연산 후 할당
비트 OR 연산 후 할당












15,쉼표(콤마) 연산자

  

 - 비트 XOR 연산자를 이용한 암호화

 int plane = 100;

 int key = 57;

 

 int encrypted = plane ^ key ;

 printf("%d", encrypted) ;                 // 93

 

 int decrypted = encrypted ^ key ;    // 복호화

 printf("%d", decrypted );                // 100 : 평문 plane과 같음


 - 두 변수의 값을 바꾸는 코드

int a = 10 ;

int b = 20 ;

int temp ;


temp = a ;

a = b ;

b = temp ;


printf ( "%d", a ) ;

printf ( "%d", b ) ;

  

 * 임시 변수 없이 비트 XOR 연산자를 세번 사용하여 두 변수의 값을 바꾸는 방법

int a = 10;    // 0000 1010

int b = 20;    // 0001 0100


a = a ^ b;

// 0000 1010

// 0001 0100 XOR

// ----------

// 0001 1110 = > 24


b = a ^ b;  

// 0001 1110

// 0001 0100  XOR

// ----------

// 0000 1010 => 10

a = a ^ b;

// 0001 1110

// 0000 1010 XOR

// ---------

// 0001 0100 = > 20


printf("%d\n", a);

printf("%d\n", b);



'Basic > C' 카테고리의 다른 글

08. C언어 기초 보기 연습문제  (0) 2016.08.30
07. C언어 기초 보기7  (0) 2016.08.30
05. C언어 기초 보기5  (0) 2016.08.30
04. C언어 기초 보기4  (0) 2016.08.29
03. C언어 기초 보기3  (0) 2016.08.29

9. if문

 - if ()

if ( 조건문 )

printf( " ㄱㄱ " );


 - if else

if ( 조건문 )

printf( " ㄱ ㄱ " );

else

printf( " ㅋ ㅋ " );


 - if ( ) { }

if ( 조건문 ) {

printf( " ㄱ ㄱ " );

printf( " ㅋ ㅋ " );

}


 - if ( ) { } else { }

if ( 조건문 ) {

printf( " 코드 1 " );

:

:

} else {

printf( " 코드 2 " );

:

:

}


 - if 조건문의 동작 방식

if ( 2 ) {

printf( 참 );

} else {

printf( 거짓 );

}

  * 조건문이 0이 아닌 양수와 음수를 넣었을 경우 무조건 참이다.


 - else if

if ( ) {

printf( 1 );

} else if ( ) {

printf( 2 );

} else if ( ) {

printf( 3 );

} else {

printf( 그 외 );

}




 10. 비교 연산자와 삼항 연산자

  - 비교 연산자

int num1 = 10;

printf("%d", num1 == 10);

printf("%d", num1 != 5);

printf("%d", num1 > 10);

printf("%d", num1 < 10);

printf("%d", num1 >= 10);

printf("%d", num1 <= 10);


 - 삼항 연산자

 *             변수             ?         값1             :         값2

   참/거짓을 판단할 변수  ? 참일 때 사용할 값  :  거짓일 때 사용할 값 

int num1 = 5;

int num2;


if ( num1 )

num2 = 100;

else

num2 = 200;


printf("%d", num2);



 - 조건식과 삼항 연산자

 * num1 == 10                         ? 100                     : 200;

   비교할 값이나 변수 ( 조건식 )    ? 참일 때 사용할 값  : 거짓일 때 사용할 값


 - if 조건문과 비교 연산자

if ( num1 == 10 )

printf ( " 10 입니다 " );

if ( num1 != 5 )

printf ( " 5가 아닙니다 " );

if ( num1 > 10 )

printf( " 10 보다 큽니다.. " );

if ( num1 < 10 )

printf ( " 10보다 작습니다. " );

if ( num1 >= 10 )

printf ( " 10보다 크거나 같습니다. " );

if ( num1 <= 10 )

printf ( " 10보다 작거나 같습니다. " );


float num1 = 0.1f;

char c1 = 'a';


if ( num1 >= 0.09f )

printf (" 0.09보다 크거나 같습니다. " );

if ( c1 == 'a' )

printf (" a 입니다 ");

if ( c1 == 97 )

printf(" 97 입니다. ");

if ( c1 < 'b' )

printf(" b 보다 작습니다 ");


 - 삼항 연산자

 int num1 = 5;

printf("%s", num1 == 10 ? " 10 입니다. " : " 10이 아닙니다. " );


 - 논리 연산자

 &&    AND ( 논리곱 )

  ||       OR ( 논리합 )

  !        NOT ( 논리 부정 )



'Basic > C' 카테고리의 다른 글

07. C언어 기초 보기7  (0) 2016.08.30
06. C언어 기초 보기6  (0) 2016.08.30
04. C언어 기초 보기4  (0) 2016.08.29
03. C언어 기초 보기3  (0) 2016.08.29
02. C언어 기초 보기 2  (2) 2016.08.29

7. 문자 변수 char

 - 10 진수

char c1 = 'a';

printf("%c, %d \n", c1, c1);  // a, 97 : a의 ASCII 코드값은 97

  * %c : character


 - 16 진수

char c1 = 0x61;

printf("%c, %d, 0x%x", c1, c1, c1); // a, 97, 0x61

  * %x : 16진수(hexadecimal)


 - 문자로 연산하기

printf("%c %d", 97 + 1, 91 + 1); // b 98: ASCII 코드값 97에 1을 더하여 98




8.  상수 사용하기

 - 상수 ( constant )

const    int    con1 = 10;

const 자료형 변수 = 리터럴;

  * 리터럴(literal) : "문자 그대로" 라는 뜻으로 C 언어에서는 값 그 자체를 뜻한다.


 - 리터럴 사용하기

printf("%d", 10);    // 10            : 정수 리터럴

printf("%f", 0.1f);    // 0.100000   : 실수 리터럴

printf("%c", 'a');     // a              : 문자 리터럴

printf("%s", "Hello world!"); // Hello, world! : 문자열 리터럴


 - 정수 리터럴 표기 방법

printf("%d", 19);            // 19    :    10진 정수 리터럴

printf("0%o", 017);        // 017   :     8진 정수 리터럴

printf("0x%x", 0x1F);        // 0x1F :    16진 정수 리터럴

  * 10 진수는 숫자 그대로 표기        

     8진수 숫자 앞에는 0을 붙임        0%o (octal number)

     16진수는 0x를 붙인다.               0x%x


 - 실수 리터럴 표기 방법

printf("%f", 0.1f);        0.100000 : 실수 리터럴 수소점 표기

printf("%f", 0.1F);        0.100000 : 실수 리터럴 소수점 표기

printf("%f", 1.0e-5f);    0.000010 : 실수 리터럴 지수 표기법

printf("%f", 1.0E-5F);    0.000010 : 실수 리터럴 지수 표기법


 - 상수 사용하기

const int con1 = 1 ;

const float con2 = 0.1f;

const char con3 = 'a';

printf("%d %f %c", con1, con2, con3);

  * 상수 선언 시

   : const 자료형 변수명 = 값(리터럴);

   : 자료형 const 변수명 = 값;




 9. 입력 값을 변수에 저장하기

  - 정수 입력받기

  - scanf(서식, 변수의주소);

int num1;

scanf("%d", &num1);

printf("%d", num1);


int num1, num2;

scanf("%d %d", &num1, &num2);

printf("%d %d", num1, num2);


  - 실수 입력받기

float num1;

scanf("%f", &num1);

printf("%f", num1);


double num1;

scanf ("%lf", &num1);


long double num2;

scanf("%Lf", &num2);


  - 문자 입력받기

char c1;

scanf("%c", &c1);

printf("%c", c1);


char c1 = getchar();

printf("%c", c1);


char c1 = 'a';

putchar(c1);




 핵심 정리

 1. 문자 표기하기

  - 'a'

 2. 문자 서식 지정자

  - printf("%c", 'a');

 3. 문자와 정수

  - 문자, 숫자, 제어 문자는 0부터 255까지 정수에 대응되며 이 규칙을 ASCII 코드라 부른다.

 4. 자주 사용하는 제어 문자

10진수16진수문자표기법설명
100x0ALF\n개행, 라인 피드(Line Feed), 새 줄(newline), 줄바꿈
130x0DCR\r복귀, 캐리지 리턴(Carriage Return), 줄의 끝에서 시작 위치로 되돌아감
90x09TAB\t수평 탭(horizontal tab)


 5. 리터럴 상수와 상수

  - 리터럴 : 값 그 자체

  - 상수 : 리터럴이 저장된 공간


 6. 정수 리터럴 접미사

접미사자료형
생략int
l, Llong
u, Uunsigned int
ul, ULunsigned long
ll, LLlong long
ull, ULLunsigned long long


 7. 실수 리터럴 접미사

접미사자료형
f, Ffloat
생략double
l, Llong double


 8. 입력 값을 변수에 저장하기

  - scanf 함수를 사용, 변수 앞에는 &붙이기

  - %d

   : 정수

  - %f

   : 실수

  - %c

   : 문자


 9. 문자 입출력 함수

  - 문자 입력

   : char c1 = getchar();

  - 문자 출력

   : putchar(c1);


'Basic > C' 카테고리의 다른 글

06. C언어 기초 보기6  (0) 2016.08.30
05. C언어 기초 보기5  (0) 2016.08.30
03. C언어 기초 보기3  (0) 2016.08.29
02. C언어 기초 보기 2  (2) 2016.08.29
01. C 언어 기초 보기  (0) 2016.08.29

6. 문자 종류 판별하기

 : 현재 문자가 영문 알파벳인지 숫자인지 판별해야 할 경우


#include <stdio.h>

#include <ctype.h>


int main()

{

if (isspace('\t'))    // 스페이스, \f, \n, \r, \t, \v인지 검사

printf("공백입니다.\n");


if (isblank(' '))    // 스페이스, 탭 문자(\t)인지 검사

printf("공백입니다.\n");


if (isalpha('a'))    // 영문 알파벳인지 검사

printf("알파벳입니다.\n");


if (isupper('A'))    // 대문자인지 검사

printf("대문자입니다.\n");


if (islower('a'))    // 소문자인지 검사

printf("소문자입니다.\n");


if (isascii('~'))    // 7비트 ASCII 문자인지 검사

printf("ASCII 문자입니다.\n");


if (isdigit('9'))    // 숫자인지 검사

printf("숫자입니다.\n");


if (isxdigit('F'))    // 16진수 숫자인지 검사(0~9, a~f, A~F)

printf("16진수 숫자입니다.\n");


if (isalnum('a') && isalnum('1'))    // 영문 알파벳과 숫자인지 검사

printf("영문 알파벳과 숫자입니다.\n");


if (iscntrl('\n'))    // 제어문자인지 검사

printf("제어문자입니다.\n");


if (isgraph('a'))    // 화면에 출력할 수 있는지 검사(스페이스 제외)

printf("화면에 출력할 수 있습니다.\n");


if (isprint(' '))    // 화면에 출력할 수 있는지 검사(스페이스 포함)

printf("화면에 출력할 수 있습니다.\n");


if (ispunct('-'))    // 영문 알파벳, 숫자, 스페이스가 아닌 문자 중에서

// 화면에 출력할 수 있는지 검사

printf("화면에 출력할 수 있습니다.\n");


return 0;

}

'Basic > C' 카테고리의 다른 글

05. C언어 기초 보기5  (0) 2016.08.30
04. C언어 기초 보기4  (0) 2016.08.29
02. C언어 기초 보기 2  (2) 2016.08.29
01. C 언어 기초 보기  (0) 2016.08.29
참고 사이트  (0) 2016.06.18

5. 문자 자료형


  - char

   : 1바이트, 8비트

    * char에 문자를 저장할 때는 문자 자체를 저장하는 것이 아니라 문자에 해당하는 정숫값을 저장하게 된다.


  - 정수 10진수, 16진수와 문자 대응표(ASCII 코드)

   : 0x00 ( 0 ), Null : 널 문자

   : 0x0A ( 10 ), LF : 개행 (Line Feed), 줄바꿈

   : 0x0D ( 13 ), CR : 복귀 (Carriage Return)

   : 0x00 ~ 0x1F, 0x7F ( 0 ~ 31, 127 ) : 제어문자 또는 비인쇄 문자

   : 0x20 ( 32 ) : 스페이스 (공백)

   : 0x21 ~ 0x2F ( 33 ~ 47 ), 0x3A ~ 0x40 ( 58 ~ 64 ), 0x5B ~ 0x60 ( 91 ~ 96 ), 0x7B ~ 0x7E ( 123 ~ 126 ) : 특수문자 

   : 0x30 ~ 0x39 ( 48 ~ 57 ) : 0, 1, 3, 4, 5, 6, 7, 8, 9 숫자

   : 0x41 ~ 0x5A ( 65 ~ 90 ) : A 부터 Z까지 알파벳 대문자

   : 0x61 ~ 0x7A ( 97 ~ 122 ) : a 부터 z까지 알파벳 소문자


  - C언어 이스케이프 시퀀스

  \(백슬래시) 뒤에 문자나 숫자가 오는 조합을 이스케이프 시퀀스라고한다.

  제어 문자 표현 할 때 사용


'Basic > C' 카테고리의 다른 글

05. C언어 기초 보기5  (0) 2016.08.30
04. C언어 기초 보기4  (0) 2016.08.29
03. C언어 기초 보기3  (0) 2016.08.29
01. C 언어 기초 보기  (0) 2016.08.29
참고 사이트  (0) 2016.06.18

C Programming Language


 사전 지식

  1. .c 파일 만들기

  2. 프로젝트에 C 언어 소스 파일 추가하기

  3. Hello, World ! 출력 하기



목차

 1. Hello, World! 출력 하는 방법

 2. 변수

 3. 정수형 자료형

 4. 실수 자료형




 1. Hello, World! 출력 하는 방법

#include <stdio.h>

// 단순 출력

void main() {

printf("Hello, World! \n");

}


#include <stdio.h>

// 서식 지정자

void main() {

printf("%s\n", "Hello, World!");

}


#include <stdio.h>


void main() {

printf("Hello, %s\n", "World!");

}





 2. 변수


  - 변수를 "선언한다."

   : C언어의 문법은 무조건 위에서 아래로 해석(절차지향)되기 때문에 변수를 사용하려면

     사용하는 부분보다 위에 변수를 선언해줘야 한다.

     즉, 변수 선언이라는 말은 변수가 있다는 것을 알려준다는 뜻이다.

ex)

   int     num1;

자료형 변수이름;

 * 자료형, 변수명 규칙


  - "변수에 값을 할당한다."

   : 변수에 값을 저장하는 과정을 말한다.

     일반적으로 수학에서는 =가 같다는 뜻이지만, C 언어에서는 =를 값을 할당할 때 사용한다.

ex)

num1 = 10;

변수 이름 = 값;

printf("%d", num1);

 * %d는 10진수(decimal)를 출력할 때 사용하는 서식 지정자이다.


  - 변수의 선언 및 초기화(할당)

int num1 = 10, num2 = 20, num3 = 30;




 3. 정수형 자료형

  - signed

   : 부호 있는 정수를 표현 ( 보통 signed 생략 )


  - unsigned

   : 부호 없는 정수를 표현 ( 0 부터 시작 )


  - char                            %d(decimal), %c(character, 문자)

   : 1바이트, 8비트


  - short                           %d

   : 2바이트, 16비트


  - int                              %d

    : 4바이트, 32비트


  - long                           %ld

    : 4바이트, 32비트


  - long long                    %lld

   : 8바이트, 64비트


 * 언더플로우(underflow)와 오버플로우(overflow)

  : 각 자료형에 저장할 수 있는 최소 최대값을 벗어난 경우


 * sizeof

  : 자료형(타입)의 크기를 바이트(byte) 단위로 구하는 sizeof 연산자

 - sizeof(자료형)

 int size;

 size = sizeof(int);

 printf("%d", size);


 - sizeof(표현식)

 int num1 = 0;

 int size;

 size = sizeof(num1);

 printf("%d", size);



* 최대, 최솟값 표현

 - #include <limits.h>

  : 자료형의 최댓값과 최솟값이 정의된 헤더 파일

char num1 = CHAR_MIN;

shrot num2 = SHRT_MIN;

int num3 = INT_MAX;

long num4 = LONG_MAX;

long long num5 = LLONG_MAX;




 4. 실수 자료형

  - float                %f (floating point) 소수점 이하 자릿수 출력 기본값은 여섯 자리

   : 4바이트, 32비트


  - double             %f

   : 8바이트, 64비트


  - long                %f

   : 8바이트, 64비트

float num1 = 0.1f;

double num2 = 367.2123;

long double num3 = 9.12335l;


 * sizeof

float num1 = 0.0f;

double num2 = 0.0;

long double num3 = 0.0l;


printf("%d, %d, %d", sizeof(num1), sizeof(num2), sizeof(num3));


 * 최대, 최솟값 표현

 - #include <float.h>

  : 실수 자료형의 양수 최솟값, 최댓값이 정의된 헤더 파일

float num1 = FLT_MIN;

float num2 = FLT_MAX;

double num3 = DBL_MAX;

double num4 = DBL_MIN;

long double num5 = LDBL_MIN;

long double num6 = LDBL_MAX;


printf("%.5f %.2f", num1, num2);

printf("%e %e", num3, num4);

printf("%Le %Le", num5, num6);

* %.5f는 소숫점 5번째 이하 자릿수를 출력한다는 의미

* %e, %Le는 지수 표기법으로 출력

 ex) 2.225074e-308




정리


 1. 변수 선언

  - 자료형 변수이름 형식으로 선언 한다.


 2. 변수에 선언과 값 저장

  - int num1

  - num1 = 10;


 3. 변수 선언 및 초기화(값 저장)

  - int num1 = 10;


 4. 자료형 크기 구하기

sizeof(int); // 자료형 자체의 크기를 구할 때

int num1;

sizeof(num1); // ( )를 지정하는 방법

sizeof num1; // ( ) 없이 표현식으로 지정하는 방법


 5. 정수 자료형의 오버플로우와 언더플로우

   - signed 자료형의 오버플로우 발생 시 최솟값(음수)부터 다시 시작, 언더플로우가 발생하면 최댓값(양수)부터 점점 작아진다.

   - unsigned 오버플로우가 발생하면 0부터 다시 시작, 언더플로우가 발생하면 최댓값부터 점점 작아진다.


 6. limits.h에 정의된 정수 자료형의 최솟값과 최댓값

 7. stdint.h에 정의된 정수 자료형의 최솟값과 최댓값

 8. 지수 표기법

  - 2.1e+3: 2100

  - 2.1e-2: 0.021


 9. 지수 표기법과 부동소수점

  - 지수 표기법은 실수를 소스 코드에 표기하거나 화면에 출력하는 방법

  - 부동소수점은 실수를 메모리 또는 디스크에 저장하는 방식


 10. 실수 자료형의 오버플로우와 언더플로우

  - 실수 자료형은 오버플로우가 발생하면 inf(무한대)가 되며 언더플로우가 발생 시 0이 된다.


 11. float.h에 정의된 최솟값과 최댓값

 

 12. 숫자 서식 지정자


 - %d

 : 부호있는 정수

 - %ld

 : 부호있는 long 정수

 - %lld

 : 부호있는 long long 정수

 - %u

 : 부호 없는 정수

 - %lu

 : 부호 없는 long 정수

 - %llu

 : 부호 없는 long long 정수

 - %f

 : float, double형 실수

 - %Lf

 : long double형 실수

 - %e

 : float, double형 실수를 지수 표기법으로 출력

 - %Le

 : long double형 실수를 지수 표기법으로 출력


 


'Basic > C' 카테고리의 다른 글

05. C언어 기초 보기5  (0) 2016.08.30
04. C언어 기초 보기4  (0) 2016.08.29
03. C언어 기초 보기3  (0) 2016.08.29
02. C언어 기초 보기 2  (2) 2016.08.29
참고 사이트  (0) 2016.06.18

+ Recent posts