본문 바로가기

분류 전체보기233

Call By Value, Pointer, Reference 1.Call by value (값에 의한 호출) main 함수에서 a 와 b의 값이 swap 되지 않음 2. Call by Pointer(address) 메인 함수에서도 swap이 이루어짐 ( 해당하는 변수의 주소값에 접근해서 참조하는 값을 바꾸기 때문, 원격조종) 3. Call by Reference 메인 함수에 선언되 a, b 변수에 m, n값을 참조해서 swap이 이루어짐 2022. 7. 28.
정수형 자료형 0 1 1 1 1 1 1 1 ==> 127 +1 0 0 0 0 0 0 1 ==> -127 ----------------------- 0 컴퓨터에서 음수는 양수에 더했을때 0이나오는 수로 생각한다. ex) 5 + (-5) = 0 10 + (-10) = 0 //음의 정수 찾기 (2의 보수법) //대응되는 양수의 부호를 반전후 , 1을 더한다 2022. 7. 28.
참조 자료형 class로 정의된 타입을 쓸때는 모두 참조 자료형이다. import java.util.Arrays; public class Main{ public static void main(String[] args){ String thatThat = "thatThat"; System.out.println(thatThat); //[]배열을 나타냄 //int [] 자료형은 기본 int 자료형이 아니므로 참조 자료형 int[] intArray = new int[] {1 , 2, 3, 4, 5}; System.out.println(Arrays.toString(intArray)); } } 2022. 7. 27.
변수와 상수 public class Main { public static void main(String[] args){ // write your code here int number = 5; System.out.println(number); String world = "Hello World"; System.out.println(sparta); //상수 final int finalNumber = 1; //final = 접근제어자, int = 자료형 System.out.println(finalNumber); //상수 이기 때문에 finalNumber = 2; 선언할수 없다. 재할당불가 System.out.println(finalNumber); world = "Good Bye World"; //변수 이기때문에 재할당 가능.. 2022. 7. 27.
Java의 역사 Java 언어의 특징 - 자바는 제임스 고슬링과 연구원들이 개발한 객체 지향적 프로그래밍 언어 이다. - 한 번 작성하면 어디에서나 실행된다(JRE가 설치된 모든 환경에서 실행이 가능하다) - 1995년 탄생한 이후로 꾸준히 축척된 노하우로 안정성이 좋다. - 오랜기간 개발된 오픈소스 라이브러리가 많다. - 다양한 사람들이 개발하고 공유하는 방대한 라이브러리를 사용하면 개발 시간을 단축할 수 있다. Java를 사용하는곳 - 백엔드 서버 개발 - 데이터 엔지니어링 - 하드웨어 실행환경에 구애받고 싶지 않은 모든 곳 Java의 한계 - 예전에 정해진 Java의 문법 때문에, 더 유연하고 견고한 코드를 만들기 어려운 점이 있다. - 현재 전세계의 많은 개발자들이 자바를 대체하는 새로운 언어를 사용하고 개발하고.. 2022. 7. 27.
동적할당 calloc 함수 이용 #include #include int main(void) { int i , n; printf("처리할 데이터 수는 : "); scanf("%d", &n); int* iPtr = (int*)calloc(n, sizeof(int)); //malloc함수 반환값은 void //사용자가 원하는 반환타입으로 설정 if(iPtr == '\0') //iPtr이 null 이면 할당 실패! { puts("동적 할당 실패!!"); } printf("\n %d개의 정수 입력 \n\n", n); for(i = 0 ; i < n; i++) { printf("[%d]번 째 정수 : ", i); scanf("%d", iPtr+i); //포인터 자체가 주소값을 }//담고있는 변수임으로 하나씩 더해줌 printf("\n %d의 정수.. 2022. 7. 27.
동적할당 malloc함수 이용 #include #include int main(void) { int i , n; printf("처리할 데이터 수는 : "); scanf("%d", &n); int* iPtr = (int*)malloc(sizeof(int)); //malloc함수 반환값은 void //사용자가 원하는 반환타입으로 설정 if(iPtr == '\0') //iPtr이 null 이면 할당 실패! { puts("동적 할당 실패!!"); } printf("\n %d개의 정수 입력 \n\n", n); for(i = 0 ; i < n; i++) { printf("[%d]번 째 정수 : ", i); scanf("%d", iPtr+i); //포인터 자체가 주소값을 }//담고있는 변수임으로 하나씩 더해줌 printf("\n %d의 정수 출력.. 2022. 7. 27.
동적할당(malloc) 프로그램이 실행도중에 필요시에 동적으로 사용이 가능해야할때 사용 int* ptr = (int*)malloc(100); // 힙 영역에 100byte 할당 malloc(); 반환타입이 void //사용자가 사용하고자 하는 반환타입으로 그때그때 알맞게 사용하기 위함 동적할당 특징 1. 런타임 중에 대응 가능 2. 사용자가 직접 관리해야함(해제) #include #include //메모리 영역 // 1. 스택(stack) // 2. 힙(heap) // 3. 데이터(DATA) // 4. ROM(읽기 전용) int main(void) { int iPut = 0; scanf_s("%d ", &iPut); int* pInt = nullptr; //동적 할당 if (100 == iPut) { pInt = (int*)m.. 2022. 7. 26.
문자열 함수구현 #include #include #include #include void strCat(wchar_t* origin, unsigned int n, const wchar_t* add); unsigned int GetLength(const wchar_t* _szN); int strCmpp(const wchar_t* a, const wchar_t* b); int main(void) { char szTest[10] = "abc한글"; wchar_t szTestW[10] = L"abc한글"; wchar_t szName[20] = L"Raimond"; //문자열 문자 개수 세기 함수 GetLength(szName); //문자열 이어 붙이기 함수 strCat(szName, 20, L"abcedfg"); //문자열 크기.. 2022. 7. 25.
문자열 포인터2 한글을 표현할 때 2byte가 필요한데 멀티바이튼 "utf-8" 호환성 문제로 현재 쓰지 않음 와이드바이트(유니코드) wchar_t = 모든문자를 2byte로 표현 2022. 7. 25.
문자열 포인터1 #include //메모리 영역 //1. 데이터 영역 //2. 힙 영역 //3. 스택 영역 //4. ROM (읽기 전용) int main(void) { //1. 1byte 문자 자료형 char unsigned 일때 0 ~ 255만큼 표현가능 char c = 'a'; //2. 2byte 문자 자료형 wchar_t 2byte 이기 때문에 훨씬 많은 문자를 표현가능 wchar_t cc = L'a'; //L자 사용 char szChar[10] = "abcedf"; // [a, b, c, d, e, f, '\0'] wchar_t szWct[10] = {97, 98, 99, 100, 101, 102}; // [a, b, c, d, e, f, '\0'] short arrShort[10] = { 97, 98, 99, .. 2022. 7. 25.
문자 #include int main(void) { char c = 1;// signed char = 0 ~ 127 까지의 정수를 표현할수 있다. char d = '1'; // 1 != '1' 1과 '1'은 다르다. 1은 정수 1이고 , '1'은 ASCII코드 49값 char e = 128; // signed char = 0 ~ 127 까지 표현 가능하므로 128은 overflow로 -128 char f = 'a';// 'a' ASCII코드 97을 나타냄 printf("%d ", c); // 1 printf("%d ", d); // 49 printf("%d ", e); // -128 printf("%d ", f); // 97 return 0; } 2022. 7. 25.