블로그 이미지
하루, 글. 그림. 영상매체. 표현을 도와주는 기기들. 도전 중. 동화다아아
    동화다아아

    카테고리

    분류 전체보기 (176)
    잡담 (1)
    IT 기기-리뷰&뉴스 (7)
    리뷰 - 도서 (1)
    리뷰 - 영상 (0)
    리뷰 - 그림/음악 (1)
    내장형 하드웨어 (163)
    Total
    Today
    Yesterday

    부가 연산자와 복합 부가 연산자.

    - C 언어에서 단순히 변수에 값을 부가할 때는 부가 연산자(=)를 사용한다.

    복합부가 연산

    부가 연산

    x += 5;

    x = x + 5;

    x -= 5;

    x = x - 5;

    x %= 5;

    x = x % 5;

    x *= 5;

    x = x * 5;


    캐스트(cast) 연산자 - 형 변환(type)

    ⇒  (자료형) 수식


    // 명시적 형 변환이 필요한 산술식의 계산 프로그램

    #include <stdio.h>

    int main()

    {

            int intA = 14, intB = 3;

            float floatC = 0;


            floatC = intA / intB; // 우선 int형으로 나눈 후 그 결과를 float 형으로 바꾸게 되므로 14/3의 결과인 4를 float 형으로 바꾼다. 따라서 결과는 4.000000가 된다.

            printf("%f\n", floatC);


            floatC = (float) intA / intB; // casting(float) 뒤에 오는 형(int A)를 float 형으로 바꾸어 준다. 따라서 14.0/3이 계산된다. 따라서 결과는 4.666667이 된다.

            printf("%f\n", floatC);  


            return 0;

    }


    - printf() 함수


    형식지정자

    %d

      출력 값을 부호가 있는 10진수 정수(decimal)로 바꾼다.

    %f

      출력 값을 실수형(float)으로 바꾼다.

    %c

      출력 값을 문자형(char)으로 바꾼다.

    %s

      출력 값을 문자열형(string)으로 바꾼다.

    %o

      출력 값을 8진수로 바꾼다.

    %x

      출력 값을 16진수로 바꾼다.



    - scanf() 함수

    ⇒ 키보드로 입력된 값을 형식지정자에 맞추어 주소연산자 다음에 오는 변수에 넣으라는 뜻을 가진다.

    - 주소 연산자(& - ampersand), scanf 함수 내에 변수 앞에 붙인다.(문자열 입력일 경우 제외)

    - scanf() 함수가 키보드로부터 입력 값을 받을 때는 사용자가 <엔터 키>를 누르기 전까지는 입력 값을 읽지 않는다. 이것은 프로그램과 키보드 사이에 일시적으로 입력 값을 저장하는 버퍼라고 부르는 임시 기억 공간이 있기 때문이다.

    - scanf() 함수가 여러 개의 입력 값을 동시에 읽는 경우에는 입력 값 사이에 ‘단락문자’를 넣어서 분리한다. 단락문자로는 위에서 사용된 공백문자, 개행문자, 탭문자 등을 사용할 수 있다.

    - scanf() 함수를 이용하면 읽는 문자의 개수를 정할 수 있다. 형식 지정자를 이용하여 %5s를 명시하면 scanf() 함수는 문자의 내용에 관계없이 5문자만 읽는다.


    - scanf() 함수와 printf() 함수에서 사용되는 형식 지정자 비교

    printf()

    scanf()

    형식

    %c

    %c

      단일 문자(1byte공간)

      (글자1개만 입력받는다.)

    %s

    %s

      문자

    %d

    %d

      부호 있는 정수

    %i

     

      부호 있는 정수

     

    %i

      10진수, 8진수, 16진수

    %f

    %f

      실수(십진표기)

    %c

    %e

      실수(과학적 표기법)

    %g

     

      실수

    %u

    %u

      부호 없는 정수

    %x

    %x

      부호 없는 16진수

    %o

    %o

      부호 없는 8진수

    %p

     

      16진수 메모리 주소

    - printf("%p\n",255); //16진수 메모리 주소. (반드시 8자리로 나온다.) %08X와 같다.


    #include <stdio.h>

    int main()

    {

            printf("%p\n",255); // 255의 16진수 메모리 주소 출력 (000000FF)

            printf("%08X\n",255); // 8자리로 255의 16진수 메모리 주소 출력 (000000FF)


            return 0;

    }




    제어문


    #include<stdio.h>

    int main()

    {

            int a;

            int b;

            a= 15;

            {

                    b=23;

                    printf("a+b=%d and a-b=%d\n",a+b,a-b);

            }

            {

                    int b=10; // 앞에 선언한 b와는 다른 변수이다. 해당 중괄호 안에서만 값이 선언되어 있다. 즉, 중괄호가 끝나면 사라진다.

                    printf("%d\n",b); // b=10이 출력된다.

                    printf("%d\n",a); // a=15의 값이 출력된다.

            }

                    printf("%d\n",b); // b=23의 값이 출력된다.

            return 0;

    }


    - 중괄호 안에 여러 개의 중괄호를 사용할 수 있다.(그리고 영역이 확실히 구분된다.)

    - 중괄호는 영역 표시가 확실하다. 세 번째 중괄호 범위 안에서 int b=10; 의 선언은 해당 중괄호 안에서만 값이 유지되며, 해당 중괄호가 닫힐 때 그 값이 사라진다. 반대로 두 번째 중괄호의 b=23; 의 경우는 최상위 중괄호에서 선언된 int b의 값을 불러와 사용했기에 b=23이란 값이 그대로 유지된다.

    - 다시 말하면 세 번째 중괄호의 int b=10; 이라는 선언은 최상위의 int a;, int b; 와 다르게 int b가 한 번 더 생긴 것과 같다. 즉 변수가 잠시 3개가 된 것이다.(변수의 지역이 다르므로 같은 이름도 허용되었지만 두 int b는 다른 변수이다. - 이것을 최상위의 int a;, int b;를 전역변수, 중간에 잠시 나타난 int b;를 지역변수라 한다.)

    - 만약, 3번째 중괄호 안에 변수 선언을 새로 하지 않았다면, 전역변수의 값이 그대로 출력 된다.

    Posted by 동화다아아
    , |

    최근에 달린 댓글

    최근에 받은 트랙백

    글 보관함