본문 바로가기

Language

[C언어 with Java] typedef, 타입에 새로운 이름을 부여하자. C Prog. with Java C언어를 다루고 있지만, 다른 프로그래밍 언어인 자바와 비교하면서 내용을 구성하고 합니다. 본 글은, 자바를 먼저 어느정도 알고 계시고, 저와 같이 C언어를 공부하고자 하는 분들에게 도움이 되길 바랍니다. C언어에서는 새로운 타입의 선언이 가능합니다. 이는 완전히 새로운 자료형(Type)의 선언이 아니라 기존에 있는 자료형에 새로운 이름을 부여하는 겁니다. 키워드 typedef을 사용한 새로운 이름의 부여는 다음과 같이 선언합니다. typedef 자료타입 새로운이름; 이때, 자료타입에는 둘 이상의 식별자로 이루어진 타입도 가능한데요, 이를테면, unsigned 키워드나 const 키워드가 붙은 자료 타입이 있겠습니다. 어떤 방식으로 쓸 수 있는지 한번 보도록 할게요. ty.. 더보기
[C언어 with Java] 배열과 포인터 C Prog. with Java C언어를 다루고 있지만, 다른 프로그래밍 언어인 자바와 비교하면서 내용을 구성하고 합니다. 본 글은, 자바를 먼저 어느정도 알고 계시고, 저와 같이 C언어를 공부하고자 하는 분들에게 도움이 되길 바랍니다. 포인트라는 것을 알았으니, 포인트를 이용해서 배열을 조작해보록 합시다. 우선 소스를 보고 시작할게요. 위의 소스는 int형과 double 타입의 배열을 선언한뒤, 그 각각의 요소에 포인터를 배정했습니다. 그리고 포인터를 찍어서, 배열 요소 각각의 주소를 찍어 보았더니, 위의 색칠한 부분처럼 int형은 4씩 주소가 늘어난 것이 확인되었고, double형은 8씩 늘어난 것을 확인할 수 있었습니다. 이 부분을 미루어 볼때, 배열의 각 요소의 포인터 값은 선언된 배열의 형의 사.. 더보기
[C언어 with Java] 간단히 포인터에 대해서 알아봅시다. C Prog. with Java C언어를 다루고 있지만, 다른 프로그래밍 언어인 자바와 비교하면서 내용을 구성하고 합니다. 본 글은, 자바를 먼저 어느정도 알고 계시고, 저와 같이 C언어를 공부하고자 하는 분들에게 도움이 되길 바랍니다. 자바에서는 포인터라는 개념이 없습니다. 포인터란 메모리에 직접적으로 접근을 해서, 메모리를 조작가능하게 하는 것인데, 포인터를 잘못 만지게 되면, 큰일(?) 납니다. 메모리 공간에는 운영체제가 사용하는 메모리 공간이 있는데, 혹여 사용자가 이 공간을 침범하게 되면, 운영체제에 손상을 일으킬 수도 있게 됩니다. 이를 방지하기 위해서 자바에서는 포인터라는 개념을 개발 당시에 배제한것으로 알고 있습니다. 때문에, 보다 주의깊은 사용법이 필요합니다. ** 물론 최근에 운영체제는.. 더보기
[C언어 with Java] 배열에 대해서 알아보자. C Prog. with Java C언어를 다루고 있지만, 다른 프로그래밍 언어인 자바와 비교하면서 내용을 구성하고 합니다. 본 글은, 자바를 먼저 어느정도 알고 계시고, 저와 같이 C언어를 공부하고자 하는 분들에게 도움이 되길 바랍니다. 우선, 자바를 보도록 할게요. 자바에서는 배열 선언을 다음과 같이 두가지 방식으로 나타낼 수 있습니다. 1. 타입 변수명[] 2. 타입[] 변수명 여기서 1번의 경우는 C언어 방식으로, C언어 사용자를 배려하기 위한 방식으로 생각됩니다. 이클립스를 쓰게 되면 다음과 같이 main 메소드를 만드는데요. public class Test{ public static void main(String[] args){ 바디 } } 경우에 따라서는, 레퍼런스나 강의자의 스타일에 따라, .. 더보기
[C언어 with Java] 메소드의 선언 C Prog. with Java C언어를 다루고 있지만, 다른 프로그래밍 언어인 자바와 비교하면서 내용을 구성하고 합니다. 본 글은, 자바를 먼저 어느정도 알고 계시고, 저와 같이 C언어를 공부하고자 하는 분들에게 도움이 되길 바랍니다. 첫번째, 메소드의 선언부 입니다. JAVA는 다음과 같은 형태로 기본 메소드가 정의 됩니다. public void 메소드명(매개변수){ → 변경자 반환타입 메소드명(매개변수) 바디 } C언어에서는 JAVA와는 다르게 다음과 같은 형태를 띕니다. int 메소드명(매개변수){ → 반환타입 메소드명(매개변수) 바디} 명시하지는 않았지만, return 키워드도 동일하게 사용됩니다. 다른점을 꼽는다면 변경자(modifier) 사용여부가 있겠군요. 하지만 중요하게, 알아야 할것이 .. 더보기
[자바] 'File' 클래스, 파일의 다양한 정보를 확인하자! File 클래스 사실, 자바를 하다보면 이상하게 'java.io'패키지에 대한 막연한 두려움(?)이 있었는데요. 왠지 봐도봐도 머리에 안들어갔었다는.. ㅎㅎ 각설하고^^, 이번글에서는 'java.io' 패키지에 속하는 'File' 클래스에 대해서 알아볼까 합니다. 우선, 'File' 클래스는 다음과 같은 역할을 한다고 볼 수 있겠습니다. 파일에 대해서 직접 읽고 쓰는 입·출력 기능이 아닌, 파일과 관련된 기능을 다음과 같이 제공합니다. 1. 빈 파일 및 디렉토리의 생성 2. 파일과 폴더의 삭제 3. 파일 이름의 확인 4. 파일 이름의 변경 5. 파일의 경로 확인 6. 파일의 접근 권한(실행, 쓰기, 읽기) 확인 및 설정 등등 다음에서 생성자와 메소드를 확인하실 수 있습니다. 출저 : http://xrat.. 더보기
[자바] 'assert', 검증을 해보자! assert 이번 글에서 알아볼 것은, assert 문 입니다. assert문은 다음과 같이 사용할 수 있습니다. assert 조건문 ; assert 조건문 : "메시지"; assert 문의 조건문은 'true' 또는 'false' 값으로 대변되는 boolean 타입을 반환할 수 있는 조건문이나 수식이 와야 합니다. 특히, 해당 파일을 컴파일을 할 시에 assert 문의 조건문이 'false'로 반환되면, 다음과 같이 에러 메시지를 확인 할 수 있습니다. 여기서, 알아 두어야 할 것은 assert 문을 활성화하기 위해서는 class 파일을 읽어들일 때, "-ea" 옵션을 써야 합니다. 위의 옵션을 써 주지 않으면, assert 문이 비활성화 되는데요, 콘솔창에 java라고 입력시에 다음과 같은 옵션을 확.. 더보기
[자바] enum 열거형에 대해서 알아보자! JAVA 열거형 많이 들어보셨을 겁니다. 열거형(enum)은 클래스처럼 선언해서 정해진 값만 사용할 수 있도록 제한할때 사용이 되어지는데요. 이때문에 열거형을 사용하게 되면 잘못된 데이터가 사용되어질 가능성을 줄일 수 있습니다. 만일 사용하려고 코드에서 시도한다면 컴파일 오류가 나겠죠. 일단 열거형의 형식을 시작으로 천천히 설명하겠습니다. 열거형은 일단 여러방식으로 작성할 수 있는데요. 크게는 클래스 내·외부로 나누어집니다. [클래스 외부] enum Day {MON, TUE, WED, THU, FRI, SAT, SUN} class DayTest{ public static void main(String[] args){ ...... } } [클래스 내부] class DayTest{ enum Day {MON,.. 더보기
[자바] 식별자에 대해서 알아보자. JAVA 변수에 식별자를 사용할 때 몇가지 규칙이 있는데요. 이는 작명 규칙이라 해서 클래스 명이라든지, 변수명, 메서드 등의 이름을 줄때 몇가지 방법으로 만드는 것을 의미합니다. 물론, 이를 따르지 않을때에는 오류가 나게 됩니다. 작명규칙은 다음과 같습니다. 1. 유니코드 문자를 사용해야 한다. 2. 처음에 숫자가 올 수 없으며, 문자나 화폐기호($), 밑줄(_)을 사용해서 시작할 수 있다.(이후는 상관없음) 3. 화폐기호($), 밑줄(_)을 제외한 특수문자는 사용할 수 없다. 3. 식별자의 길이는 제한이 없다. 4. 자바의 키워드는 사용할 수 없다. 5. 식별자의 경우, 대소문자를 구분한다. ex)test와 Test는 다른 식별자입니다. 자바 키워드의 경우 소문자로 시작하며, 다음과 같습니다. abs.. 더보기
[자바] 반복문 while에 대해서 알아보자! 지난글 for 반복문에 이어서 while 반복문입니다. for문을 참고하실 분들은 다음 링크를 따라 가시길 바랍니다. for 반복문 글 확인하기 for 반복문과는 동일한 기능을 하는 while문. 일단 형식을 살펴보도록 합니다. while(조건식){ 명령문 } 역시 조건식이 '참'일 경우에만 해당 명령문이 실행 되는데요, for문과의 형식상 큰 차이점으로는, 1. 초기값이 없습니다. 2. 증감식이 없습니다. 단지 이 두가지 입니다. 그렇다면 왜 for문과 while문을 나누어져 쓰는 걸까요? 사실 제가 배울때도 그랬고 책들을 봐도 그렇고 이 for문과 while문의 사용에 있어서 직접적인 설명은 따로 없는데요. 그것은 기능이 거의 동일 하기 때문입니다. 그래도 자바를 오래 접하다 보면 이 상황에서는 wh.. 더보기