기본적인 공부 시작에 앞서
C언어 기초를 다지는 것이 맞다고 판단하고, 듣게 된
패스트캠퍼스 컴퓨터 공학 기초 강의-
매일 복습하지 못했지만,
일주일 배운 내용을 지금이나마 기록!
- 통합개발환경 (Integrated Development Environment)
: 프로그램 기반에 사용되는 코딩, 디버깅(오류를 수정하고 고치는 작업), 컴파일 (코딩언어 -> 기계어로 번역)의 모든 과정을 통합적으로 관리할 수 있게 해주는 소프트웨어. 줄여서 IDE.
- visual studio 소스코드
1) 생성방법
: 소스파일 -> 추가 (D) -> 새항목 (W) -> C파일 (.c) 생성
- 유의사항 : 언더바 x, 특수문자 x
2) 실행방법
: 디버그 -> 디버깅시작 (S), F5 가능
- C++ : 기본적으로 C의 기능을 확장한 형태의 프로그래밍 언어
- 변수 (variable) : 변할 수 있는 데이터
- 상수 (Constant) : 변하지 않는 데이터
3-1. 변수의 선언 : 자료형과 변수명을 입력
가장 많이 사용되는 함수 : int (정수형 함수)
정적 변수로 선언된 것은 기본적으로 0으로 값이 초기화
3-2. 기본적인 자료형
- int (4byte) : 일반적인 정수형 표현 (억단위) %d
- long long (8byte) : 숫자가 긴 정수형 표현 %lld
- double (8byte) : 일반적인 실수형 표현 사용
입력 시 %lf, 출력시 %f
- bool (1bit) : 참/거짓 표현
- char (1byte = 8bit) : 한 문자 표현 %c
- float (4byte): 실수형 데이터 입출력 %f
- string (제한없음) : 문자열 데이터 입출력 %s
- 연산자
- 연산자 (Operator) : 연산을 수행하는 기호
- 피연산자 (Operand) : 연산에 포함되는 변수나 상수
1) 대입 연산자 : = (Equal sign) 오른쪽 값을 왼쪽에 넣어달라.
2) 사칙연산 : +, -, *, /(몫), %(나머지. 모듈러연산 기호)
3) 이스케이프 시퀀스 : c언어에서 특정 표현 출력하기 위해 사용
\n, ₩n : 줄 바꾸기 (2번 줄 바꾸기 \n\n)
\t, ₩t : 수평 탭 넣기
₩₩,\ \ : 백슬래시 넣기
\" : 큰 따옴표 넣기
\b : 백스페이스 넣기
4) 관계 연산자
: 컴퓨터는 0을 거짓, 그 외 숫자를 참으로 받아들인다.
[ > 크다, < 작다,
== 같다, != 다르다, >= 크거나 같다, <= 작거나 같다. ]
5) 논리 연산자
: ! (부정), && (그리고), II (또는)
(수식1) && (수식2) : 1과 2가 모두 참이어야 참
(수식1) II (수식2) : 1,2 중 한개만 참이어도 참으로 출력
a > b > c 로 표현하면 a>b 를 계산하고 > c 를 출력하므로
a > b, b > c 로 꼭 적어주기 :-)
6) 증감 연산자
: ++(변수) : i의 값을 1 증가시킨 후 증가된 값을 반환
(변수)++ : i의 값을 1 증가시킨 후 증가되기 전의 값을 반환
--(변수) : i의 값을 1 감소시킨 후 감소된 값을 반환
(변수)-- : i의 값을 1 감소시킨 후 감소되기 전의 값을 반환
7) 삼항 연산자 ( ?와 :로 식 구성)
: printf ("%d/n",(a==b) ? 100 : -100 )
a==b가 참이면 100 출력, 거짓이면 -100 출력
8) 비트 연산자 (이진법 출력)
: ~ (부정 값을 반대로 출력), & (그리고두개다 1이어야 1으로 출력),
| (또는둘중 한개라도 1을 가지면 출력), ^ (배타적둘 중 한개만 1일 때 출력) << (왼쪽 시프트_ 값을 왼쪽으로 3번 밀어냄)
# 연산자 우선순위 :
증감연산 > NOT 연산 > 곱셈나눗셈 > 기본연산 > shift 연산 > 관계연산자 > 비트, 논리,삼항 연산자
- 조건문
- if문 : 내부의 조건을 검사해 프로그램의 진행 경로를 결정
조건의 개수가 많지 않을 때 사용하는 것이 유리
- if (조건 1) : 조건 1 부합
- else if (조건 2) : 조건 1에 부합하지 않으나, 2에 부합할 때
- else : 모든 조건에 부합되지 않을 때
if문의 경우, 조건이 중복충족되는 경우가 있기에 조건 점검을 잘 해야 한다!
- switch문 : 다양한 조건이 존재할 때 사용
- switch (확인 대상) {
case 값 1 : // 값 1에 부합할 때
case 값 2 : // 값 2에 부합할 때
Defalut : // 모든 경우
}- switch문은 상위 조건 충족 시 하위조건이 모두 출력됨
case문의 마지막 ; break ; 삽입하여 특정 부분 실행 컨트롤- char, int, long, double, 자료형 사용 가능
- case : (이어지는) break ; (끊어지는)
- 반복문
- for문 : 내부의 조건에 부합하면 특정한 구문 계속 실행.
탈출 원하는 위치에 break 구문 삽입 필요
for ( 초기화 ; 조건 ; 반복 끝 명령어)
1 부터 100까지의 정수 출력 (101에 멈춤)
- 예시#include <stdio.h> int main (vold) { for (int i = 0 ; <=100, i++) { printf ("%d\n",i); } system("pause"); }
- 무한 루프 : 종료 조건 없이 한없이 반복되는 반복문
(조건이 항상 참일 경우 발생)
- while문: 조건 부합 시 특정 구문 계속 실행
탈출 원하는 위치 break 삽입.
* while문이 실행되면 참값인지 먼저 검사하고,
참이면 실행하여 -1 감소, 거짓이 될 때 까지 while ~ printf ; 부분 반복 실행
- 예시#define_CRT_SECURE_NO_WARNINGS #Include <stdio.h> int main (vold) { int n ; char a ; scanf ("%d %c", &n, &a); while(n--) { printf("%c",a); } system("pause"); return 0; }
- 중첩된 반복문
: 반복문 내부 또다른 반복문이 존재하는 형태의 반복문
반복문이 중첩될수록 연산 횟수는 제곱의 형태로 늘어남
- 예시 (while문의 구구단 출력)
[i 가 1번씩 반복될 때마다, j는 9번 반복된다.
i와 j를 곱해서 j값이 9와 작거나 같을 때까지 반복됨]#include <stdio.h> int main (void) { int i = 1; while (i <= 9) { int j = 1; while (j <= 9) { printf ("%d * %d = %d\n", i, j, i*j); J++; } printf("\n"); i++; } system("pause"); }
- 예시 (for문의 구구단 출력)
#include <stdio.h> int main (void) { for (int i = 1 ; i<=9 ; i++) { for (int j = 1; J <=9; j++) { printf("%d * %d = i, j, i * j) ; } printf("\n"); } system("pause"); }
- for문을 활용하여 9단까지의 반복을 출력!
- 반복문은 상호 치환이 가능하고, 무한 루프가 발생하지 않도록 유의!
행렬, 그래프 연산에 많이 활용됨!
- 작성 기본 상식
- ; (세미콜론) : 명령의 마지막 삽입
- printf : 출력
- scanf() : 특정 변수 값을 넣기 위해 사용. 프로그램 입력 함수
- system("pause") : 창 닫힘 방지
- #include <stdio.h> : 라이브러리 불러오기
- return 0; : main함수에는 반환값 0이 필요
- 시작과 끝 : { }
- #define_CRT_SECURE_NO_WARNINGS :취약 함수 사용 허용
- & : 특정한 변수의 주소
- void: 아무것도 없는. 입력이 없지만 int형으로 출력받는 메인함수
정수형으로 return시 int 함수와 함께 사용됨