c pointer 예제
후자의 경우 괄호가 필요합니다: unary 연산자 * 및 ++가 오른쪽에서 왼쪽으로 평가되므로 괄호 없이 포인터 P가 증가되고 P가 가리키는 개체가 아닙니다. 포인터에 특정 숫자를 추가하면 포인터 위치가 추가 작업에서 얻은 값으로 이동합니다. p는 현재 메모리 위치 0을 가리키는 포인터라고 가정하면 다음 추가 작업을 수행하는 경우 p+1은 다음과 같은 방식으로 실행됩니다: 포인터 추가/증분 이 프로그램에서 int 형식의 변수 num이 있습니다. num 의 값은 10이며이 값은 메모리어딘가에 저장되어야합니다. 메모리 공간은 해당 변수의 값을 보유 하는 각 변수에 대 한 할당, 이 메모리 공간에 는 주소가 있습니다. 예를 들어 우리는 집에 살고 우리 집에는 주소가있어 다른 사람들이 우리 집을 찾는 데 도움이됩니다. 변수의 값이 메모리 주소에 저장되는 것과 동일한 방식으로 C 프로그램이 필요할 때 해당 값을 찾는 데 도움이 됩니다. 포인터와 배열이 식에서 동일한 방식으로 행동하므로 ptr을 사용하여 문자열 리터럴의 문자에 액세스할 수 있습니다. 예를 들어 이 포인터는 형식이 없음을 나타내는 C++에서 사용할 수 있는 특수 한 유형의 포인터입니다.
void 포인터는 형식이 없는 값을 가리키는 포인터입니다(따라서 결정되지 않은 길이와 결정되지 않은 참조 해제 속성). 즉, void 포인터는 모든 데이터 형식을 가리킬 수 있으므로 유연성이 매우 큽습니다. 이러한 유연성에 대한 보수가 있습니다. 이러한 포인터는 직접 참조할 수 없습니다. 먼저 참조되기 전에 구체적인 데이터 형식을 가리키는 다른 포인터 유형으로 변환해야 합니다. 데이터 형식을 포인터에 연결하는 이유는 데이터가 저장되는 바이트 수를 알고 있기 때문입니다. 포인터를 늘리면 포인터가 가리키는 데이터 형식의 크기로 포인터를 늘립니다. u 는 나에게 포인터를 사용하여 간단한 계산기에 대한 프로그램을 제공 할 수 있습니다 이것은 “괴짜”에 대한 리터럴 표현과 배열을 선언하고 첫 번째 요소에 대한 포인터는 ptr에 할당됩니다.
“geek”이 주소 1800에서 시작하는 메모리 위치에 저장되어 있다고 가정하면 이전 선언을 나타낼 수 있습니다. 특정 형식의 값을 보유하는 다른 변수와 달리 포인터는 변수의 주소를 보유합니다. 예를 들어 정수 변수는 정수 값을 보유(또는 매장이라고 할 수 있음)하지만 정수 포인터는 정수 변수의 주소를 보유합니다.