C 포인터는 쉽고 재미있게 배울 수 있습니다. 일부 C 프로그래밍 작업은 포인터를 사용하여 더 쉽게 수행되며 동적 메모리 할당과 같은 다른 작업은 포인터를 사용하지 않고 수행 할 수 없습니다. 따라서 완벽한 C 프로그래머가되기 위해서는 포인터를 배울 필요가 있습니다. 간단하고 쉬운 단계로 학습을 시작하겠습니다.
알다시피 모든 변수는 메모리 위치이며 모든 메모리 위치에는 앰퍼샌드를 사용하여 액세스 할 수있는 주소가 정의되어 있습니다 (&) 연산자, 메모리의 주소를 나타냅니다. 정의 된 변수의 주소를 출력하는 다음 예제를 고려하십시오-
위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. 결과 −
Address of var1 variable: bff5a400Address of var2 variable: bff5a3f6
포인터 란 무엇입니까?
포인터는 값이 다른 변수의 주소, 즉 직접 주소 인 변수입니다. 변수 나 상수와 마찬가지로 포인터를 사용하여 변수 주소를 저장해야합니다. 포인터 변수 선언의 일반적인 형식은 다음과 같습니다.-
type *var-name;
여기서 type은 포인터의 기본 유형입니다. 유효한 C 데이터 유형이어야하며 var-name은 포인터 변수의 이름입니다. 포인터를 선언하는 데 사용되는 별표 *는 곱셈에 사용되는 별표와 동일합니다. 그러나이 명령문에서 별표는 변수를 포인터로 지정하는 데 사용됩니다. 유효한 포인터 선언 몇 가지를 살펴보십시오-
int *ip; /* pointer to an integer */double *dp; /* pointer to a double */float *fp; /* pointer to a float */char *ch /* pointer to a character */
정수, 부동 소수점, 문자 또는 기타 여부에 관계없이 모든 포인터 값의 실제 데이터 유형 는 동일하며 메모리 주소를 나타내는 긴 16 진수입니다. 서로 다른 데이터 유형의 포인터 간의 유일한 차이점은 포인터가 가리키는 변수 또는 상수의 데이터 유형입니다.
포인터 사용 방법
몇 가지 중요한 작업이 있습니다. 우리는 포인터의 도움으로 매우 자주 할 것입니다. (a) 포인터 변수를 정의하고, (b) 변수의 주소를 포인터에 할당하고 (c) 마지막으로 포인터 변수에서 사용 가능한 주소의 값에 액세스합니다. 이는 피연산자가 지정한 주소에있는 변수의 값을 반환하는 단항 연산자 *를 사용하여 수행됩니다. 다음 예제는 이러한 연산을 사용합니다.-
위 코드가 컴파일되고 실행되면 다음 결과가 생성됩니다.-
Address of var variable: bffd8b3cAddress stored in ip variable: bffd8b3cValue of *ip variable: 20
NULL 포인터
정확한 주소를 할당 할 수없는 경우 항상 포인터 변수에 NULL 값을 할당하는 것이 좋습니다. 이것은 변수 선언시 수행됩니다. NULL이 할당 된 포인터를 널 포인터라고합니다.
NULL 포인터는 여러 표준 라이브러리에 정의 된 값이 0 인 상수입니다. 다음 프로그램을 고려하십시오-
#include <stdio.h>int main () { int *ptr = NULL; printf("The value of ptr is : %x\n", ptr ); return 0;}
위 코드가 컴파일되고 실행되면 다음 결과가 생성됩니다-
The value of ptr is 0
대부분의 운영 체제에서 프로그램은 주소 0의 메모리에 액세스 할 수 없습니다. 해당 메모리는 운영 체제에 의해 예약되어 있기 때문입니다. 그러나 메모리 주소 0은 특별한 의미가 있습니다. 포인터가 액세스 가능한 메모리 위치를 가리 키도록 의도되지 않았 음을 나타냅니다. 그러나 관례 상 포인터에 null (영) 값이 포함되어 있으면 아무것도 가리키는 것으로 간주되지 않습니다.
널 포인터를 확인하려면 다음과 같이 “if”문을 사용할 수 있습니다.-
if(ptr) /* succeeds if p is not null */if(!ptr) /* succeeds if p is null */
상세한 포인터
포인터는 많지만 쉬운 개념을 가지고 있으며 C 프로그래밍에 매우 중요합니다. 다음과 같은 중요한 포인터 개념은 모든 C 프로그래머에게 명확해야합니다.
Sr.No.
광고
|
---|