본문 바로가기

C언어/복습

[C언어]DAY3_표준입력, 연산자 이해, 연산자 이해2, 기타연산자

표준입력

기본입력 함수 : scanf(), scanf_s()

 * scanf_s() : 기존(scanf)의 오버플로우 overflow 문제를 해결하기 위하여 나온 함수. s = safe

 

형식
  1. 형식지정자를 사용하여 데이터를 입력받아
  2. 변수에 저장.

 

#include

int main(){

//변수 선언과 초기화를 동시에 하는 것은 좋은 습관! ***
              int number = 0;
              double number2 = 0.0;

//형식지정자 사용
//변수명 앞에 주소연산자 &(엔퍼센트)
//정수입력
               printf("정수를 입력하세요 > ");
               scanf("%d", &number);
               printf("%d이(가) 입력되었습니다.\n\n", number);

//&주소 연산자를 붙인 경우
//&변수 : 변수의 주소값 (address)
               printf("%d %d \n\n", &number, number);

//실수입력
                printf("실수를 입력하세요 > ");
                scanf("%lf", &number2);
                printf("%.2lf이(가) 입력되었습니다.\n\n", number2);

                }


#include

int main(){
              int number = 0;
              double number2 = 0.0;

              printf("정수를 입력하세요 > ");
              scanf("%d", &number);
              printf("%d이(가) 입력되었습니다.\n\n", number);

              printf("%d %d \n\n", &number, number);

              printf("실수를 입력하세요 > ");
              scanf("%lf", &number2);
              printf("%.2lf이(가) 입력되었습니다.\n\n", number2);
              }

연산자 이해

산술연산자
증감연산자
대입연산자

 

#include

main(){

          int num1 = 10;
          int num2 = 3;

 

//산술연산자 : +, -, *(곱하기), /(나누기), %(나머지)
//정수끼리 연산 : 정수가 됨. 소수점 잘림. 10.9 => 10

          printf("%d + %d = %d\n", num1, num2, num1 + num2 );
          printf("%d - %d = %d\n", num1, num2, num1 - num2 );
          printf("%d * %d = %d\n", num1, num2, num1 * num2 );
          printf("%d / %d = %d, %f\n", num1, num2, num1 / num2, num1 / num2);
          printf("%d %% %d = %d\n", num1, num2, num1 % num2);

 

//증감연산자 : ++(1더하기), --(1빼기)

        num1 = 0;
        printf("%d\n", ++num1); // 문장 실행 전 증가 increase
        printf("%d\n", num1++); // 문장 실행 후 증가
        printf("%d\n", num1);
        printf("%d\n", --num1); // 문장 실행 전 감소 decrease
        printf("%d\n", num1--); // 문장 실행 후 감소
        printf("%d\n", num1);

 

// 대입연산자 : =, +=, -=, *=, /=

       num1 = 3;
       num2 = 10;
       num2 += num1; // num2 = num2 + num1
       printf("%d\n", num2);

       }


#include

main(){
          int num1 = 10;
          int num2 = 3;

          printf("%d + %d = %d\n", num1, num2, num1 + num2 );
          printf("%d - %d = %d\n", num1, num2, num1 - num2 );
          printf("%d * %d = %d\n", num1, num2, num1 * num2 );
          printf("%d / %d = %d, %f\n", num1, num2, num1 / num2, num1 / num2);
          printf("%d %% %d = %d\n", num1, num2, num1 % num2);

          num1 = 0;
          printf("%d\n", ++num1);
          printf("%d\n", num1++);
          printf("%d\n", num1); //확인
          printf("%d\n", --num1); 
          printf("%d\n", num1--);
          printf("%d\n", num1); //확인

          num1 = 3;
          num2 = 10;
          num2 += num1; // num2 = num2 + num1
          printf("%d\n", num2);
          }

연산자 이해2

논리연산자
비교연산자

 C는 boolean(참/거짓, True/false) 이라는 기본적으로 데이터 타입이 없다.

 

#include
#define False 0
#define True 1
//#define True (!False)

 

main(){

// 논리연산자
// && : and (그리고)
           printf("%d\n", True && True);
           printf("%d\n", True && False);

 

// || : or (또는)
           printf("%d\n", True || True);
           printf("%d\n", True || False);

 

// ! : not (부정)
           printf("%d\n", !True);

 

// 비교연산자 : > , >= , < , <= , == , !=
// ==(같다)와 =(대입) 의 차이
           printf("1 == 1 : %d\n", 1 == 1);
           printf("1 != 1 : %d\n", 1 != 1);
           printf("1 > 1 : %d\n", 1 > 1);
           printf("1 >= 1 : %d\n", 1 >= 1);

           }


#include 
#define False 0
#define True 1

main(){
printf("%d\n", True && True);
           printf("%d\n", True && False);

           printf("%d\n", True || True);
           printf("%d\n", True || False);

           printf("%d\n", !True);

           printf("1 == 1 : %d\n", 1 == 1);
           printf("1 != 1 : %d\n", 1 != 1);
           printf("1 > 1 : %d\n", 1 > 1);
           printf("1 >= 1 : %d\n", 1 >= 1);
           }

기타연산자

삼항연산자
비트연산자

형변환 연산자(캐스팅) casting
자동 형변환
sizeof 연산자
연산자 우선순위

 

#include

main(){

          int num_int1 = 0;
          int num_int2 = 200;
          int num_int3 = 0;
          double num_double = 0.0;

 

// 삼항연산자
// 형식 : 조건 ? 참이면 문장 실행 : 거짓이면 문장 실행;
          num_int1 = 100;
          num_int3 = num_int1 > num_int2? num_int1 : num_int2;
          printf("%d\n", num_int3);

// 비트논리 연산자 123 = 1*100(10의 2승) + 2*10(10의1승) + 3(10의0승)
         num_int1 = 1; //비트로 01

         num_int2 = 3; //비트로 11 = 1*(2의1승) + 1*(2의0승)

 

// & : and
// | : or
// ^ : xor (서로 달라야지 true)

        printf("%d\n", num_int1 & num_int2);
        printf("%d\n", num_int1 | num_int2);
        printf("%d\n", num_int1 ^ num_int2);

        }

 


#include

main(){
          int num_int1 = 0;
          int num_int2 = 200;
          int num_int3 = 0;
          double num_double = 0.0;

          num_int1 = 100;
          num_int3 = num_int1 > num_int2? num_int1 : num_int2;
          printf("%d\n", num_int3);

          num_int1 = 1; //비트로 01
          num_int2 = 3; //비트로 11 = 1*(2의1승) + 1*(2의0승)
          
          printf("%d\n", num_int1 & num_int2);
          printf("%d\n", num_int1 | num_int2);
          printf("%d\n", num_int1 ^ num_int2);
          }

* #define PI 3.14 ( =을 붙이면 안된다.! )

 

 

 

=궁금증=

 

main앞에 int를 붙이고 안붙이고 차이..