[C++] 함수 호출 시 인수 전달 방식
·
Computer Science/Programming Language
함수가 외부로부터 매개 변수를 통하여 데이터를 받는 방법(함수 호출 시 인수 전달 방식) (1) 값에 의한 호출(call by value) (2) 참조에 의한 호출(call by reference) 값에 의한 호출 (= 복사본 전달) "복사본 전달"인 이유: 복사본을 아무리 바꿔도 원본이 바뀌지 않음 #include using namespace std; void swap(int x, int y); int main() { int a = 100, b = 200; cout
[C++] 참조자(reference)
·
Computer Science/Programming Language
참조자(reference) : 변수에 별명을 붙여 접근 - 변수 var 선언 후 ref라고 하는 별명 붙이기 (& 사용) int var = 10; int &ref = var; // 참조자에 값을 대입하면 참조자가 참조하는 변수의 값이 변경됨 ref = 20; // var의 값이 20으로 변경됨 참조자 (reference) vs 포인터 (pointer) 1. 참조자는 선언과 동시에 초기화 되어야 함 int &ref;// 컴파일 에러 2. 포인터는 변수이기 때문에 포인터가 가리키는 대상은 변경될 수 있음 참조자는 자신만의 메모리 공간이 할당되지 않기 때문에 참조자가 가리키는 대상은 변경될 수 없음 int &ref = var1; ref = var2;//컴파일 에러 : 참조하는 대상을 변경할 수 없음 3. 참조..
[C/C++] 동적 메모리 할당(dynamic memory allocation)
·
Computer Science/Programming Language
동적메모리 할당(dynamic memory allocation) : 프로그램이 실행 도중에 동적으로 메모리를 할당받는 것 - 필요할 때 필요한 만큼만 할당받을 수 있기 때문에 메모리 효율적 사용 가능 (1) 할당받을 크기 결정 후 라이브러리 함수를 호출하여 운영 체제에게 메모리를 요청 (2) 충분한 메모리가 존재하면 위의 요청이 승인되고 메모리가 할당됨 (3) 프로그램 : 할당된 메모리 사용 (4) 사용이 끝나면 메모리를 다시 운영체제에 반납함 - 반납하지 않으면 다른 프로그램이 동적 메모리를 사용할 수 없게 됨 - malloc( )과 free( ) 라고 하는 라이브러리 함수 사용 malloc( ) 과 free( )를 C++에서 사용할 경우 아래와 같이 사용한다 #include using namespac..
[C/C++] 변수 (지역변수, 전역변수)
·
Computer Science/Programming Language
변수 : 변수가 사용될 수 있는 범위에 따라 지역변수, 전역변수로 나누어짐 지역변수 (local variable) : 블록 안에서만 정의되는 변수 - 해당 블록 안에서만 접근과 사용 가능 cf) 블록 : 중괄호로 둘러싸인 영역 - 블록이 시작할 때 스택(stack)이라는 메모리 공간에 만들어짐 - 지역 변수에 할당된 공간은 블록 끝에서 반환됨 -> 이때 지역 변수도 사라짐 - 지역변수는 반드시 초기화를 시켜주어야 함 - 지역 변수는 컴파일러에 의하여 자동으로 0으로 초기화 되지 않음 -> 초기값을 정해주지 않았다면 아무의미 없는 값(쓰레기값(garbage value))이 들어가 있음 C 블록의 시작부분에서만 선언 가능( 중간에서는 선언 불가능) C++ 블..
[C++] 디폴트 매개변수 (default parameter)
·
Computer Science/Programming Language
함수 정의에서 선언된 매개변수 - 원칙적으로는 호출 시에 값을 전달 - 전달되는 값은 동일한 자료형 void sub(double value); - 위의 예시는 함수 원형이 선언된 sub()함수 이다. sub()함수는 double값을 호출함수가 전달해야함 - sub()에 전달되는 인자가 double형이 아니면 컴파일 에러발생 - [C++] 인수 전달하지 않아도 디폴트값을 대신 넣어주는 기능 존재 : default parameter (디폴트 매개변수) void sub(double value = 1.0);//함수 원형 정의 - 위의 예시의 경우, sub()에 인수가 주어지지 않으면 매개변수는 1.0이라는 디폴트 값을 가지게 됨 - 디폴트 매개변수는 원형에서만 정의됨(함수 정의 시 디폴트값 표시 X) - 디폴트..
[JAVA ERROR] cmd 창에서 나타나는 에러
·
Computer Science/기타 error
1. "~~~~"은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 원인 ( 나의 경우) cmd창에 주소 입력할 때 "cd 주소" 가 아닌 그냥 주소만 입력했기 때문에 위와 같은 에러가 발생함 해결방안 cd를 먼저 입력한 후 주소를 입력한다. 2. Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: Copy has been compiled by a more recent version of the Java Runtime (class file version 57.0),..
[JAVA] 데이터타입 - 참조 타입
·
Computer Science/Programming Language
자바의 데이터타입 (1) 원시 타입(primitive type) - 정수, 실수, 문자, 논리 리터럴 저장하는 타입 - (byte, char, short, int, long, float, double, boolean) - 실제 값을 변수 안에 저장 (2) 참조 타입(reference type) - 객체(Object)의 번지를 참조하는 타입 (번지를 통해 객체를 참조) - 배열, 열거, 클래스, 인터페이스 타입 - 메모리의 번지를 값으로 가짐 //기본 타입 변수 int age = 22; //참조 타입 변수 String name = "kbs"; int형 변수 age : 22라는 값을 "직접" 저장하고 있음 String 클래스 변수 name : "힙(heap)영역의 String 객체 주소 값"을 가지고 있음 ..
[JAVA] break문 사용
·
Computer Science/Programming Language
break문 사용 - if문과 같이 사용 - for문과 while문을 종료할 때 if문의 조건식과 함께 사용 중첩 for문에서 바깥쪽 for 문까지 빠져나오는 방법 -> 바깥쪽 반복문에 이름 붙이고, if문 안에 " break 이름; "사용 public class BreakOutter { public static void main(String[] args) { // TODO Auto-generated method stub Outter:for(char upper='A';upper