변수 - 값을 저장할 수 있는 메모리공간에 붙은 이름, 혹은 메모리 공간 자체를 가리켜 변수라 한다.


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

출력결과 4

OR - 두 개의 비트 중 하나라도 1이면 1을 반환하는 연산자

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

출력결과 31

XOR - 두 개의 비트가 서로 다른 경우에 1을 반환

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

출력결과 -16

num1 에 저장된 데이터의 모든 비트를 반전시킨다. 비트부호 역시 반전되므로 음수이다!


'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

+ Recent posts