본문 바로가기

전체

백준 문제풀이 모아보기 1. 백준 1152번2. 백준 1158번3. 백준 1316번4. 백준 2309번5. 백준 2908번6. 백준 2941번7. 백준 10809번
JAVA 모아보기 1. 자바 프로그램의 이해와 실행의 원리2. 클래스의 정의와 객체의 생성3. 컬렉션 프레임워크4. List 인터페이스를 구현하는 컬렉션 클래스들5. Iterator 를 이용한 인스턴스의 순차적 접근6. Set 인터페이스를 구현하는 컬렉션 클래스들7. Map 인터페이스를 구현하는 컬렉션 클래스들
C 모아보기 1. C 프로그래밍의 이해2. 프로그램의 기본 구성과 printf 함수의 기능3. 이스케이프 시퀀스4. 서식문자5. 메모리 공간의 할당과 활용6. 진수와 진수변환7. 데이터 표현의 단위8. 정수와 실수의 표현 방식9. 정수와 실수의 표현 방식, 그리고 변수와의 관계10. 자료형을 나누는 기준은 무엇일까?11. 정수 자료형12. 실수 자료형13. 적절한 자료형의 선택기준14. 상수의 표현15. 상수의 이해16. 산술 연산자를 통해서 보는 연산의 원리17. 연산자들의 우선순위와 결합방향18. 다양한 연산자들의 소개19. 관계연산자와 논리연산자20. 자료형 변환 연산자21. sizeof연산자22. 연산의 결과가 남기는 것은?23. 산술연산 과정에서 발생하는 형변환의 규칙24. 함수란 무엇인가?25. 다양한 함..
포인터의 const 선언 1. 한정자 - Type Qualifier 한정자는 ‘한정’과 ‘자’의 조합이다. 그리고 한정’은 ‘제한’의 의미를 지닌다. 즉 한정자는 제한을 걸 때에 사용되는 키워드이다. C 언어에서 제공하는 한정자는 다음과 같이 총 3가지이다. • const• volatile • restrict 2. 포인터의 const 선언 기존의 const는 변수를 상수화하는 용도로 사용이 되는데, 이번에는 포인터와의 관계를 보자 다음 포인터 선언을 보자. int num = 10; int * ptr = # 포인터 ptr의 선언에서 const가 들어갈 수 있는 위치는 다음과 같다. 위 그림에서 보여주듯이 포인터 선언 앞 부분에 const가 삽입될 수도 있고,포인터 변수의 이름 앞에 const가 삽입될 수도 있다. 물론 이 ..
메모리 공간의 동적 할당 1. 메모리 구조 복습- https://cg-developer.tistory.com/162 가상 메모리는 다음 크게 4가지 영역으로 나뉜다. - 코드영역: 실행할 프로그램의 바이너리 코드를 저장할 공간 - 데이터 영역: 프로그램이 종료될때까지 유지해야 할 데이터를 저장할 공간 - 스택 영역: 아주 잠깐 사용하고 삭제할 데이터의 저장 공간 - 힙 영역: 프로그래머가 원하는 방식으로 쓸 수 있는 공간, 일반적이지 않은 특성의 변수 선언이 목적이라면 힙영역 활용 2. 힙 영역의 필요성 전역변수는 데이터 영역에 할당이 되어 프로그램이 종료될 때가지 남아있는 변수이고, 지역변수는 스택에 할당이 되었다가 해당 변수를 선언한 함수가 종료되면 소멸이 되는 변수이다. 따라서 이 두 가지 특성의 변수로는 충족되지 않는 부..
자료형에 이름을 부여하는 typedef 키워드 1. typedef 키워드를 이용해서 자료형에 새이름을 부여 간단한 예제를 봐보자 1234567891011121314151617181920212223 #include typedef int INT;typedef INT * PINT; void SwapRef(PINT p1, PINT p2){ INT tmp=*p1; *p1=*p2; *p2=tmp;} int main(void){ INT val1=5; INT val2=7; printf("Swap 이전 [val1:%d, val2:%d] \n", val1, val2); SwapRef(&val1, &val2); printf("Swap 이후 [val1:%d, val2:%d] \n", val1, val2); return 0;}Colored by Color Scripterc..
Call-By-Value vs Call-By-Reference 포인터를 이용하면 함수내에서 외부에 있는 변수에 직접 접근이 가능하다. 123456789101112131415161718192021222324 #include void CallByVal(int num){ num++;} void CallByRef(int * ptr){ (*ptr)++;} int main(void){ int val=10; CallByVal(val); printf("CallByVal: %d \n", val); CallByRef(&val); printf("CallByRef: %d \n", val); return 0;}Colored by Color Scriptercs 12CallByVal: 10CallByRef: 11cs 3행에서 이 함수가 하는 일은 매개변수인 num에 저장된 값을 1증가시키는게..
다차원 배열 이름의 포인터형 1. 다차원 배열의 포인터형이란? 2차원 배열 이름의 포인터 형을 결정짓는 정보는 2가지이다. - 배열 요소를 구성하는 변수의 자료형 - 배열의 가로길이 예를 들어 2차원 배열 double arr[4][5]의 배열 이름 arr과 동일한 포인터 형의 변수는 다음과 같이 선언된다. 2. 2차원 배열의 포인터형의 배경 앞서 1차원 배열의 포인터형과는 2차원 배열의 포인터형은 다른데 그 이유를 보자. 1234567891011121314#include int main(void){ int arr1[3][2]; int arr2[3][3]; int arr3[3][4]; printf("%d %d \n", arr1, arr1+1); printf("%d %d \n", arr2, arr2+1); printf("%d %d \n..