반응형
배열과 포인터의 관계
int a[10]; 이라는 배열이 있다고 가정을 합시다.
배열의 이름 a는 배열의 시작 주소를 저장하는 정수형 포인터 변수라고 생각을 해도 됩니다 ( 단 저장된 주소값을 변경할 수 없으니 int * const 타입이라고 생각하면 됩니다)
배열의 매개변수 예시 코드
#include <iostream>
using namespace std;
int calculate_sum(int* array);
int main() {
int sum;
int num[10];
for (int i = 0; i < 10; i++)
cin >> num[i];
sum = calculate_sum(num);
double average = (double)sum / 10;
cout << average << endl;
return 0;
}
int calculate_sum(int* array) {
int sum = 0;
for (int i = 0; i < 10; i++)
sum = sum + array[i];
return sum;
}
배열의 평균을 구하는 코드입니다. 배열이 매개변수로 넘어올 때 int array[] 대신 이렇게 포인터로 받을 수도 있습니다. 함수 내에서 마치 aray가 배열인 것처럼 사용할 수 있습니다.
포인터 산수
포인터 변수에 대해서 덧셈, 뺄셈, 증감연산을 적용할 수 있습니다. 단 곱셈과 나눗셈은 지원하지 않습니다.
*a와 a[0]는 동일한 의미입니다. 또한 a[1]은 *(a+1)과 동일하고, a[i]는 *(a+i)와 동일합니다. 이 규칙은 배열의 타입과 무관하게 항상 성립합니다.
반응형
'IT 프로그래밍 > 자료구조' 카테고리의 다른 글
[C++] string 클래스와 getline 사용법 (0) | 2024.09.06 |
---|---|
[C언어] 문자열 string, fgets 설명 (0) | 2024.09.06 |
텐서플로우와 Linear regression, Cost function (1) | 2024.09.03 |
동적 메모리 할당과 동적 객체 생성 (0) | 2024.09.02 |
포인터에 관한 기본적인 개념 설명 및 예제 (0) | 2024.09.02 |