📌 자료형 ✔ 값의 종류에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것 1. 기본형과 참조형 ✔ 기본형 : 실제 값을 저장 ✔ 참조형 : 어떤 값이 저장되어 있는 메모리 주소를 값으로 저장 ✔ 자바는 C언어와 달리 참조형 변수 간의 연산을 할 수 없으므로, 실제 연산에 사용되는 것은 모두 기본형 변수. ✔ 앞서 변수를 선언하는 방식은 기본형을 사용한 방식이므로, 참조형 변수의 선언에 대해 살펴보자 클래스이름 변수이름; ✔ 기본형이 아닌 자료형은 모두 참조형이므로, 클래스명 또한 참조형에 속한다. ✔ 즉, 새로운 클래스의 작성은 새로운 참조형을 추가하는 셈이다. 참조형의 초기화는 아래와 같다 Scanner sc = new Scanner(System in); ✔ 자료형이 기본형이 아니므로, 이는 ..
📌 변수 ✔ 변수란 하나의 값을 저장할 수 있는 메모리 공간. 1. 변수의 선언 자료형 변수명; ✔ 자료형 : 변수에 저장될 값이 어떤 자료형인지를 지정 ✔ 변수명 : 변수에 붙인 이름 ✔ 변수를 선언해, 변수 타입에 맞는 크기의 메모리 공간을 할당받고, 이 공간은 변수명을 통해 사용할 수 있다. package ch02; public class ch021 { public static void main(String[] args) { int score; //score라는 이름의 변수 선언 } } ✔ 콤마를 사용해 한 줄에 여러 변수를 선언할 수 있다. package ch02; public class ch021 { public static void main(String[] args) { int math, en..
다음 주면 코칭 스터디가 마무리된다. 코칭 스터디에 참여하느라 기초만 간신히 떼고 손을 놓고 있었던 자바 공부를 다시 시작하고 싶다는 생각을 하고 싶던 차에, 마침 자바의 정석 카페에서 스터디 모집글을 발견했다. 매주 챕터 하나씩 각자 공부 후, 블로그와 깃허브에 정리하고 주말에 모여 함께 피드백한다. 사실 깃허브도 만들어두고 미숙하다는 이유로 계속 미뤄두었는데 이번 스터디를 통해서 깃허브와도 친해지길 기대해본다. 📌 2021. 02. 21 / 1주차 1주차 스터디를 진행했다. 각자 편한 방식을 통해 공부한 내용을 정리하고 공유했다. 다음 주부터는 정해주신 분량의 알고리즘 문제도 풀어서 블로그에 올리기로 했고 매주 후기를 작성해보자고 하셔서 시작 전에 글을 남긴 여기에 매 주 후기를 작성해 보려고 한다...
2021.02.17.수 포인터 ✔ 변수의 메모리 주소를 구할 때에는 변수 앞에 주소 연산자 & 를 사용한다. ( &는 ~의 주소를 의미) ✔ 메모리 주소를 출력하고자 한다면, 형식 지정자 %p와 ~의 주소를 의미하는 주소 연산자를 사용한다. #include int main(void){ int a = 10; printf("%p", &a); //0x7ffd8ff8b0e4 return 0; } ✔ 이러한 메모리 주소는 포인터 변수에 저장할 수 있다. ✔ 포인터 변수를 선언할 때에는 변수와 같은 방법으로 선언하되, * 을 사용하여 아래와 같이 선언한다. #include int main(void){ int a = 10; int *p = &a; printf("%p\n", &a); //0x7ffd8ff8b0e4 pr..
2021.02.16.화 ✔ 문자열과 관련된 함수를 가진 헤더 파일로, 문자열 관련 함수를 사용하기 위해 반드시 전처리할 것. ✔ 아래는 문자열과 관련된 자주 사용되는 함수의 정리. 1. 문자열 복사 함수 strcpy(str1, str2) str1에 str2의 문자열을 복사 strncpy(str1, str2, n) str1에 str2의 문자열을 n만큼 복사 #include #include //문자열 관련 함수를 가진 헤더파일 int main(void) { //strcpy 예제 char str1[10] = "apple"; printf("%s\n", str1);//apple strcpy(str1,"banana"); printf("%s\n", str1);//banana //strncpy 예제 char str2[..
2021.02.16.화 char형 배열 char 배열명[크기] = "문자열" ; ✔ 문자열은 문자와 문자의 조합이므로, char형 배열을 사용해 저장한다. ✔ 문자열을 대입연산자를 사용하여 위와 같이 배열에 저장하고자할 때는 반드시 선언과 동시에 초기화를 해주어야한다. ✔ 이미 선언된 배열에 문자열을 저장하고자 한다면 배열의 요소에 문자를 하나하나 저장해야한다. char str[6]; str[0] = 'a'; str[1] = 'p'; str[2] = 'p'; str[3] = 'l'; str[4] = 'e'; ✔ 문자열의 길이는 알 수 없으므로, 배열의 마지막에 null(\0, null 종단 문자)을 저장하여 문자열이 끝났음을 알린다. ✔ 즉, 배열의 크기는 문자열의 길이 +1이 되어야한다. char st..
2021.02.15.월 배열의 선언 자료형 배열명[크기]; ✔ 배열은 데이터를 연속적으로 저장하고 사용할 수 있는 방법이다. ✔ 어떤 데이터를 연속적으로 저장할 지, 그리고 몇 개의 데이터를 저장할 지를 배열 선언 시에 설정한다. int arr[5]; ✔ 위의 코드는 int형 값을 5개 저장할 수 있는 배열 arr를 선언하겠다는 의미이다. 배열의 선언과 초기화 //선언과 초기화를 함께 int arrA[5] = { 1, 2, 3, 4, 5 } //선언과 초기화를 분리 int arrB[5]; arrB[0] = 1; arrB[1] = 2; arrB[2] = 3; arrB[3] = 4; arrB[4] = 5; ✔ 변수와 마찬가디로 배열도 선언과 초기화를 함께할수도, 분리해서 따로 할 수 도 있다. ✔ 다만, 중..
2021.02.15.월 재귀 호출 함수 void hi(){ printf("hi\n"); hi(); } ✔ 함수는 일반적으로 main함수 내부에서 호출되어 사용된다. ✔ 재귀 호출 함수는 함수가 스스로 자기 자신을 호출해서 사용하는 함수를 말한다. ✔ 위와 같이 hi() 함수의 내부에서 hi()가 한번 더 호출되는 경우가 재귀 호출 함수이다. hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi.... ✔ 함수는 호출될 때마다 stack영역에 쌓이고 종료 조건이 없는 재귀 함수는 stack overflow가 발생한다. ✔ 즉, 재귀 함수는 종료 조건을 설정하지 않으면 결국 메모리의 한계에 봉착하며 프로그램이 강..
1562. int 형 정수 두 개를 입력 받아 그 중 작은 값을 출력하시오. 단, 함수형 문제이므로 함수 min()만 작성하여 제출하시오. 입력. 123 출력. 456 //함수 부분 int min(int n, int m){ if(n>m) {return m;} else {return n;} } //전체 코드 #include int n, m; int min(int n, int m){ if(n>m) {return m;} else {return n;} } int main() { scanf("%d%d", &n, &m); printf("%d\n", min(n, m)); }
2021.02.10.수 함수 정의 반환값자료형 함수명(매개변수) { 명령문; return 값; } ✔ 어떠한 기능을 수행하기 위한 특정 용도의 코드를 한 곳에 모아놓은 것으로 main함수 바깥에 정의한다. ✔ 반환값자료형 : 최종적으로 함수가 return할 값의 자료형을 넣어준다. ✔ 함수명 : 함수의 기능에 기반하여 함수명을 정한다. ✔ 매개변수 : 함수가 실행되기 위해 필요한 값과 자료형을 미리 선언하고, 필요한 값을 받아올 수 있다. ✔ 명령문 : 함수의 기능을 수행하기 위한 코드 ✔ return 값 : 최종적으로 함수가 return하는 값 int sum(int a, int b){ int result=a+b; return result; } ✔ 정수 a와 b의 합을 구하는 함수는 위와 같다. ✔ 반환..