본문 바로가기

반응형

전체 글

(297)
[문과 코린이의 IT 기록장] C,C++ - 레퍼런스(&) (참조자, 함수 인자로 레퍼런스 받기, 참조자의 참조자? , 상수에 대한 참조자, 레퍼런스의 배열과 배열의 레퍼런스, 레퍼런스를 리턴하는 함수) 1. 참조자 (reference) - C++에 새로 도입되는 새로운 개념 * C언어에서는 어떠한 변수를 가리키고 싶을 때는 반드시 포인터를 사용해야 한다. * 그렇지만 C++에서는 다른 변수나 상수를 가리키는 방법으로, 또 다른 방식인 참조자(ref)를 제공한다. - 참조자를 사용하면 포인터에 비해, 불필요한 &와 *의 사용이 없다. 따라서 훨씬 더 코드를 간결하게 나타낼 수 있다. - 참조자란 '또 다른 이름(별명)' 이라고 이해하면 된다. ex ) - int & another_a = a; // another_a는, int형 변수 a의 참조자이다. - another_a = 5; // another_a는 a와 같은 것이므로, a의 값도 같이 변경된 것을 볼 수 있다. 1) 참조자(레퍼런스) 정의 방법 -..
[문과 코린이의 IT 기록장] C,C++ - 상수 (상수와 '함수, 포인터 변수, 클래스, &, 오버로딩'에 관한 내용 이해) [문과 코린이의 IT 기록장] C,C++ - 상수 (상수와 '함수, 포인터 변수, 클래스, &, 오버로딩'에 관한 내용 이해) 1. 상수란? : 처음 정의시 그 값이 바로 주어지고, 한 번 저장된 값은 영원히 바뀌지 않는 것을 의미한다. : 즉, 데이터 초기화가 이루어지면, 그 값을 바꿀 수 없도록 해 주는 것이다. * 따라서 const변수는 데이터 영역에 들어가게 되고, 컴파일과 동시에 데이터 영역 메모리로 올라가 버린다. 1) 상수의 정의 방법 : const (상수의 형) (상수 이름) = (상수의 값) ; 2) 상수 예시 Const int a = 3; // int형 상수 a는, 3의 값을 지닌다. 이 a의 값은 절대 변경될 수 없다. 2. 상수 정의 시 주의사항 1) 상수는 선언과 동시에 초기화되어..
[문과 코린이의 IT 기록장] C,C++ - 함수에서 포인터 활용하기(함수끼리의 변수의 값 변경, 포인터를 활용한 함수 문제 해결, SWAP함수, 배열을 인자로 받아들이는 함수, 상수를 인자로 받아들이.. - 이제 포인터를 실제로 써먹을 수 있는 방법을 배울 수 있다. * 혹시 아직 포인터에 대한 내용을 잘 모른다면, 아래 자료를 참고해 주세요 :) 1. 함수끼리의 변수의 값 변경 - 저번 내용에서, main함수에서 다른 함수에서 정의된 변수의 값을 바꿀 수 없다고 이야기 했다. ex ) i의 값이 전혀 바뀌지 않았다는 것을 알 수 있다. 그 이유는 함수 change_val을 호출할 때, change_val함수 안에서 정의된 변수인 i는, main함수의 i의 값을 전달 받은 후에, change_val 함수 안에서 정의된 변수 i의 값을 3으로 변경하게 된다. 그런데, main함수의 i가 아닌, chage_val함수 내에서 정의된 변수 i의 값이 3으로 변경되는 것이기 때문에, 결국 main함수의 i값에는 ..
[문과 코린이의 IT 기록장] C,C++ - 함수의 기본 ( 함수의 기본, 함수의 반환, main함수 이해, 함수의 인자 ) [문과 코린이의 IT 기록장] C,C++ - 함수의 기본 ( 함수의 기본, 함수의 반환, main함수 이해, 함수의 인자 ) 1. 함수의 기본 a. 함수를 보고 알 수 있는부분 int A(){ // 함수의 정의 부분 cout
[문과 코린이의 IT기록장] 컴퓨터 구조 - 2.(7) ~ 2.(9) [ 판단을 위한 명령어, 하드웨어의 프로시저 지원, MIPS의 32bit 수치를 위한 주소지정 및 복잡한 주소지정 방식 ] [문과 코린이의 IT기록장] 컴퓨터 구조 - 2.(7) ~ 2.(9) [ 판단을 위한 명령어, 하드웨어의 프로시저 지원, MIPS의 32bit 수치를 위한 주소지정 및 복잡한 주소지정 방식 ] 7. 판단을 위한 명령어 * if문, go to문 1) 조건부 분기 (1) beq register1, register2, L1 : register1과 register2의 값이 같으면, L1에 해당하는 문장으로 가라 : branch if equal (2) bne register1, register2, L1 : register1과 register2의 값이 같지 않으면, L1에 해당하는 문장으로 가라 : branch if not equal [ If-then-else를 조건부 분기로 ..
[문과 코린이의 IT기록장] 컴퓨터 구조 - 2.(4) ~ 2.(6) [ 부호있는수와 부호없는 수, 명령어의 컴퓨터 내부 표현, 논리연산 명령어 ] [문과 코린이의 IT기록장] 컴퓨터 구조 - 2.(4) ~ 2.(6) [ 부호있는수와 부호없는 수, 명령어의 컴퓨터 내부 표현, 논리연산 명령어 ] 4. 부호있는 수와 부호없는 수 - 모든 정보는 이진 자리 수(binary digit), 즉 bit로 구성되므로 비트가 계산의 기본 단위가 된다. * 기본 단위 표현방식 : 높음/낮음, 온/오프, 참/거짓, 1/0 - 어떤 기수(진수)의 숫자에서 I번째 숫자 d의 값은 : d * Base^i - 여기서 I는 0에서 시작해서 왼쪽으로 갈 수록 증가한다. - LSB : MIPS워드에서 가장 오른쪽 비트 0 - MSB : MIPS워드에서 가장 왼쪽 비트 31 [=부호비트] - MIPS워드의 길이는 32bit이므로 2^32가지의..
[문과 코린이의 IT기록장] 컴퓨터 구조 - 2.(1) ~ 2.(3) [서론, 하드웨어 연산, 피연산자] [문과 코린이의 IT기록장] 컴퓨터 구조 - 2.(1) ~ 2.(3) [서론, 하드웨어 연산, 피연산자] 0. 들어가기에 앞서 (진수 변환하기, 연산자 간단 이해하기) 문제 ) (1) 32476 : 2진수 변환, 8진수변환, 16진수 변환, 음수 변환하기 (2) 48765 : 2진수 변환, 8진수변환, 16진수 변환, 음수 변환하기 (3) (1), (2) : & / | / ^ 계산하기 (4) 3.7647 : 이진수로 변환하기 1. 서론 - 컴퓨터 하드웨어에게 일을 시키려면 하드웨어가 알아들을 수 있는 언어로 말을 해야함. - 컴퓨터 언어에서 단어(어셈블리어)를 명령어라 하고, 그 어휘를 명령어 집합구조라 함. - 이 장의 명령어 설명은 하향식(top-down)으로 이..
[문과 코린이의 IT 기록장] C,C++ - 포인터 배열 (포인터 배열 예제) [문과 코린이의 IT 기록장] C,C++ - 포인터 배열 (포인터 배열 예제) 1. 포인터 배열 - 배열의 요소로 포인터를 지니는 배열 - 배열포인터, 즉 배열들을 가르키는 포인터와 다른 개념이다. * 용어를 헷갈리지 말자! * 배열 포인터 : 배열들을 가르키는 포인터 (즉 포인터이다) 포인터 배열 : 포인터들을 담는 배열 (즉 배열이다) int * arr1[10]; // int형 변수를 가르키는, 포인터 배열 arr1은, 포인터 변수 10개를 담는다. (변수 10개를 가르킨다.) double * arr2[20]; char * arr[30]; - 포인터 배열 정의 방법 ex 1 ) 포인터 배열 예제 1 ex 2 ) 포인터 배열 예제 2 ex 3 ) 포인터 배열 예제 3 * 유의사항 - 아직 공부하고 있는..

반응형