1. 변수
1. 구성
- 이름, 주소, 값, 타입
2. 종류
- 지역변수: 실행 단위 블록 내
- 전역변수: 다른 파일
- 정적변수: 실행 끝날 때까지
2. 블록 (block)
: 프로그램 단편
1. 선언
- 지역적 (local)
- 비지역적 (nonlocal)
3. 할당 (allocation)
: 변수에 메모리 공간을 바인딩
1. 회수 (deallocation)
: 해제된 메모리 공간을 가용 공간으로
2. 종류
할당 | 이용 | 메모리 공간 | 활용 | |
정적 할당 (static) |
전역변수 | static | 정적 영역 | |
스택기반 할당 (stack based) |
지역변수 | 스택 | ||
동적 할당 (dynamic) |
포인터, 참조변수 |
C malloc, free C++ new, delete |
힙 | 연결 리스트, 트리구조 |
4. 연산자 우선순위
단항 | !, ~, ++, --, sizeof | |
이항 | 산술 | *, /, % |
+, - | ||
쉬프트 | <<, >> | |
관계 | <, <=, >=, > | |
==, != | ||
비트논리 | &, ^, | | |
논리 | &&, || | |
삼항 | 조건 | ? : |
대입 | =, += |
5. 표준 입출력
1. 출력
- printf("문자열");
- printf("제어문자열", 변수나 표현식);
2. 입력
- scanf("제어문자열", &변수);
3. 제어 문자열
- %d: 부호 있는 10진 정수
- %o: 부호 없는 8진 정수
- %x: 부호 없는 16진 정수
- %e: 지수
- %f: 실수
- %c: 문자 한 개
- %s: 문자열
6. 선택 제어문
1. if문
if (조건식) {
문장1;
문장2;
}
if (조건식)
문장1
else
문장2;
2. switch ~ case 선택문
switch (정수식)
{
case 상수값1 :
명령문 블록1;
break;
case 상수값2 :
명령문 블록2;
break;
.....
default:
명령문 블록n;
break;
}
7. 반복 제어문
1. for문
- 초기화, 조건식, 명령문, 증감식, 조건식, 명령문, 증감식, ...
for (초기화; 조건식; 증감식) {
명령문;
}
2. while문
- 횟수 모름, 반복 조건 알고 있음
while (조건식) {
명령문1;
증감식;
}
3. do~while문
- do 명령문 실행 후 while문 조건식 비교
do {
명령문;
}
while (조건식);
4. break문
: 정상적인 흐름 변경
5. continue문
- 해당 반목문의 처음으로 제어를 이동
8. 배열
: 같은 종류 자료형의 데이터 집단
1. 선언
자료형 배열명[크기];
2. 초기화
int a[3] = {1, 2, 3};
int a[] = {1, 2, 3, 4};
int a[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;
3. 2차원 배열
ex) int a[2][3];
0열 | 1열 | 2열 | |
0행 | a[0][0] | a[0][1] | a[0][2] |
1행 | a[1][0] | a[1][1] | a[1][2] |
4. 문자열 배열
- char형 배열 이용
- 끝에 항상 문자코드 '\0'(null) 추가
char str[] = {'L', 'O', 'V', 'E', '\0'};
char str[] = "LOVE";
char *str = "LOVE";
9. 함수
: 특정 기능을 수행, 수행 결과로 어떤 값을 반환하는 부 프로그램
1. 매개변수 전달 방법
1) 값에 의한 호출(call by value)
- 영향 없음
2) 주소에 의한 호출(call by value)
- 실매개변수: & 이용, 주소 넘김
- 형식매개변수: * 이용, 주소를 포인터가 받아 저장
- 매개변수값을 바꾸면 호출한 함수값도 변함
2. 재귀함수 (recursion function)
= 순환함수
: 자기 자신을 반복 호출하는 함수
- 종료 조건 필요, 없으면 스택 오버플로 발생
'공부 > etc.' 카테고리의 다른 글
[국어 단어] 고유어 (ㄴ) (0) | 2023.06.14 |
---|---|
[국어 단어] 고유어 (ㄱ) (1) | 2023.06.14 |
[국어] 시간과 관련된 단어 (2) | 2023.06.11 |
[국어] 날씨와 관련된 단어 (1) | 2023.06.11 |
[국어] 사람과 관련된 단어 (0) | 2023.06.11 |
[컴퓨터] 4차 산업혁명 기술 키워드 (1) | 2023.06.07 |
[컴퓨터] Java 키워드 (0) | 2023.06.07 |
[컴퓨터] 프로그래밍과 언어 번역 키워드 (0) | 2023.06.07 |
댓글