とおき
토오끼
とおき
전체 방문자
오늘
어제
  • 분류 전체보기 (40)
    • 과제 (16)
    • 백준 (14)
    • C 언어 (5)
    • 잡동사니 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알파벳 찾기
  • 별표 출력
  • 유클리드 호재법
  • 11720
  • 백준
  • 알고리즘
  • 목록
  • 최댓값
  • BOJ
  • 8958
  • 중복값
  • 반복문
  • 주피터 오류
  • 문자열
  • set함수
  • FOR문
  • 숫자의 합
  • 입출력
  • 파이썬 오류
  • 파이썬
  • 2523

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
とおき

토오끼

C 언어

220908 - Univ

2022. 9. 14. 03:38

변수의 다양한 선언 및 초기화 방법

#include <stdio.h>

int main(void)
{
    int num1, num2; # 콤마를 이용하여 둘 이상의 변수를 동시에 선언할 수 있다, 선언 이전엔 쓰레기값이 채워져있음.
    int num3 = 30, num4 = 40; # 선언과 동시에 쓰레기값을 초기화함.

    num1 = 10; # 쓰레기값 초기화
    num2 = 20; # 쓰레기값 초기화
    printf("num1: %d, num2: %d", num1, num2);
    printf("num3: %d, num4: %d", num3, num4);

    return 0;
}

만약 printf 함수 선언 이후에 num1, num2 변수의 값을 대입하였다면 쓰레기 값(의미 없는 값)이 출력됬을것.


변수선언 주의사항

int main(void)
{
    int num1;
    int num2;
    num1 = 0;
    num2 = 0;
}

위 코드는 컴파일이 가능하다.

int main(void)
{
    int num1;
    num1 = 0;
    int num2;
    num2 = 0;
}

위 코드에서는 컴파일이 안되는 경우가 있다.

과거 C 표준에서 변수의 선언이 맨 앞에 있을것을 요구하였다. 그런데 지금도 그 표준을 따르는 컴파일러가 존재한다.


대입연산자와 산술연산자

#include <stdio.h>

int main(void)
{
    int num1 = 9, num2 = 2;
    printf("%d + %d = %d \n", num1, num2, num1 + num2);
    printf("%d - %d = %d \n", num1, num2, num1 - num2);
    printf("%d x %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);
    return 0;
}

복합 대입 연산자

#include <stdio.h> // 복합연산자

int main(void)
{
    int num1 = 2, num2 = 4, num3 = 6;
    num1 += 3; // num3 = num1 + 3
    num2 *= 4; // num2 = num2 * 4
    num3 %= 5; // num3 = num3 % 5
    printf("Result: %d, %d, %d \n", num1, num2, num3);
    return 0;
}

증가, 감소 연산자

  • ++num : 값을 1 증가 후, 속한 문장의 나머지 진행
  • num++ : 속한 문장을 먼저 진행한 후, 값을 1 증가
  • --num : 값을 1 감소 후, 속한 문장의 나머지를 진행
  • num-- : 속한 문장을 먼저 진행한 후, 값을 1 감소
#include <stdio.h>

int main(void)
{
    int num1 = 12, num2 = 12;
    printf("num1: %d \n", num1);
    printf("num1++: %d \n", num1++); // 후위 증가
    printf("num1: %d \n\n", num1);

    printf("num2: %d \n", num2);
    printf("++num2: %d \n", ++num2); // 전위 증가
    printf("num2: %d \n\n", num2);
    return 0;
}

관계 연산자

#include <stdio.h>

int main(void)
{
    int num1 = 10, num2 = 12;
    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);
    return 0;
}

연산의 조건을 만족하면 참을 의미하는 1을 반환하고 만족하지 않으면 거짓을 의미하는 0을 반환한다.

* C언어는 0이 아닌 모든 값을 참으로 간주한다. 1은 그저 참 임을 대표하는 값일 뿐이다.


논리 연산자

  • && : A, B 모두 '참' 이면 연산결과로 '참'을 반환 ( 논리 AND )
  • || : A, B 중 둘중 하나가 '참' 이면 연산결과로 '참'을 반환 ( 논리 OR )
  • ! : A 가 '참' 이면 '거짓', '거짓' 이면 '참' 을 반환 ( 논리 NOT )
#include <stdio.h>

int main(void)
{
    int num1 = 10, num2 = 12;
    int result1, result2, result3;
    result1 = (num1 == 10 && num2 == 12);
    result2 = (num1 < 12 || num2 > 12);
    result3 = (!num1);
    printf("result1: %d \n", result1);
    printf("result2: %d \n", result2);
    printf("result3: %d \n", result3);
}

'C 언어' 카테고리의 다른 글

220926 - Univ  (0) 2022.10.06
220919 - Univ  (0) 2022.09.20
220915 - Univ  (0) 2022.09.17
220904 - Univ  (0) 2022.09.14
    'C 언어' 카테고리의 다른 글
    • 220926 - Univ
    • 220919 - Univ
    • 220915 - Univ
    • 220904 - Univ
    とおき
    とおき

    티스토리툴바