목록[Programming Language] (36)
heenam
18-1 2차원 배열이름의 포인터 형 2차원 배열이름이 가리키는 것들은? int arr2d[2][3]; arr2d를 대상으로 sizeof 연산을 하는 경우 배열 전체의 크기를 반환 즉 값은 36가 나옴 arr2d[0]를 대한으로 sizeof 연산을 하는 경우 각 행의 크기를 반환 즉 값은 12가 나옴 따라서 arr2d 와 arr2[0]은 같지 않음!! 배열이름 기반의 포인터: 배열이름에 1을 더한 결과는? 행과 열이 다르면 포인터 형 값이 달라짐! ex) int arr1[3][2]; int arr2[2][3]; arr1+1의 값과 arr2+1의 값은 다름!! 최종결론! 2차원 배열이름의 포인터 형 대상이 int 형 변수이면서 포인터 연산시 sizeof(int)*4의 크기 단위로 증가 및 감소하는 포인터 ..
17-1 포인터의 포인터에 대한 이해 포인터의 포인터는 포인터 변수를 가리키는 또 다른 포인터 변수를 뜻하는 것으로 흔히 '이중 포인터' 또는 '더블 포인터' 라 부르며, **연산자를 선언한다. 17-2 다중 포인터 변수와 포인터의 필요성 *연산자가 둘 이상 사용되어 선언되는 포인터 변수를 가리켜 '다중 포인터 변수'라 한다. 그리고 포인터 변수 선언 시 *연산자는 얼마든지 추가될 수 있다. 이중 포인터를 가리키는 삼중 포인터 *연산자가 세 개 삽입된 포인터 변수를 가리켜 '삼중 포인터'라 부른다.
16-1 다차원 배열의 이해와 활용 다차원 배열은 2차원, 3차원 배열을 의미한다. 2차원, 3차원 배열? OK! 4차원, 5차원 배열? NO! 2차원 배열은 평면구조, 3차원 배열은 직육면체구조, 4차원 이상의 배열선언은 문법적으로 허용하고 있다. 하지만 이는 불필요하기도 하고 논리적으로 이해하기도 어려운 형태의 배열이다. 다차원 배열을 대표하는 2차원 배열의 선언 TYPE arr[세로길이][가로길이] 배열의 크기를 알려주지 않고 초기화하기 1차배열의 같은 경우엔 arr[]={1,2,3,4,5} 가 가능했지만 2차 배열같은 경우엔 arr[][]={1,2,3,4,5,6} 불가능 하지만 arr[2][]={1,2,3,4,5,6}이나 arr[][2]={1,2,3,4,5,6}은 가능하다. 16-2 3차원 배열 ..
운영체제 컴퓨터 시스템은 보통 하드웨어와 소프트웨어로 나뉜다. 소프트 웨어는 일반적으로 시스템 소프트웨어와 응용 소프트 웨어의 두 가지 유형으로 나뉜다. 시스템 소프트웨어: 컴퓨터 하드웨어를 조정 통제 응용 소프트웨어: 특정한 업무를 수행하는 데 쓰이는 것으로 시스템 소프트웨어를 제외한 나머지 소프트웨어로 분류 운영체제: 컴퓨터 시스템의 전반적인 동작을 제어하고 저종하는 시스템 프로그램들의 집합으로서 하드웨어와 응용프로그램간의 인터페이스 역할을 하면서 CPU, 주기억장치, 입출력장치 등의 컴퓨터 자원을 관리한다. 운영체제 기능: 인간과 컴퓨터간의 상호작용, 컴퓨터의 동작을 구동, 작업의 순서를 정하고 입출력 연산을 제어, 프로그램 실행을 제어하고 데이터와 파일의 저장을 관리 커널: 기본적인 기능의 수행과..
14-1 함수의 인자로 배열 전달하기 인자전달의 기본방식은 값의 복사이다! 함수호출시 전달되는 인자의 값은 매개변수에 복사가 된다. 따라서 매개변수의 값이 변하더라도 인자의 값은 변하지 않는다. 그럼 이어서 함수호출 시 인자로 배열을 통째로 전달하는 방법에 대해서 생각해 보자. 배열을 통째로 넘겨받으려면 매개변수로 배열을 선언할 수 있어야 한다. 하지만 허용되지 않으니 배열을 통째로 넘기는 것은 불가능한 일이다. 대신에 함수 내에서 배열에 접근할 수 있도록 배열의 주소값을 전달하는 것은 가능하다. 배열을 함수의 인자로 전달하는 방식 배열의 주소값을 인자로 전달해서 이를 통해서 접근하도록 유도하는 방법이 있다. 14-2 Call-by-value vs. Call-by-reference Call-by-valu..
13-01 포인터와 배열의 관계 배열의 이름은 무엇을 의미하는가? 배열의 이름은 포인터 이다. *연산이 가능하다. 단, 그 값을 바꿀 수 없는 '상수 형태의 포인터' 이다. 배열의 이름은 배열의 시작 주소 값을 의미하며, 그 형태는 값의 저장이 불가능한 상수이다. 포인터를 배열의 이름처럼 사용할 수도 있다. 배열의 이름과 포인터 변수는 변수냐 상수냐의 특징적 차이가 있을뿐 둘 다 포인터이기 때문에 한쪽이 가능하면 다른 한쪽으로도 사용이 가능하다. 13-02 포인터 연산 포인터를 대상으로 하는 증가 및 감소 연산 포인터 변수를 대상으로 다양한 형태의 증가 및 감소연산을 진행할 수 있다. 13-03 상수 형태의 문자열을 가리키는 포인터 두 가지 형태의 문자열 표현 변수 형태의 문자열: ex) char str..
12-1 포인터란 무엇인가? 포인터 변수란 메모리의 주소 값을 저장하기 위한 변수이다 포인터 변수 선언하기 선언하는 방법은 변수형태*변수를 가리키는 이름 ex) int * pnum1; //int 형 변수를 가리키는 pnum1의 선언을 의미함, 12-2 포인터와 관련 있는 연산자: &연산자와 *연산자 &연산자와 *연산자를 가리켜 포인터 연산자라 한다. *연산자는 사용되는 위치에 따라서 그 의미가 달라진다.
11-1 배열의 이해와 배열의 선언 및 초기화 방법 배열이란 무엇인가? 둘 이상의 변수를 모아놓은 것 1차원 배열의 선언에 필요한 것 세 가지: 배열이름, 자료형, 길이정보 ex) int name[4]; int :배열을 이루는 변수의 자료형 name: 배열의 이름 [4]: 배열의 길이 즉, int형 변수 4개로 이뤄진 배열을 선언하되, 그 배열의 이름은 name으로 해라 선언된 1차원 배열의 접근 [ ]연산자 사이에 배열의 위치정보를 명시하게 되는데, 배열의 위치 정보를 명시하는 인덱스 값은 1이 아닌 0에서부터 시작한다. 배열! 선언과 동시에 초기화하기 ex) int arr1[5]={1,2,3,4,5}; // int arr1[ ]={1,2,3,4,5}; 이렇게 사용해도 됨 11-2 배열을 이용한 문자열..