📒 Tech Note/웹 프로그래밍

[CS] C언어의 기초 (1)

@Hadev 2020. 8. 1. 01:13

변수와 상수

1) 변수는 변할 수 있는 데이터, 상수는 변할 수 없는 데이터
2) 컴퓨터가 정수를 표현할 때는 2의 보수 방식(0과 1을 반대로 바꿔주고 마지막 1을 더해줌)을 사용한다. (실수 = 부호 + 지수 + 유효숫자)

기본 입출력

1) C언어에서 입력받거나 출력할 때는 형식 지정자를 따름
2) prinf()는 단순히 데이터 넘기기, scanf()는 입력받을 주소를 나타내기 위해 & 사용

연습) 실수형을 입력 받아서 소수점 셋째 자리까지 출력해보기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
    double a;
    scanf('%lf', &a);
    prinf('%.f\n', a);
    system("pause");
    return 0;
}

연산자

대입연산자  =
산술 연산자 +, -, *, /, %
관계 연산자 ==, !=, >, <, >=. <= 
논리 연산자 !, &&, || 
증감 연산자 ++, --
삼항 연산자 ? :
비트 연산자 !, ~, &, ^, >>, << 

조건문

if문
- if, else, if else

switch문
- switch

  • case: break;
  • default:

반복문

for문

for (int i =0; i<= 100; i++) {
  printf("%d\n", i);
}

while문

  • 조건을 걸어두고 부합하는 동안 계속 실행하는 코드를 작성
  • 반복문을 탈출하고자 하는 위치에 break 구문을 삽입

연습) 구구단 출력하기

함수

1) C언어는 함수로 시작해서 함수로 끝나는 언어
2) 재귀함수는 반복적으로 자신을 불러내므로 경우에 따라서 연산 횟수가 급격히 증가할 수 있음

배열

  • 배열의 선언과 초기화
// 자료형 배열명[배열크기] = {초기화 값}
int Arr[3] = {1, 2, 3};
  • INT_MIN, INT_MAX
    • <limits.h> 헤더파일에 정의
    • int형 범위의 최솟값, 최대값을 반환
  • 문자를 여러 개 묶어 놓은 형태로 문자열을 표현함 => C++에서는 이런 불편함을 해소하기 위해 String 자료형을 제공

포인터

포인터의 개념

  • 포인터 변수는 메모리 주소를 저장
  • 포인터는 특정한 변수 자체가 존재하는 메모리 주소의 값을 가짐

포인트 관련 연산자

  • 주소 연산자(&)
  • 포인터(*)
      int *b = &a;
  • 간접 참조 연산자(*)
      printf("%d\n", *b);
  • 다중 포인트를 사용할 수도 있음 (**)
  • 배열과 포인터는 내부적으로 거의 동일하기 때문에 바로 변수 이름으로 사용할 수 있음