표준입력
기본입력 함수 : 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를 붙이고 안붙이고 차이..
'C언어 > 복습' 카테고리의 다른 글
[C언어]DAY6_while(반복문), do whlie, 함수 (0) | 2020.01.28 |
---|---|
[C언어]DAY5_다중(multiple) if, switch문, 단일 for문, 중복 for문 (0) | 2020.01.21 |
[C언어]DAY4_데이터 타입, if문 (0) | 2020.01.21 |
[C언어]DAY2_변수, 상수, 자료형, 출력지정자 (0) | 2020.01.16 |
[C언어]DAY1_컴퓨터 구성, C 기본구조 이해, 표준출력 (0) | 2020.01.15 |