(1) Map 인터페이스Map은 키-값 (key-value) 쌍을 저장하는 자료 구조 형태를 정의한 인터페이스 key value 이름 김덕배 출생 캘리포니아 모국 파푸아뉴기니 key-value 대응 관계 예시 package java.util;public interface Map { // 기본 동작 int size(); boolean isEmpty(); boolean containsKey(Object key); boolean containsValue(Object value); V get(Object key); V put(K key, ..
Language

(1) 연산자 (Operator) 프로그램에서 데이터를 처리하여 결과를 산출하는 것 연산에 사용되는 표시나 기호는 연산자(Operator) 연산되는 데이터는 피연산자(Operand) (2) 연산자 우선순위 연산자 종류별로 우선순위가 있다. ~와 !만 예외적으로 1순위이다. 종류 연산자 우선순위 증감 연산자 ++, -- 1순위 산술 연산자 +, -, *, /, % 2순위 시프트 연산자 >>, > 3순위 비교 연산자 >, =, 산술 > 시프트 > 비교 > 비트 > 논리 > 조건 > 대입 증산시비비논조대 등산(증산)하다가 시비가 걸려서 비오는 날 논까지 미끄러져서 조대(ㅈ됐)다. (3) 증감 연산자 피연산자의 값을 1씩 증가 or 감소시키는 연산자 변수 앞 or 뒤에 위치하냐에 따라 다른 결과값 구분 연산자 ..

(1) 전위 연산자 전위 연산자 ++변수, --변수 증감 이후에 해당 문장을 실행 (2) 후위 연산자 후위 연산자 변수++, 변수-- 해당 문장을 실행하고 증감 (3) printf 출력 순서 컴파일러에 따라 다르지만, 기본적인 컴파일러에 의하면 printf 함수는 뒤에서부터 값을 배정한다. 이게 무슨 말인가 하면, 아래의 예제를 통해 알아보자. #include int main() { int i = 5; printf("%d %d %d %d", i++, ++i, i++, ++i); return 0; } 위와 같은 코드에서 서식 지정자인 %d의 출력을 위해서 i의 증감 연산자의 계산이 필요하다. 그런데 사전에 학습한 증감 연산자를 이용하여 앞에서부터(=>) 연산하면 5, 7, 7, 9로 계산할 수 있다. 그러..
(1) 인수 전달 방법 함수를 호출할 때에는 함수에 필요한 데이터를 인수(argument)로 전달해 줄 수 있다. 인수를 전달하는 방법은 크게 두 가지가 있다. 값에 의한 전달 (call by balue) 참조에 의한 전달 (call by reference) (2) 값에 의한 전달 (call by value) 인수로 전달하는 값을 함수 내의 매개 변수에 복사하는 방식이다. 이러한 방식은 원본 변수와 복사된 값인 매개 변수는 별개의 변수이다. 따라서 매개 변수의 값 변경은 원본 변수에 영향을 미치지 않는다. #include void local(int); int main(void) { int var = 10; printf("var의 초기값은 %d\n", var); local(var); printf("loca..

(1) 포인터 연산 포인터는 값을 증가시키거나 감소시키는 등의 제한된 연산만이 가능하다. C언어 포인터 연산에는 다음과 같은 규칙이 있다. 포인터끼리 덧셈, 곱셈, 나눗셈은 의미 없음 포인터끼리 뺄셈은 두 포인터 사이의 상대적 거리 포인터에 정수의 덧/뺄셈은 가능하지만, 실수와의 연산은 허용치 않음 포인터끼리 대입, 비교 가능 포인터 연산의 증가값을 비교하는 예제이다. char* ptr_char = 0; int* ptr_int = NULL; double* ptr_double = 0x00; printf("ptr_char가 가리키는 주소값은 %#x입니다.\n", ptr_char); printf("ptr_int가 가리키는 주소값은 %#x입니다.\n", ptr_int); printf("ptr_double가 가리..
(1) 구조체 배열 선언 사용자 정의 타입인 구조체도 배열의 한 요소가 될 수 있다. struct student highschool[3] = { {"김철수", 1, 7}, {"박짱구", 3, 2}, {"맹구글", 2, 1} }; puts("전학생들의 이름은 다음과 같습니다."); printf("%s, %s, %s", highschool[0].name, highschool[1].name, highschool[2].name); 위와 같이 멤버 연산자 .을 사용하여 각 배열 요소의 멤버 변수에 접근할 수 있다. 이는 이차원 배열에도 동일하게 사용 가능하다. (2) 구조체를 가리키는 포인터 // 문법 struct 구조체이름* 구조체포인터이름; // 예시 struct student* ptr_student; 배열의..

(1) 구조체 (Structure Type) 구조체란 사용자가 C언어의 기본 타입을 이용해 새롭게 정의할 수 있는 사용자 정의 타입이다. 배열은 같은 타입의 변수들을 하나로 묶지만, 구조체는 타입이 다른 변수들을 하나로 묶는다. 이러한 구조체를 구성하는 변수를 구조체의 멤버(member) 또는 멤버 변수(memeber variable)라고 한다. (2) 구조체의 정의와 선언 구조체는 아래와 같이 struct 키워드를 사용하여 정의한다. // 문법 struct 구조체 이름 { 멤버변수1타입 멤버변수1이름; 멤버변수2타입 멤버변수2이름; ... }; 위와 같이 struct 키워드를 사용하여 구조체를 정의할 수 있다. 중괄호의 마지막에 세미콜론을 작성하는 것을 잊지 말자. 이렇게 정의된 구조체 타입은 구조체 ..
(1) 자료형 자료형(data type)이란 저장되는 데이터의 종류에 따른 형태로, 저장되는 값의 종류와 범위에 따라 다르게 사용한다. 자료형 크기 (byte) 범위 정수 signed short 2 -32,768 ~ 32,767 int 4 -2,147,483,648 ~ 2,147,483,647 long 4 -2,147,483,648 ~ 2,147,483,647 long long 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 unsigned unsigned short 2 0 ~ 65,535 unsigned int 4 0 ~ 4,294,967,295 unsigned long 4 0 ~ 4,294,967,295 unsigned long long 8 0 ~..