[문과 코린이의 IT 기록장] - C,C++ 2차원 배열(2차원 배열, 2차원 배열에서의 포인터, 2차원 배열의 연산)
[문과 코린이의 IT 기록장] - C,C++ 2차원 배열(2차원 배열, 2차원 배열에서의 포인터) 1. 2차원 배열의 [ ]연산자 int A[2][3];이 표현되는 방식 ex ) 이를 보면 arr[0] = &arr[0][0]이고, arr[1] = &arr[1][0]라는 것을 알 수 있다. 이를 통해, 1차원배열과 마찬가지로 sizeof나 주소값 연산자와 사용되지 않을 경우, arr[0]은 arr[0][0]을 가리키는 포인터로 암묵적으로 타입 변환되고, arr[1]은 arr[1][0]을 가리키는 포인터로 타입 변환된다. 2. 2차원 배열 sizeof ex ) - 총 열의 개수 : sizeof(arr[0]) / sizeof(arr[0][0]); // 총 열의 개수는 한 행의 크기에, 한 배열의 크기를 나누면..
[문과 코린이의 IT 기록장] - C,C++ 포인터와 배열 ( 배열, 포인터와 배열, 포인터 연산, 문자배열, 포인터의 포인터)
1. 배열 : 변수가 여러개 모인 것. ex) // 각각 한 개의 원소마다, int형이기 때문에 4byte씩 차지한다. // 자료형에 따라, 주소값 또한 4씩 증가한다. 2. 포인터와 배열 ① (parr + i) = & arr[i] 만약, p라는 포인터가 int a를 가르킨다면? p+1 = (p의 주소값) + 1*4 p+3 = (p의 주소값) + 3*4 이 아이디어를 기반으로, 배열의 원소를 가르키는 포인터를 만들어 보려고 한다. parr이 int형이므로, +i를 하면, 주소값에는 4*i씩 더해지는 것이다. 이 때 arr[i]도 int형 배열이므로, +i가 될 때마다, 4씩 증가하게 된다. 따라서 모든 결과가 일치하게 된다. ② arr = &arr[0] 이 예제에서 보면 알 수 있듯이, arr은 arr[..
[문과 코린이의 IT기록장] 컴퓨터 구조 - 4.3. 데이터패스 만들기
- 데이터패스 구성요소 : 프로세서 내에서, 데이터를 가지고 연산하거나, 데이터를 저장하는 기능 유닛 cf) MIPS구현에서는 데이터패스 구성요소에, 명령어 메모리, 데이터 메모리, 레지스터 파일, ALU, 덧셈기 등이 포함된다. * 앞의 4.2까지의 논리회로는 데이터패스를 보여주기 위한 쉬운사례 1. 데이터패스 구성요소 (메모리 유닛 - PC - ALU) - 명령어를 저장하고 접근하는데는, 두 개의 상태소자가 필요하며, 다음 명령어의 주소를 계산하기 위해 덧셈기가 하나 필요하다. a. Instruction Memory : 프로그램의 명령어를 저장하고, 주소가 주어지면 해당 명령어를 보내주는 메모리 유닛 b. Program Counter : 현재 명령어의 주소를 가지고 있는 레지스터인 PC(Program..