c언어 2강 변수와 연산자 (윤성우 열혈c)
변수와 연산자
int main(void) {
int num;
num = 3;
}
int num; -> 정수의 저장이 가능한 매모리 공간을 할당하고 그 메모리 공간의 이름을 num이라 합니다.
num = 3; -> num이라는 메모리 공간(변수)에 값3을 집어 넣습니다.
int num=3, num2 = 4; 이렇게 변수를 선언함과 동시에 초기화할 수도 있다.
변수선언시에 주의 사항: 중괄호 내에 변수를 선언할 경우, 변수의 선언문은 중괄호 앞부분에 위치해야한다!
변수의 자료형
변수는 실수형 자료형과 정수형 자료형으로 나뉜다.
정수형: char, short, int, long
실수형: float, double
int main(void) {
int num1 = 3, num2 = 4;
int result = num1 + num2;
printf("%d+%d=%d\n",num1,num2,result);
}
위는 덧셈프로그램 예시
또한 함수 호출문의 인자 전달 위치에 연산식이 올 수 있다.
int main(void) {
int num1 = 3, num2 = 4;
printf("%d+%d=%d\n",num1,num2,num1+num2);
}
이러한 경우 함수 호출에 앞서 연산식이 먼저 진행되고, 연산의 결과가 인자가 되어 함수의 호출까지 이어짐
# 증가,감소 연산자
++num :선증가 후진행
- - num: 선감소 후진행
num++ : 선진행 후증가
num - - : 선진행 후감소
연산자가 피연산자의 왼편에 붙는 경우에는 먼저 1을 증가 및 감소시키고 문장의 나머지 부분을 진행한다.
오른편에 붙는 경우에는 먼저 문장 전체를 실행키시고 난뒤에 1을 증가및 감소시킨다.
int main(void) {
int num1=10;
int num2=(num1--)+2;
printf("num1:%d\n",num1);
printf("num2:%d\n",num2);
}
출력 결과:
num1: 9
num2: 12
# 관계 연산자
>, < . ==, !=, <=, >= 등이 있는데 연산의 결과 조건을 만족하면 1을 반환하고, 만족하지 않으면 0을 반환한다.
int main(void) {
int num1=10;
int num2=20;
int result1, result2, result3;
result1 = (num1==num2);
result2 = (num1 >= num2);
result3 = (num1 <= num2);
printf("result1:%d\n",result1);
printf("result2:%d\n",result2);
printf("result3:%d\n",result3);
}
출력 결과:
result1:0
result2:0
result3:1
* 0은 False ,1은 True.
# 논리 연산자
A&&B : A,B 둘 다 참이면 참을 반환. (논리 AND)
A || B : A,B 둘 중 하나라도 참이면 참을 반환. (논리 OR)
! A : A가 참이면 거짓, 거짓이면 참을 반환 (논리 NOT)
연산자 우선순위에 따라' 관계연산자'와 '논리연산자'가 한 문장 안에 있을 때, 관계 연산자가 먼저 실행된다.
int main(void) {
int num1=10;
int num2=20;
int result = (num1==10 && num2==20);
printf("result:%d",result);
}
@또한 C언어는 0이 아닌 모든 값을 참(true)로 간주한다.
# 콤마 연산자( ,)
콤마 연산자는 1. 둘 이상의 변수를 동시에 선언할 때.
2. 둘 이상의 문장을 한 행에 삽입할 때,
3. 둘 이상의 인자를 함수로 전달할 때 인자의 구분을 목적으로 사용.
즉 콤마 연산자는 주로 연산의 결과가 아닌 구분을 목적으로 사용된다.
# scanf함수
int main(void) {
int num;
scanf("%d", &num);
}
scanf("%d", &num); -> 키보드로 입력된 정수를 변수 num에 저장하라.
스캔에프 함수에서는 %d가 '10진수 정수형태의 입력'을 뜻한다.
(num앞의 &는 포인터와 더불어 함수에 대해 깊게 공부한 후 이해할 수 있다. 나중에 배우자!)
int main(void) {
int num1, num2, num3;
scanf("%d %d %d", &num1, &num2, &num3);
}
요렇게 여러게를 입력받을 수도 있다.