본문 바로가기

array

(8)
[ C언어 ] - 다차원 배열의 생성과 선언 다차원 배열은 하나의 배열을 여러번 만든 배열이다. int a[2][4]; 는 4개 크기의 int형 배열을 2번 만든 것이며 2차원 배열이라 하고 int a[3][3][3]; 는 3개 크기의 int형 배열을 3개를 만들어 그 전체를 3개로 만든것이라고 볼 수 있다. 그림으로 표현하면 위와 같이 나타낼 수 있다. 배열에 들어있는 각각의 값에 접근하기 위해선 위와 같이 표현할 수 있다. 배열의 선언은 위와 같이 입력한다. 편의상 Enter키를 사용해 위와 같이 정렬하여 입력하면 배열을 한눈에 알아볼 수 있다. 만들어진 2차원 배열의 값을 불러올 때는 위와 같이 입력하면 된다. 3차원 배열의 경우 위와 같이 입력할 수 있다. 그 이상의 배열은 차원 수만큼 for반복문을 추가하면 된다.
[ C언어 ] - 문자열 관련 함수를 직접 구현하기 일반적으로 어떤 변수를 출력할 때 그것은 해당 변수가 위치한 주소의 값을 출력하는 것이다. 위와 같이 a라는 것은 변수Ko가 가지고 있는 '값' 이며, a가 위치한 주소는 별도의 메모리 주소를 가지고 있는 것이다. 이러한 점에서 Ko == *&Ko 와 같은 뜻이라고 볼 수 있다. array 변수 자체는 array의 시작점 주소를 가지고 있다. 주소값을 출력해보면 Ko, &Ko[0], *&Ko 가 모두 같은 결과를 출력하는 것을 볼 수 있다. 변수 Ko 자체가 시작점 주소를 가지고 있으므로 &Ko[0]와 동일한 의미인 것이다. &와 *가 함께 있으면 서로 교차캔슬되어 *&Ko 와 Ko가 동일한 의미가 된다. 즉 *Ko == Ko[0] 이며 Ko[1]이 되기 위해서는 *(Ko + 1)로 표현 가능하다. st..
[ C언어 ] - 포인터 포인터는 C언어가 가지고 있는 매우 강력한 특징이다. 포인터는 어떤 것을 가리키는 변수라고 할 수 있다. 포인터는 *(asterisk)를 붙여 사용할 수 있다. *는 포인터를 선언할 때, 그리고 포인터가 가리키는 주소안의 값에 접근할 때 사용된다. int a = 10; int* p; 포인터의 선언은 위와 같이 사용한다. int형 변수 a를 가리키기 위해 int형 포인터 변수 p를 선언한 것이다. 하지만 포인터 변수p는 현재 어떤 것도 가리키지 않은 상태이다. integer의 크기는 4byte / float의 크기는 4byte / char의 크기는 1byte 이다. x64 프로세서에서 한 개의 처리 단위 메모리 주소의 크기는 8byte이고 변수a는 4byte이므로 위와 같이 차지하는 것을 볼 수 있다. 포..
[ C언어 ] - 배열 Array Array는 같은 Datatype을 가진 많은 변수들을 하나의 변수로 저장할 수 있게 해주는 자료 구조이다. 일반적으로 int a[5]; 로 입력하며 대괄호 안에는 변수도 들어갈 수 있으나 컴파일러마다 허용해주는 것이 제각각이기 때문에 정수형 데이터로 사용하는 것이 좋다. sizeof() 함수를 이용해 int a[10]; 의 메모리 크기를 검사해보면 40이 출력된다. 즉 int형 데이터가 4byte이므로 그것의 10개 만큼의 데이터 공간(0번째 index 부터 9번째 index)을 배열로써 만들 수 있는것이다. 만약 20개의 데이터에 값을 순차적으로 한꺼번에 저장하려면 for 반복문을 사용해 위와 같이 설정할 수 있다. 기본 설정값으로 반복문을 이용하지 않고 array에 초기 값을 따로 입력해줘도 위와 ..
C 프로그래밍 (12) - 다차원 배열 배열을 이용해 구구단 표도 만들 수 있다. int multiplier[20][20]은 들어갈 원소의 개수이며 다차원 배열의 예시이므로 없어도 출력은 가능하다. 다차원 배열을 통해 학생 5명의 국어, 영어 점수를 계산하는 식을 만들어보자. 행이 5, 열이 2로 총 10개의 데이터가 만들어진다. { 0, )가 의미하는 바는 일차원 배열을 할당할 때 모든 데이터의 값에 0을 넣어주겠다는 읨이다.
C 프로그래밍 (11) - 배열 array 배열은 데이터를 담아놓는 상자와도 같다. 상수 5를 지정해주고 array[NUMBER]를 입력해주면 NUMBER의 수치 많큼 배열의 크기를 지정해준다는 의미이다. 즉 i가 0번째부터 4번째까지 5개의 배열 값으로 반복하여 max는 0부터 시작하여 i값이 들어올때 그 값이 0보다 크고 이전 배열보다 크다면 그 값을 max에 입력시키고 순서는 해당 index의 i번째 순서가 된다. 최솟값을 구하는 공식도 위와 같다. max값을 구할때는 기본값으로 0을 주었지만, min값을 구할때는 정수의 최대형인 INT MAX를 넣어 어떻게든 기본값이 바뀌게끔 만드는 것이다. 홀수형의 최댓값과 oddMax, 짝수형의 최댓값 evenMax를 구하는 코드이다.
JAVA 자바 (28) - 판매자 수익 계산 프로그램 만들기 06 : 반복문 while 도입 수당부분은 눈에 보기 좋게 따로 밑으로 내렸다. 반복문은 기본적으로 While문을 사용한다. while(i < dividendRates.length 즉 dividendRates의 배열 수(3번)만큼 반복되게 하려면 i < 3 을 만들어야 하므로 위와 같이 작성한다. ( 그래야 0,1,2 번째까지 총 3번이 반복되는 것 ) 변수 i의 값이 0이라고 했을 때 반복될때마다 0부터 +1씩 추가되어 반복되는 것이다. 필요없는 코드는 지워주고 argumemts값을 넣어 실행하면 정상적으로 실행된다. 반복문과 배열은 단짝이다. 이 글의 내용은 생활코딩(https://opentutorials.org/course/3930)에서 배운 내용을 개인적인 사용을 위해 재가공하여 정리한 글임을 밝힙니다.
JAVA 자바 (27) - 판매자 수익 계산 프로그램 만들기 05 : 배열 [] 도입 배열을 만들기 위해선 먼저 '수납상자' 라는 것을 만들어야 한다. 즉 배열에 들어가는 값을 담아놓을 수 있는 일종의 공간이다. 맨 윗 코드는 double형 데이터를 3개를 담을 수 있는 상자를 만든다는 뜻이다. 그 밑에 세줄의 코드는 double 데이터로 이루어진 배열의 서로 연관된 값들을 그룹핑하여 dividendRates라는 이름을 붙인것이다. 그리고 그 밑의 세줄의 코드에서 배열을 꺼내 쓰는 것이다. Run Configurations에서 Arguments값을 넣어주면 이전과 같이 출력된다. 다만 기존의 3개의 변수를 1개의 변수로 만듦으로써 코드가 훨씬 깔끔히 정리된 것을 볼 수 있으며 코드가 오염될 가능성도 적어지게 된다. 위 코드도 문자열로 이루어진 배열이라는 뜻이며 밑의 줄에서 ares[0]을..