15일차 - 포인터 소개
포인터 소개
Apointer
는 변수나 배열 요소 또는 심지어 함수와 같은 데이터 항목의 위치(값이 아님)를 나타내는 변수입니다.
컴퓨터의 메모리 내에서 저장된 모든 데이터 항목은 하나 이상의 연속 메모리 셀(즉, 인접 단어 또는 바이트)을 차지합니다. 데이터 항목을 저장하는 데 필요한 메모리 셀의 수는 데이터 항목의 유형에 따라 다릅니다. 예를 들어, 단일 문자는 일반적으로 메모리의 one byte
(8비트)에 저장됩니다. 정수는 일반적으로 two contiguous bytes
가 필요합니다. 부동 소수점 숫자에는 four contiguous bytes
등이 필요할 수 있습니다.
v
가 특정 데이터 항목을 나타내는 변수라고 가정합니다. 컴파일러는 이 데이터 항목에 대한 메모리 셀을 자동으로 할당합니다. 그런 다음 첫 번째 메모리 셀의 위치(즉, 주소)를 알고 있으면 데이터 항목에 액세스할 수 있습니다.* v
의 메모리 위치 주소는 식 &v
에 의해 결정될 수 있습니다. 여기서 &
는 피연산자의 주소를 평가하는 address operator
라는 단항 연산자입니다.
v로 표시되는 데이터 항목(즉, v의 메모리 셀에 저장된 데이터 항목)은
식 *pv
, 여기서 *
는 포인터에서만 작동하는 indirection operator
라는 단항 연산자입니다.
변하기 쉬운. 따라서 *pv
및 v
는 모두 동일한 데이터 항목(즉, 동일한 메모리 셀의 내용)을 나타냅니다.
예시:
#include <stdio.h>
void main() {
int i = 10, *pointer;
pointer = &i;
printf("Pointer of i = %d\n", pointer);
printf("Value of i = %d\n",*pointer);
}
출력 -
Pointer of i = 6422036
Value of i = 10
함수 포인터
포인터는 함수를 가리키는 데에도 사용할 수 있습니다.
구문 -
datatype (*pointer_name)(arg1_type,arg2_type);
기본 함수를 살펴보겠습니다.
int sum(int _num1,int _num2) {
return _num1 + _num2;
포인터를 생성하기 위해
int (*my_pointer)(int,int); // Initialize Function Pointer
my_pointer = ∑ // Assign Pointer to a Function
int result = (*my_pointer)(3,7); // Call the function
printf("%d",result);
Reference
이 문제에 관하여(15일차 - 포인터 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/envoy_/day-15-introduction-to-pointers-glp
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#include <stdio.h>
void main() {
int i = 10, *pointer;
pointer = &i;
printf("Pointer of i = %d\n", pointer);
printf("Value of i = %d\n",*pointer);
}
Pointer of i = 6422036
Value of i = 10
datatype (*pointer_name)(arg1_type,arg2_type);
int sum(int _num1,int _num2) {
return _num1 + _num2;
int (*my_pointer)(int,int); // Initialize Function Pointer
my_pointer = ∑ // Assign Pointer to a Function
int result = (*my_pointer)(3,7); // Call the function
printf("%d",result);
Reference
이 문제에 관하여(15일차 - 포인터 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/envoy_/day-15-introduction-to-pointers-glp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)