&
도 /
처럼 연산자!
- 타입(자료형) 에 따라서 연산 결과가 다르다
즉, 일반 배열과 동적할당한 배열의 자료형이 다르므로, 같은 배열이어도 &연산 결과는 다름!
int myarr[10]; // type : int []
int *newarr = new int[10]; // type : int *
arr
vs &arr
- 가리키고 있는 것(개념) 은 다른데, 출력 값은 같다
- if 동적할당 X 배열 => arr == &arr
- arr : 배열의 첫번째 요소(arr[0])를 가리키고 있는 포인터
- &arr : 전체 배열 자체의 포인터
- 따라서
arr+1
과&arr+1
의 값은 다르다!
배열과 배열 주소의 관계
포인터 변수의 주소 == 포인터 변수에 들어있는 주솟값
- 일 수도 있다!
- &arr == arr == &arr[0]
C++ 참조형 변수 &
https://wiserloner.tistory.com/m/193
포인터 변수와 같이 주소값을 갖고 와서 값을 조작할 수 있는데,
참조형 변수에 경우에는 *a = 10; 과 같이 앞에 붙일 필요 없이 a=10; 만 해줘도 됨!
call by reference 2가지 방식
https://musket-ade.tistory.com/entry/C-Call-by-Value-Call-by-reference
'[ 언어 및 문법 ] > C, C++' 카테고리의 다른 글
[C++, OpenCV] Convert Arr2Mat, Mat2Arr / 16bit(short) to 8bit(unsigned char) / CV_type (0) | 2022.08.14 |
---|---|
[C++] 2차원 배열 동적 할당, 해제, 초기화 (0) | 2022.08.14 |
[C++] 전방 선언 (Forward Declaration) (0) | 2022.08.14 |
[C++] 정적 변수(Static) vs 전역 변수(Global) , const (0) | 2022.08.14 |
[C++] string 클래스와 문자열 입출력 (cin, getlline(), c_str(), atoi()) (0) | 2022.08.13 |