변수 - 값을 저장할 수 있는 메모리공간에 붙은 이름, 혹은 메모리 공간 자체를 가리켜 변수라 한다.
int num // num 이라는 이름의 변수 선언
num = 20; // 변수 num에 20을 저장
printf("%d",num) // 변수 num의 값 참조
변수는 선언과 동시에 초기화가 가능하다.
int num = 20; // num이라는 변수를 20으로 초기화
int num1, num2;
int num3=30, num4 = 40;
모두 가능하다. 하지만 변수를 선언만 하고 초기화를 하지 않으면 쓰레기 값이 저장된다.
위의 num의 값은 예측할 수 없다. 초기화를 하지 않았기 때문에!
변수의 이름을 지을 때의 규칙들이 몇 가지 있다.
1. 변수의 이름은 알파벳, 숫자, 언더바(_)로 구성된다.
2. C언어는 대소문자를 구분한다. 변수 Num과 변수 num은 서로 다른 변수이다.
3. 변수의 이름은 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다.
4. 이름 사이에 공백이 삽입될 수 없다.
변수의 이름을 정할 때에는 변수의 역할에 어울리는 의미있는 이름을 지어야 한다.
변수의 자료형에는 정수형 변수, 실수형 변수가 있다.
정수냐, 실수냐에 따라서 값이 메모리 공간에 저장 및 참조되는 방식이 다르기 때문이다.
산술 연산자 - 덧셈, 뺄셈, 곱셈, 나눗셈 등의 사칙연산을 수행하는 연산자
x+y -> x와 y를 더한다.
x-y -> x에서 y를 뺀다.
x*y -> x와 y를 곱한다.
x/y -> x를 y로 나눈다.
x%y -> x를 y로 나눌 때의 나머지 값
%나머지연산자를 이용한 짝수와 홀수 구분
X % 2 가 0이면 짝수
%나머지연산자를 이용한 5의 배수 판단
X % 5 가 0 이면 5의 배수
증감연산자
++X : X값을 먼저 증가한 후에 다른 연산에 사용, 증가된 X값
X++ : X값을 먼저 사용한 후에 증가, 증가되지 않은 원래의 값
--X : X값을 먼저 감소한 후에 다른 연산에 사용, 감소된 X값
X-- : X값을 먼저 사용한 후에 감소, 감소되지 않은원래의 값
복합대입연산자 - 대입연산자 =와 산술연산자를 합쳐 놓은 연산자
소스를 간결하게 만들 수 있음
X+=Y -> X = X+Y X *= Y -> X = X*Y
X -= Y -> X = X-Y X /= Y -> X = X/Y ...
관계 연산자 - 두개의 피연산자를 비교하는 것! 결과값은 참(1)아니면 거짓(0)
X == Y -> X와 Y가 같은지, X != Y -> X와 Y가 다른지
X >= Y -> X가 Y보다 크거나 같은지 X <= Y -> X가Y보다 작거나 같은지
논리연산자 - 여러개의 조건을 조합하여 참과 거짓을 따지는 연산자 결과값은 참(1) 아니면 거짓(0)
X && Y -> AND연산, X와 Y가 모두 참이어야 참, 그렇지 않으면 거짓
ex) (x >= 60) && (x =< 100) : "x가 60이상 100 이하이다."
X || Y -> OR연산, X나 Y중 하나만 참이어도 참, 둘다 거짓이면 거짓
ex) (x == 1) || (x == 2) || (x == 3) : "x는 1,2,3 중에 하나인가"
!X -> NOT연산, X가 참이면 거짓, 거짓이면 참 (반대)
ex) (x !=0) && (x !=1) : "x는 1도 아니고 0도 아니다."
scanf() - 키보드로부터 다양한 형태의 데이터를 입력받을 수 있다.
scnaf("%d",&num) // %d - 10진수 정수형태로 입력받아서 &num - 변수 num에 저장하라
ex)
출력결과
두 개의 정수 입력:100 50
두 정수의 합:150
두 개의 정수를 사용자로부터 키보드로 입력을 받아서 덧셈을 하고 있다.
scanf()함수는 공백을 기준으로 데이터를 구분한다. 위의 예제에서 두개의 정수 입력을 할 시, 한개의 정수를 치고 스페이스바, 탭,엔터 키를 입력해야 한다.
비트 연산자
AND - 두개의 비트가 모두 1일 때 1을 반환
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
1 2 3 4 5 6 7 8 9 10 11 | #include<stdio.h> int main() { int n1=15,n2 = 20,n3; n3 = n1 & n2; printf("%d",n3); return 0; } | cs |
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
1 2 3 4 5 6 7 8 9 10 11 12 | #include<stdio.h> int main() { int n1=15,n2 = 20,n3; n3 = n1 | n2; printf("%d",n3); return 0; } | cs |
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
위의 예제에서 연산자만 바꾸면 된다!
출력결과 27
마지막으로 NOT - 비트를 0에서 1로, 1에서 0으로 반전시킨다.
~ 0 = 1
~ 1 = 0
1 2 3 4 5 6 7 8 9 10 11 | #include<stdio.h> int main() { int num1 = 15; int num2 = ~num1; printf("%d",num2); return 0; } | cs |
'programming > C' 카테고리의 다른 글
C// 조건에 따른 흐름의 분기 (0) | 2017.12.11 |
---|---|
C // 반복문 (0) | 2017.12.07 |
C // printf함수와 scanf 함수 (0) | 2017.12.02 |
C // 상수와 기본 자료형 (0) | 2017.12.01 |
C // C의 기본 (0) | 2017.11.27 |