c언어 포인터 예제

이제 별표(*)로 표시된 Referenening 또는 `Value at` 연산자를 이해해 보겠습니다. 포인터 변수 3) 함수 포인터에 저장된 메모리 위치에서 값을 검색하는 데 도움이됩니다 – 함수 포인터는 다른 포인터와 마찬가지로 함수의 주소를 저장하는 데 사용됩니다. 함수 포인터는 C 프로그램에서 함수를 호출하는 데 사용할 수도 있습니다. 제한된 산술 연산 집합은 일반적으로 해당 인덱스를 사용하여 배열 요소에 액세스하지만 포인터를 사용하여 이 메서드를 제거할 수 있는 포인터에서 수행할 수 있습니다. 포인터를 통해 각 배열 요소에 쉽게 액세스할 수 있습니다. 주의해야 할 중요한 점은 포인터의 데이터 형식과 변수가 일치해야 하며 int 포인터는 int 변수의 주소를 보유할 수 있으며, 마찬가지로 float 데이터 유형으로 선언된 포인터는 float 변수의 주소를 보유할 수 있습니다. 아래 예제에서 포인터와 변수는 모두 int 형식입니다. 1) 포인터에 대한 포인터 – 포인터는 다른 포인터를 가리킬 수 있습니다 (즉, 다른 포인터의 주소를 저장할 수 있음), 이러한 포인터는 포인터에 대한 이중 포인터 OR 포인터라고합니다. 여기서 형식은 포인터의 기본 형식입니다. 유효한 C 데이터 형식이어야 하며 var 이름은 포인터 변수의 이름입니다. 포인터를 선언하는 데 사용되는 별표 *는 곱셈에 사용되는 별표와 동일합니다.

그러나 이 명령문에서 별표는 변수를 포인터로 지정하는 데 사용됩니다. 유효한 포인터 선언의 일부를 살펴 – Null 포인터는 아무 데도 그냥 잘못된 주소가 아닌 가리키는 포인터입니다. 다음은 포인터를 NULL로 할당하는 2가지 방법입니다. 마찬가지로 다음과 같은 *포인터에 값을 할당하는 경우: 포인터에 특정 숫자를 추가하면 포인터 위치가 추가 작업에서 얻은 값으로 이동합니다. p는 현재 메모리 위치 0을 가리키는 포인터라고 가정하면 다음 추가 작업을 수행하면 p +1이 이러한 방식으로 실행됩니다: 포인터 추가 /증분은 더 잘 이해하기 위해 몇 가지 더 많은 예제를 취할 수 있습니다 – char 변수 ch가 있다고 가정할 수 있습니다. 및 ch의 주소를 보유하는 포인터 PTR입니다. NULL 포인터는 여러 표준 라이브러리에 정의된 값이 0인 상수입니다. 다음 프로그램을 고려 – 포인터는 변수의 주소를 저장할 수있는 변수입니다. 지금, 당신은 그 사용이 무엇인지 물어 볼 수 있습니다? 기본적으로 포인터는 주소가 제공되는 변수의 메모리 위치를 가리킵니다.

이 속성은 프로그래밍의 중요한 측면인 동적 메모리 할당에 도움이 됩니다. 포인터 연산은 우리가 앰퍼샌드 기호를 사용하여 변수의 주소를 표시 할 수있는 첫 번째 예에서 이미 본 다음 그림포인터 작업에 요약되어 있습니다. 변수 num의 주소에 액세스하기 위해 &num을 사용했습니다. 연산자는 “주소” 연산자라고도 합니다. 자, 포인터는 무엇입니까? 값을 저장하는 대신 포인터는 변수의 주소를 저장합니다. 정수, 부동, 문자 또는 기타 모든 포인터 값의 실제 데이터 형식은 메모리 주소를 나타내는 긴 헥사드숫자와 동일합니다. 다른 데이터 형식의 포인터 간의 유일한 차이점은 포인터가 가리키는 변수 또는 상수의 데이터 형식입니다. 할당할 정확한 주소가 없는 경우 항상 포인터 변수에 NULL 값을 할당하는 것이 좋습니다. 이 작업은 변수 선언 시 수행됩니다. NULL이 할당된 포인터를 null 포인터라고 합니다. 포인터는 유효한 주소를 가리키지만 반드시 유효한 요소(예: 배열)를 가리키는 것은 아닙니다.

이를 잘못된 포인터라고 합니다. 초기화되지 않은 포인터도 잘못된 포인터입니다. 여기서 ptr1은 초기화되지 않으므로 잘못된 포인터가 되고 ptr2는 arr 범위를 벗어났기 때문에 잘못된 포인터가 됩니다. (참고 : 잘못된 포인터가 반드시 컴파일 오류를 발생시키지는 않습니다). 포인터 선언 중에 null 값을 할당하여 null 포인터를 만들 수 있습니다. 이 메서드는 포인터에 할당된 주소가 없는 경우에 유용합니다.