c++ pointer 예제

별표 연산자 *에는 포인터 변수(예: int *numberPointer)를 선언하고 포인터 가리키는 값에 액세스하는 의미(*numberPointer = 4)가 있습니다. 이것은 혼란스럽지만 내면화해야 하는 구문의 일부일 뿐입니다. 포인터의 값을 변경할 수도 있습니다. 그러나 이것은 또한 원래 변수의 값을 변경합니다 : 포인터 ptr이 인수로 함수로 전송되는 경우 배열 val은 유사한 방식으로 액세스 할 수 있습니다. 포인터는 유효한 주소를 가리키지만 반드시 유효한 요소(예: 배열)를 가리키는 것은 아닙니다. 이를 잘못된 포인터라고 합니다. 초기화되지 않은 포인터도 잘못된 포인터입니다. 포인터 변수가 무언가를 가리키고 나면 포인터를 반참조하여 가리키는 값의 값을 얻는 것이 다른 일반적인 것입니다. 참조되지 않은 포인터는 가리키는 주소의 내용을 평가합니다. 2차원 숫자 배열에 대한 포인터 표기는 고려하십시오. 다음 선언 Pointer 변수는 데이터 형식과 변수 이름 사이의 별표만 사용하여 일반 변수와 마찬가지로 선언됩니다.

이 별표는 디레반이 아닙니다. 포인터 선언 구문의 일부입니다. 함수를 작성하여 동일한 작업을 수행할 수 있지만 대신 포인터를 인수로 받아들일 수 있습니다. 이렇게 하면 프로그램의 메모리 사용 공간이 줄어듭니다. 불필요한 중복 변수가 만들어지지 않습니다. 함수는 변수의 값을 직접 수정할 수 있습니다. 함수의 변수를 수정하면 이 범위의 변수에도 영향을 미칩니다. 포인터를 초기화했지만 아무 데도 가리키지 않으며 메모리 주소가 없습니다.

0x0은 0과 같습니다. 메모리 주소가 표현되는 0의 육각형 표현일 뿐입니다. 예를 들어 코드가 있는 경우 (int* x, y ) 가 있는 경우 x와 y가 포인터인 것처럼 보이기 때문에 변수 이름 앞에 별표를 붙이는 것이 더 직관적입니다. Int *x, y는 x가 포인터이고 y가 « 더 나은 방법 »을 만드는 int일 뿐이라는 것을 더 분명하게 만듭니다. 포인터 변수는 동일한 형식의 데이터 형식(예: int 또는 string)을 가리키며 * 연산자로 만들어집니다. 작업중인 변수의 주소가 포인터에 할당됩니다: 포인터와 배열 사이에 밀접한 관계가 있습니다. C++에서는 데이터 또는 다른 포인터를 가리킬 수 있는 포인터에 대한 포인터를 만들 수 있습니다.

Dark Bugsyc++ pointer 예제