포인터 배열
int* arrPtr[i] -> int형 포인터 변수 i개로 이뤄진 1차원 배열 총 i개의 주소값 저장가능
1.
int arr[]={1, 2, 3, 4, 5};
int* p = arr; // int* p = &arr[0];
arr
2.
배열 이름 관점에서 arr[i]와 *(arr+i)가 동일
arr[i]와 *(arr+i)는 동일한 문장
-arr[i]는 배열의 이름을 이용할때 사용
-*(arr+i)는 포인터를 이용할때 사용
3.매개변수 선언을 포인터 관점에서
void func(int* arr, int len){
...// 여기서 int* arr은 int arr[]로 대체가능
}
4.int arr[] 유형의 선언은 매개변수 선언에서만 사용이 가능
5.Call-By-Value & Call-By-Reference
Call-By-Value는 변수에 저장된 값을 불러내는 형태의 함수를 호출한다.
함수호출 : CallByVal(val);
이것은 main 함수로 돌아왔을때 val값이 변하지 않는다.
Call-By-Reference는 주소 값을 전달하는 형태의 함수를 호출한다.
함수호출 : CallByRef(&val);
주소값이 전달되므로 함수 내에서 변경된 값이 main 함수에서도 반영.
'Computer Science > C&C++' 카테고리의 다른 글
[C언어] 메모리 공간의 동적 할당 (1) | 2021.05.19 |
---|---|
[C언어] 문자열 관련 (0) | 2021.05.16 |
[C언어] dptr을 이용해 *ptr1과 *ptr2 관계 서로 바꾸기 (1) | 2021.05.10 |
[C언어] 포인터 개념 (0) | 2021.05.10 |
[C언어]별 삼각형 출력(직각 삼각형, 이등변 삼각형, 역이등변 삼각형) (0) | 2021.04.21 |