분류 전체보기
-
[Java] 2-1. 자료형과 연산자CSE/Java 2015. 8. 6. 14:10
2.7 콘솔 입력 2.7.1 BufferedReader 클래스 자바에서 입력 콘솔(키보드)은 System.in을 통해 입력을 합니다. BufferedReader 클래스는 문자 단위로 입력할 수 있는 문자 스트림을 생성합니다. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedReader와 Scanner의 차이는 무엇일까요? 입력 값을 읽는 것은 같지만 자바 초창기부터 제공한 BufferedReader 클래스의 read 메서드나 readLine 메서드로 읽는 값을 무조건 String으로 반환합니다. BufferedReader 클래스의 기능을 업그레이드한 자바 1.5 이후부터 제공하는 Scanner 클래스는 입력..
-
[Java] 2. 자료형과 연산자CSE/Java 2015. 8. 5. 15:55
2.1 자바 프로그램 기본 구조 2.1.1 간단한 기본 프로그램 자바 프로그램의 구조는 다음과 같습니다. 1234567891011 package exam1; public class Hello { public static void main(String[] args) { // 1. 입력(변수 선언 후 변수 값 저장 또는 키보드에서 입력, 파일등에서 읽어오기) // 2. 처리(연산 또는 메서드 정의하여 작업) // 3. 출력(처리 결과를 화면 등에 표시) }} Colored by Color Scriptercs 모든 Java 파일을 실행하기 위해서는 main 메서드가 필요합니다. main 메서드가 존재하지 않으면 컴파일러는 에러 메시지를 발생시킵니다. [예제 1] 정수, 실수, 단일 문자를 저장할 3개의 변수를..
-
[C Language] 42. void형 포인터 - C 언어CSE/C Language 2015. 8. 5. 14:33
1. void 형 포인터란? 널 포인터가 포인터임에도 불구하고 어느 곳도 가리키고 있지 않는 데 반해, void 형 포인터는 무엇이든 가리킬 수 있는 포인터이다. 널 포인터가 아무것도 넣을 수 없는 자루라면 void 형 포인터는 무엇이든 들어가는 자루이다. void 형 포인터는 현재 가리키고 있는 대상체가 정해져 있지 않는 포인터이다. 바꾸어 말하면 현재 가리키는 대상체가 정해져 있지 않기 때문에 대상체만 정해지면 얼마든지 사용할 수 있다는 의미이다. 2. void 형 포인터 변수 정의 char 형 포인터는 'char *' 로 표기할 수 있고 int 형 포인터는 'int *'로 표기할 수 있다. 마찬가지로 void 형 포인터는 'void *'로 표기한다. void *void_p; void_p는 포인터 변..
-
[C Language] 41. 포인터의 개념을 깨는 '0'CSE/C Language 2015. 8. 5. 13:47
지금까지 배운 포인터에 대한 개념으로 설명이 불가능한 프로그램이 있다. 아래 예제를 보도록하자. 1234567891011121314151617181920/* * nullp.c * * Created on: 2015. 8. 5. * Author: Yeonsu */ #include int main(void) { char *char_p; char_p = 0; printf("%x\n", char_p); return 0;} cs 포인터를 설명할 때 수없이 강조했던 내용이 '포인터 변수에는 주소 값 이외에는 어떠한 값도 할당할 수 없다'라는 것이다. 하지만 위의 프로그램으로 0 이라는 정수 값에 포인터 변수에 할당되고 있으며 컴파일 문제가 발생하지 않는다. 컴파일러는 위의 프로그램을 어떻게 해석하길래 문제가 발생하지..
-
[C Language] 40. 문자열 함수 - C 언어CSE/C Language 2015. 8. 5. 13:29
1. gets(), fgets() 문자열을 사용자로부터 받아들일 때 가장 많이 사용하는 함수는 바로 gets()이다. 하지만 이것은 상당히 위험한 함수이며 초보자는 반드시 fgets()를 사용해야 한다. 이번 단원에서는 gets()의 위험성을 알아보고 이 대신 fgets()를 사용할 것을 권장한다. gets()는 리눅스 메뉴얼에 보면 사용하지 말라는 뜻에서 '저주받은 함수'라는 극한적인 말로 표현되어 있다. 얼마나 위험한지 아래 예제를 통해 알아보도록 하자. 1234567891011121314151617181920 /* * gets.c * * Created on: 2015. 8. 5. * Author: Yeonsu */ #include int main(void) { char name[5]; gets(na..
-
[C Language] 39. 포인터의 포인터 - C 언어CSE/C Language 2015. 8. 5. 11:32
1. 포인터의 포인터란? 이해를 돕기 위해서 배열을 먼저 예로 들어 보자. - 1차원 배열: int apple[5]; - 2차원 배열: int banana[2][10]; - 3차원 배열: int chocolate[3][4][5]; 1차원 배열은 관리 대상이 1차원이며 모두 5개의 요소로 구성되어 있다. 2차원 배열은 관리대상이 2차원이다. 2차원 이라는 것은 1차원 배열의 모임이므로 이것을 '배열의 배열'이라고 칭할 수 있다. 배열의 배열이라는 것은 결국 배열을 관리하는 배열이 존재한다는 것이다. 3차원 배열은 '배열의 배열의 배열'이 되며 2차원 배열을 관리하는 배열이라고 생각하자. 이를 포인터로 적용하면 아래와 같다. - 포인터 변수 정의: char *apple; - 포인터의 포인터 변수 정의: ch..
-
[C Language] 38. 문자열과 포인터 - C 언어CSE/C Language 2015. 8. 4. 15:47
1. 문자열이란? "In C, strings are arrays of characters." C에서의 문자열에 대한 정의를 보면, 문자열 형이 없고 단지 문자들의 집합인 배열로 처리한다는 것을 알 수 있다. 또한, 포인터적인 관점에서 본다면 시스템은 문자열 전체에 전혀 관심이 없다. 시스템은 오로지 문자열 중에서도 가장 첫 번째 문자가 저장된 곳의 위치에만 관심이 있을 뿐이다. 문자열의 끝은 널 문자로 판별하기 때문에 널 문자가 없는 문자열은 C에서 상당히 위험한 존재로 여겨지고 메모리 에러의 대부분을 차지한다. 2. 문자열 포인터 변수 int 형 포인터 변수가 int 형 변수를 가리킬 수 있는 것과 마찬가지로 문자열 포인터 변수도 문자열을 가리킬 수 있다. 좀 더 정확히 말하면 문자열 중에서도 가장 첫..